Skip to content

feat(web): UI refresh (typography, dashboard and components) - #148

Merged
gnacho merged 3 commits into
gnacho:mainfrom
gerard-domatix:feat/ui-refresh
Oct 13, 2026
Merged

gnacho merged 3 commits into
gnacho:mainfrom
gerard-domatix:feat/ui-refresh

Conversation

@gerard-domatix

Copy link
Copy Markdown
Contributor

What

UI refresh of the web app. No backend, API, storage or PWA changes; no new
runtime dependencies (the UI font swaps Space Grotesk for Archivo, self-hosted
with the same @fontsource pattern the app already used).

  • Typography: Archivo for the UI voice; JetBrains Mono stays for data.
  • Theme defaults: Classic is now the default family for new installs;
    Modern drops the violet accent (default: steel) and its accent glow/halo.
  • Dashboard: compact 12-column widget grid (KPI strip; disk health and
    performance side by side; pools in parallel; alerts, temperatures and log in
    one row) instead of a single stack of full-width cards.
  • Pool card: 30-day usage area chart (current value, delta and range) with
    the card metadata next to it; AutoTRIM moved to the topology line; state icons
    on status badges; duplicated metadata row removed.
  • Components: stroke status icons instead of emoji tiles, outline badges,
    neutral rebuild band, static LIVE dot.
  • Demo data: the mock series now ends at the pool's real usage (previously
    it contradicted the capacity bar).
  • DESIGN.md updated to match.

Why

UX and visual polish pass on the web UI: the dashboard stacked full-width
cards (harder to scan at a glance), the small chart under the capacity bar was
not self-explanatory, and component states mixed emoji glyphs, filled pills and
tinted callouts. The changes tighten the layout, keep the existing identity
(palette untouched) and make state easier to read. Typography moves to Archivo
to give the interface a more distinctive, technical voice.

Verification

  • npm run build (tsc + Vite) passes.
  • Manual smoke test of every touched view against the demo server.
  • A deterministic design anti-pattern scan of the changed files reports no new
    structural findings.

Open points

  • Classic palette keeps its original values (cream). The AA retune of --text3
    and the semantic tokens was reverted by product decision; the low-contrast
    pairs are documented as known debt in DESIGN.md.
  • Dashboard event log shows the latest 6 entries.
  • Pools grid: 3 columns when the pool count is a multiple of 3, 2 otherwise
    (an odd leftover card spans the full row).

Screenshots

Dark theme, 2468x1293.

Dashboard

Before After
Dashboard before Dashboard after

Pools

Before After
Pools before Pools after

Replace Space Grotesk with Archivo (self-hosted, same @fontsource
pattern) and make Classic the default family for new installs.
Modern drops the violet accent (steel is its default) along with the
accent glow and halo, which read as decorative rather than functional.
- Dashboard in a compact 12-column grid: KPI strip, disk health and
  performance side by side, pools in parallel, alerts/temperatures/log.
- Pool card: usage area chart (current value, delta, range) with the
  card metadata beside it; AutoTRIM moved to the topology line; state
  icons on badges; orphan sparkline styles removed.
- Alerts and callouts use stroke icons instead of emoji tiles; badges
  are outline chips; the rebuild band is neutral.
- Demo series now ends at the pool's real usage.
@gnacho
gnacho merged commit ef75d82 into gnacho:main Oct 13, 2026
gnacho added a commit that referenced this pull request Oct 13, 2026
#148 removed @Keyframes pulse along with the pulsing badge dot, but the
demo bar dot still references the animation, so it silently stopped
pulsing. Restore the keyframes next to its only remaining consumer.
@gnacho

gnacho commented Oct 13, 2026

Copy link
Copy Markdown
Owner

Merged in ef75d82, thanks. One follow-up: the badge cleanup removed @keyframes pulse but the demo bar dot still used it, so I restored the keyframes in 12995d0.

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.

2 participants