Portal: moderne Oberflaeche - Kacheln mit Icons, Favoriten, Befehlsleiste, Zustaende #409

Merged
patrick merged 3 commits from feat/portal-ui-1 into main 2026-10-28 14:52:58 +01:00
Owner

Umsetzung des Fable-Vorschlags in drei Commits (je einzeln testbar).

1. Visuelle Basis

  • @nexarch/shl: neue Tokens (Radius, Schatten, Skeleton, Favorit, Hover, Motion) in beiden Schemata; Skip-Link hatte keine CSS-Regel (immer sichtbar) - jetzt nur bei Fokus; prefers-reduced-motion global.
  • Portal: Kacheln mit Inline-SVG-Icon je Modul (Vollstaendigkeitstest gegen MODULE_REGISTRY), Badge mit Einheit ("5 offen" statt "5"), Stat-Kacheln, Skeleton statt "Laedt...", Fehlerkarte mit "Erneut laden", Statuspunkt mit Text (nie Farbe allein), statusLabel ueber t() (war nur Deutsch), Begruessung mit Benutzer/Mandant, h1 "Uebersicht", Stile in app/portal.css.

2. Bedienung

  • Favoriten (Stern, aria-pressed, Live-Region-Meldung) und "Zuletzt benutzt" nur als Modul-Keys in localStorage, beim Lesen gegen sichtbare Module gefiltert.
  • Gruppen einklappbar (aria-expanded), Reihenfolge nach Zahl sichtbarer Module (Pruefer sehen "Pruefen" zuerst).

3. Befehlsleiste

  • Strg+K bzw. / ausserhalb von Eingabefeldern: Combobox-Muster, Modulsuche (Favoriten, zuletzt benutzt zuerst), ohne Treffer Dokumentsuche im DMS. Ersetzt die reine DMS-Suchzeile. Rein clientseitig.
  • DE/EN-Texte in app/messages.ts mit Vollstaendigkeitstest.

Auswirkungen

  • Nur Portal und Design-Tokens (additiv); die Tokens werden von allen Frontends geerbt, bestehende Werte unveraendert. Der Skip-Link ist in allen Apps mit Shell jetzt wie vorgesehen versteckt.
  • Keine neuen Abhaengigkeiten, keine API-Aenderung. Datenschutz unveraendert: Startseite zeigt nur Zahlen und Links.

Tests (131)

portal 69/69 (u. a. Skeleton, Fehler-Wiederholung, Favoriten, Einklappen, Palette mit Tastatur, EN-Texte), shl 68/68, tsc ohne neue Fehler, next build ok. Nicht im Browser angesehen - visuelle Abnahme und Kontrastpruefung am echten Bildschirm stehen aus.

Nicht umgesetzt: DE/EN-Umschalter in der Shell (fehlt dort), Verlagerung der AccountBar in den Shell-Header, Statuspunkt an den Modulkacheln (Namen aus der Statusseite passen nicht sicher zu den Registry-Keys).

🤖 Generated with Claude Code

Umsetzung des Fable-Vorschlags in drei Commits (je einzeln testbar). ## 1. Visuelle Basis - `@nexarch/shl`: neue Tokens (Radius, Schatten, Skeleton, Favorit, Hover, Motion) in beiden Schemata; **Skip-Link hatte keine CSS-Regel** (immer sichtbar) - jetzt nur bei Fokus; `prefers-reduced-motion` global. - Portal: Kacheln mit Inline-SVG-Icon je Modul (Vollstaendigkeitstest gegen `MODULE_REGISTRY`), Badge mit Einheit ("5 offen" statt "5"), Stat-Kacheln, Skeleton statt "Laedt...", Fehlerkarte mit "Erneut laden", Statuspunkt mit Text (nie Farbe allein), `statusLabel` ueber `t()` (war nur Deutsch), Begruessung mit Benutzer/Mandant, h1 "Uebersicht", Stile in `app/portal.css`. ## 2. Bedienung - Favoriten (Stern, `aria-pressed`, Live-Region-Meldung) und "Zuletzt benutzt" nur als Modul-Keys in localStorage, beim Lesen gegen sichtbare Module gefiltert. - Gruppen einklappbar (`aria-expanded`), Reihenfolge nach Zahl sichtbarer Module (Pruefer sehen "Pruefen" zuerst). ## 3. Befehlsleiste - Strg+K bzw. `/` ausserhalb von Eingabefeldern: Combobox-Muster, Modulsuche (Favoriten, zuletzt benutzt zuerst), ohne Treffer Dokumentsuche im DMS. Ersetzt die reine DMS-Suchzeile. Rein clientseitig. - DE/EN-Texte in `app/messages.ts` mit Vollstaendigkeitstest. ## Auswirkungen - Nur Portal und Design-Tokens (additiv); die Tokens werden von allen Frontends geerbt, bestehende Werte unveraendert. Der Skip-Link ist in allen Apps mit Shell jetzt wie vorgesehen versteckt. - Keine neuen Abhaengigkeiten, keine API-Aenderung. Datenschutz unveraendert: Startseite zeigt nur Zahlen und Links. ## Tests (131) portal 69/69 (u. a. Skeleton, Fehler-Wiederholung, Favoriten, Einklappen, Palette mit Tastatur, EN-Texte), shl 68/68, `tsc` ohne neue Fehler, `next build` ok. **Nicht im Browser angesehen** - visuelle Abnahme und Kontrastpruefung am echten Bildschirm stehen aus. Nicht umgesetzt: DE/EN-Umschalter in der Shell (fehlt dort), Verlagerung der AccountBar in den Shell-Header, Statuspunkt an den Modulkacheln (Namen aus der Statusseite passen nicht sicher zu den Registry-Keys). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 3 commits 2026-10-28 12:32:15 +01:00
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
portal: Befehlsleiste (Strg+K) mit Modulsprung und Dokumentsuche, Texte DE/EN, README
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Successful in 1m37s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Successful in 6s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Successful in 5s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Failing after 25s
CI / Web (dms-browser) (push) Failing after 2m3s
CI / Web (pdf-viewer) (push) Failing after 1m19s
CI / Web (shl) (push) Failing after 14s
CI / Core-Modul (Build/Vet/Test) (pull_request) Successful in 1m1s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Successful in 4s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Successful in 3s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Failing after 20s
CI / Web (dms-browser) (pull_request) Failing after 1m31s
CI / Web (pdf-viewer) (pull_request) Failing after 1m2s
CI / Web (shl) (pull_request) Failing after 11s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Successful in 20m57s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Failing after 15m11s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Failing after 1m28s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Successful in 14m31s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Successful in 12m53s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Failing after 2s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Failing after 4s
142d213178
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
patrick merged commit 6d3a4f8e56 into main 2026-10-28 14:52:58 +01:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#409