Skip to content

feat(ui): add classic/modern/phosphor/brutalist theme skins - #131

Merged
gnacho merged 1 commit into
mainfrom
feat/130-theme-skins
Sep 8, 2026
Merged

gnacho merged 1 commit into
mainfrom
feat/130-theme-skins

Conversation

@gnacho

@gnacho gnacho commented Sep 8, 2026

Copy link
Copy Markdown
Owner

Summary

New theme system for the EasyZFS UI: four distinct visual skins switchable from Settings → Appearance, keeping the classic look intact (and as default for existing users). Theme and mode are now separate controls, and each family ships its own accent palette.

Closes #130.

Themes

  • Classic — the existing light/dark/system look (default for current users).
  • Modern — default for new installs (dark/light per OS): violet accent, borderless cards with soft elevation, pill active nav, subtle radial halo.
  • Phosphor — CRT/terminal: JetBrains Mono, zero radius, scanlines + grid, HUD-cornered cards, segmented meters, squared uppercase buttons/badges, phosphor-green identity.
  • Brutalist — cream paper, 2px black borders, hard offset shadows, signal-yellow primary, marker-underlined titles, black active nav with yellow text.

Behavior

  • Family × Mode: pick a family (Classic/Modern/Phosphor/Brutalist) and, for Classic & Modern, a mode (System/Light/Dark). Phosphor and Brutalist are fixed.
  • Accents per family: each theme offers its own palette with its default accent preselected; the accent picker works on every theme while state colors stay semantic.
  • Persistence via easyzfs-theme (family) + easyzfs-theme-mode (mode); migration from the previous combined key. easyzfs-accent-<family> for per-family accent overrides.
  • Also: slightly larger type in the Dashboard / disk-health sections, and the rebuild banner uses a blue (info) accent in the Modern theme.

Verification

  • npm run build OK, go test ./internal/... OK.
  • Playwright (local MOCK/DEMO): default modern-light; Classic → dark/''; Phosphor → phosphor; accent per family applies (Modern violet, Phosphor green); dropdown + mode Seg; no page errors.

Docs

  • Changelog EN + ES added for v2.9.22.

@gnacho
gnacho merged commit 2508fdd into main Sep 8, 2026
3 checks passed
@gnacho
gnacho deleted the feat/130-theme-skins branch September 8, 2026 14:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(ui): add phosphor and brutalist theme skins alongside classic

1 participant