Add frontend theme mode scaffolding
This commit is contained in:
@@ -40,6 +40,7 @@ It is intentionally implementation-focused:
|
||||
| 2026-03-21 | Phase 0 | Completed | Created overhaul branch, audited the current frontend, and locked the route map, component boundaries, migration path, and shared-state ownership. |
|
||||
| 2026-03-21 | P1.1 | Completed | Replaced the legacy token root with semantic background, surface, text, border, focus, shadow, and semantic accent ramps while keeping compatibility aliases for incremental migration. |
|
||||
| 2026-03-21 | P1.2 | Completed | Switched the app to Fraunces, IBM Plex Sans, and IBM Plex Mono with distinct display, body, UI, and code font roles instead of one shared heading font. |
|
||||
| 2026-03-21 | P1.3 | Completed | Added explicit light, dark, and system theme modes in the token layer and introduced a scoped `ThemeState` service for later shell controls. |
|
||||
|
||||
### Lessons Learned
|
||||
|
||||
@@ -49,6 +50,7 @@ It is intentionally implementation-focused:
|
||||
- Diagnostics already behaves like a separate workflow and should be moved under `Tools` early, before the `Tables` page is rewritten further.
|
||||
- `localStorage` access is currently page-local and ad hoc. Theme, recents, pins, and table context need one shared storage boundary before more UI work starts.
|
||||
- The old typography setup coupled display and utility text under a single token. The new shell work needs separate display and UI font roles to avoid decorative type in controls.
|
||||
- Theme mode selection can be prepared independently of persistence. Splitting those concerns keeps the theme CSS and the storage wiring reviewable.
|
||||
|
||||
## Target Outcomes
|
||||
|
||||
@@ -252,7 +254,7 @@ Create the implementation foundation so the visual overhaul does not start with
|
||||
| --- | --- | --- |
|
||||
| `P1.1` | Completed | Semantic token layer landed in `wwwroot/app.css` with compatibility aliases to keep existing pages stable. |
|
||||
| `P1.2` | Completed | Font loading now uses Fraunces, IBM Plex Sans, and IBM Plex Mono with explicit role-based tokens. |
|
||||
| `P1.3` | Pending | Theme modes will be introduced after typography is stable. |
|
||||
| `P1.3` | Completed | Explicit light, dark, and system modes now exist in CSS, backed by a scoped `ThemeState` service. |
|
||||
| `P1.4` | Pending | Theme persistence depends on the theme state service. |
|
||||
| `P1.5` | Pending | Shell replacement follows once tokens and theme plumbing exist. |
|
||||
| `P1.6` | Pending | Shell slots and nav utilities depend on the new shell. |
|
||||
|
||||
Reference in New Issue
Block a user