#180: Dark mode - Light/Dark/System setting with token-based dark palette #181
No reviewers
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#181
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "feat/180-dark-mode"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements issue #180 (first stage of the ADR 0018 theming roadmap). Three commits:
--color-primaryis replaced by the real--color-accent, the three danger reds are unified on--color-danger. Light rendering visually unchanged.:root[data-theme='dark']block;theme/theme.ts+ pre-paintpublic/theme-init.js(external file, prod CSP forbids inline scripts) always resolve the storedui.theme.modeto a concretedata-theme; System follows live OS changes via matchMedia.color-schemeflips per theme, pairedtheme-colormetas track the effective theme. New Appearance settings section (native radios, de+en, device-local like #170).theme-contrast.test.tsparses tokens.css and mechanically asserts every real UI color pairing for BOTH palettes (4.5:1 text / 3:1 UI, ADR 0017); a11y pack now scans all four core screens in light AND dark (0 axe violations); newtheme.spec.tscovers instant apply, reload persistence, live OS follow, override-beats-OS; ADR 0018 records the theming model (modes now, accent derivation later).Verified locally against a fresh e2e environment (
dorfteich_e2e_180): typecheck, eslint+prettier, i18n:check, 119 web unit tests, a11y pack 8/8, theme pack 1/1, dark screenshots of settings/read/editor/graph/admin/system + 320px reflow.html-shell.tsneeded no change - its #167 dark colors already match the new tokens.Note: do not auto-close - issue #180 will be closed manually after a green pipeline (project convention).
🤖 Generated with Claude Code
https://claude.ai/code/session_01QRtCnB3uLdQtFmvp9HXcRX