fess-themes
July 2, 2026 · View on GitHub
A collection of Fess static themes, each generated
from a design specification. Every theme is a self-contained vanilla-JS SPA that
talks to the Fess /api/v2/* endpoints and is installable by uploading a ZIP via
the Fess admin UI (/admin/theme/).
The goal of this repository is to keep design-driven themes in one place, so a theme can be reviewed, re-skinned, or used as a starting point for a new one.
Themes
| Theme | Description |
|---|---|
codesearch | Source-code-search-optimised static theme — dark-first IDE aesthetic, inline qualifier syntax (repo: / org: / path: / file: / lang:), per-file code cards with line-number gutters, query-refining facet rail, grounded Ask-AI panel. Requires Fess 15.7+ and query.additional.api.response.fields. Ships its DESIGN.md. |
docuforge | Documentation-style theme on the DocuForge design system — blue/purple/gray palette, persistent facet sidebar, docs-grade typography, no Bootstrap. Ships its DESIGN.md spec. |
docsearch | Documentation search — ⌘K command palette, grouped results, breadcrumb cards, optional cited Ask-AI. DocSearch design language: indigo/slate palette, self-hosted Inter + JetBrains Mono, FOUC-safe light/dark mode, no Bootstrap. |
nomadkit | Free-spirited theme on the NomadKit design system — warm sand / ocean / forest palette, persistent facet sidebar, accessible (AA) contrast, no Bootstrap. Ships its DESIGN.md spec. |
semanticlens | Hybrid keyword + semantic search theme — per-result searcher badges (Keyword / Semantic / Hybrid) with source-colored card spines (teal / violet / amber) and a "Matched by …" microcopy line; a Search Composition band above results showing a proportional keyword/semantic/hybrid bar and a plain-language verdict; and a count-free unified filter sidebar (File type / Updated / Size from /api/v2/ui/config) that stays present and narrows the full fused result set even for semantic-only queries; and an advanced "semantic-space" home/landing hero with an animated vector-constellation canvas, converging amber/violet beams, a typewriter search-box, and three match-type preview cards. Ships its DESIGN.md. |
mosaic | Thumbnail-first visual gallery for multimodal (image + text) search. Requires Fess 15.7+. Ships its DESIGN.md. |
rawblock | Brutalist anti-design theme on the RawBlock design system — raw black-on-white, thick borders (1/3/5px), sharp 0px corners, no shadows, full color-inversion hover/active states, no Bootstrap. Ships its DESIGN.md spec. |
voicebox | Bold, magazine-style editorial theme on the VoiceBox design system — high-contrast black/white with a single red accent, flat (no shadows), sharp 0px corners, thick 2px borders, Archivo Black headlines, no Bootstrap. Ships its DESIGN.md spec. |
Repository layout
fess-themes/
├── README.md
├── LICENSE # Apache-2.0
├── scripts/
│ └── package.sh # zip a theme into dist/<name>-<version>.zip for upload
└── themes/
└── <name>/
├── theme.yml # manifest (apiVersion: fess.codelibs.org/v1, kind: StaticTheme)
├── index.html # SPA shell
├── assets/ # JS modules + CSS
├── i18n/ # messages.<locale>.json
├── help/ # help/<locale>.json
├── DESIGN.md # optional: the design spec the theme was built from
└── README.md
A theme may include an optional
thumbnail.png$ (≤512\text{KB}, ≤512 \times 512) \text{plus} \text{a} $thumbnail: thumbnail.pngline intheme.ymlto show a preview in the admin UI. Capture it from a running instance of the theme so it stays accurate.
Installing a theme
- Package it into a ZIP:
./scripts/package.sh docuforge # → dist/docuforge-1.0.0.zip - In Fess, open Admin → Theme (
/admin/theme/) and upload the ZIP, then activate it (or bind it to a virtual host).
A theme is served at
/themes/<name>/where<name>istheme.yml#name, so the asset paths insideindex.html(e.g./themes/docuforge/assets/styles.css) are tied to the theme name rather than this repository's location.
Adding a new theme
- Create
themes/<name>/(copy an existing theme as a starting point). - Set
theme.yml#name/#displayNameto<name>, and update every/themes/<old>/…path inindex.html/assets/*.jsto/themes/<name>/…. - Add a row to the Themes table above.
Requirements
- Fess
15.7+(static-theme support; see each theme'stheme.yml#minFessVersion).
License
Apache-2.0 — see LICENSE.