What
ThemeToggle.tsx component exists but is not wired to a persistent theme state. CSS variables for dark/light themes are incomplete. Wire the toggle to zustand store, persist preference in localStorage, and complete CSS variable sets.
Why
Users expect theme preference to persist. The toggle component exists but doesn't function — it's dead code.
Scope
In scope: Wire ThemeToggle to zustand store, persist in localStorage, complete CSS variable sets for both themes
Out of scope: System theme detection, per-component theme overrides
Acceptance Criteria
Technical Context
frontend/src/components/ThemeToggle.tsx — existing toggle
frontend/src/hooks/useTheme.ts — theme hook
frontend/src/index.css — CSS variables
What
ThemeToggle.tsxcomponent exists but is not wired to a persistent theme state. CSS variables for dark/light themes are incomplete. Wire the toggle to zustand store, persist preference in localStorage, and complete CSS variable sets.Why
Users expect theme preference to persist. The toggle component exists but doesn't function — it's dead code.
Scope
In scope: Wire ThemeToggle to zustand store, persist in localStorage, complete CSS variable sets for both themes
Out of scope: System theme detection, per-component theme overrides
Acceptance Criteria
Technical Context
frontend/src/components/ThemeToggle.tsx— existing togglefrontend/src/hooks/useTheme.ts— theme hookfrontend/src/index.css— CSS variables