Skip to content

feat(web): iOS-soft design system, overview page and compact density - #69

Merged
fgrfn merged 1 commit into
mainfrom
claude/new-session-hmaihv
Sep 7, 2026
Merged

feat(web): iOS-soft design system, overview page and compact density#69
fgrfn merged 1 commit into
mainfrom
claude/new-session-hmaihv

Conversation

@fgrfn

@fgrfn fgrfn commented Sep 7, 2026

Copy link
Copy Markdown
Owner

Setzt das abgestimmte WebUI-Redesign auf der bestehenden Svelte-4-Basis um. Kein Rewrite, keine neuen Dependencies, API/WebSocket/i18n-Flows unangetastet.

Änderungen

Design-System

  • app/web/src/app.css komplett neu: Token-Layer (Light als Held, Dark gleichwertig über Flächen-Ebenen statt Schatten, iOS-Blau #007aff/#0a84ff) und 20 kommentierte Sektionen. Klassennamen bleiben stabil, die Views erben den Look ohne Markup-Churn.
  • PWA-/Browser-Themefarbe in index.html und public/manifest.json auf den Blau-Akzent vereinheitlicht (vorher #38bdf8 bzw. #6ae3ff).

Navigation

  • Neues Nav-Item overview zwischen Scan und Verlauf (Store, Sidebar, BottomNav → jetzt 5 Items).
  • App.svelte rendert die bereits vorhandene, bislang nicht verdrahtete DashboardView für page === 'overview' und ergänzt Titel/Untertitel (DE+EN).
  • DashboardView: Hero- und Empty-State-Aktionen zeigen auf reale Seiten (new-scanscan, devices/targetsmanage).

Compact-Modus

  • settings.compactTables wirkt jetzt: App.svelte setzt data-density="compact" auf .app-shell (analog zu data-theme), Sektion 20 in app.css reduziert Padding und Zeilenhöhe in Listen, History-, Resource- und Settings-Karten.
  • Schalter in Einstellungen → Oberfläche, mit dem bereits vorhandenen i18n-Key compactTablesLabel. Vorher war die Einstellung weder sichtbar noch wirksam.

Kleinigkeiten aus dem Durchklick

  • Pfeil am „Verlauf"-Button entfernt (verabredetes Anti-Muster).
  • .meta-box: min-width:0 und Block-Wert, damit beide Spalten gleich breit bleiben und lange Routen mit Ellipse abgeschnitten werden statt die Karte zu sprengen.

Doku

  • docs/webui-redesign-plan.md beschrieb einen nicht mehr existierenden Stand (monolithische App.svelte, Mobile.svelte, alert()). Ersetzt durch die Design-System-Referenz: Entscheidungen, Tokens, Aufbau von app.css, Density, Leitplanken, Verifikationsbefehle.

Verifikation

  • npm run build
  • npm run check → 0 errors / 0 warnings
  • npm run test:e2e → 1/1 (Multipage-Scan-Flow)
  • Klassenabdeckung app.css vs. Svelte-Markup: keine ungestylten Klassen
  • Stub-Durchklick aller Views (Scan, Übersicht, Verlauf, Verwalten inkl. Ziele/Profile-Tabs, Einstellungen, Profil-Dialog, Login-Overlay) in Light, Dark, Compact und mobil (390 px) — keine JS-Fehler außer den erwarteten WebSocket-Fehlern der Stub-Umgebung.

Offen (nicht Teil dieses PRs)

  • views/StatisticsView.svelte ist in keiner Route eingebunden; die Chart-Styles existieren, die View ist nicht erreichbar.
  • Für delivery_failed, scanning, processing, delivering, retry_scheduled fehlen status_*-Keys in lib/i18n.js — Badges zeigen dort den Rohwert. Übersetzung ist eine inhaltliche Entscheidung.
  • Theme-/Sprach-Umschalter in der Topbar wäre möglich, ist aber nicht beschlossen.

🤖 Generated with Claude Code

https://claude.ai/code/session_01PnunQ6KenoLUPCZRxjvhDd


Generated by Claude Code

Replace the stylesheet with a tokenised design system (light hero, dark
via surface elevation, iOS blue accent) and route the existing dashboard
as the new "Übersicht" page.

- app.css: full rewrite into commented sections (tokens, shell, topbar,
  buttons, forms, cards, badges, inset lists, overview, scan flow,
  history, manage, settings, statistics, dialogs, bottom nav, motion,
  responsive, density)
- nav: add overview between scan and history (sidebar, bottom nav, store)
- App.svelte: render DashboardView for page "overview", add its labels
- DashboardView: map hero/empty-state actions to real pages
- settings: honour settings.compactTables via data-density="compact" on
  the app shell and expose the switch in Einstellungen → Oberfläche
- align PWA theme colour (index.html, manifest.json) with the blue accent
- drop the arrow from the history button label (design anti-pattern)
- meta boxes: keep both columns equal and ellipsise long routes
- docs: replace the stale redesign plan with the design-system reference

Verified with npm run build, npm run check (0/0) and npm run test:e2e,
plus a stubbed click-through of every view in light, dark, compact and
mobile.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PnunQ6KenoLUPCZRxjvhDd
@fgrfn
fgrfn marked this pull request as ready for review September 7, 2026 21:30
@fgrfn
fgrfn merged commit a36ae84 into main Sep 7, 2026
6 checks passed
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