Description
Light/dark mode preference, persisted across sessions.
Where
astre_frontend/src/store/themeStore.ts (new file)
What to implement
A Zustand store with state { theme: 'light' | 'dark' } and an action toggleTheme(). On every change, also write theme to localStorage under key 'astre-theme' and toggle the dark class on document.documentElement.
Acceptance Criteria
Description
Light/dark mode preference, persisted across sessions.
Where
astre_frontend/src/store/themeStore.ts(new file)What to implement
A Zustand store with state
{ theme: 'light' | 'dark' }and an actiontoggleTheme(). On every change, also writethemetolocalStorageunder key'astre-theme'and toggle thedarkclass ondocument.documentElement.Acceptance Criteria
toggleTheme()flips between'light'and'dark'document.documentElementgets/loses thedarkclass correctlylocalStorage.getItem('astre-theme')reflects the current value after a togglenpm run typecheckpasses