What
Implement theme switching between dark mode and light mode with automatic detection of system preference and persistent user selection.
Why
The current theme is static. Users expect theme control for visual comfort, especially for extended listening sessions. System preference detection provides a sensible default.
Scope
In: Theme toggle button, CSS custom properties for colors, system media query detection, localStorage persistence, smooth transition between themes
Out: Per-component theme overrides, custom color picker
Acceptance Criteria
Technical Context
- Extend globals.css with CSS custom properties for both themes
- Add ThemeProvider in context/ that wraps the app
- Store preference in localStorage key "theme-preference"
What
Implement theme switching between dark mode and light mode with automatic detection of system preference and persistent user selection.
Why
The current theme is static. Users expect theme control for visual comfort, especially for extended listening sessions. System preference detection provides a sensible default.
Scope
In: Theme toggle button, CSS custom properties for colors, system media query detection, localStorage persistence, smooth transition between themes
Out: Per-component theme overrides, custom color picker
Acceptance Criteria
Technical Context