1.8 KiB
1.8 KiB
66. Add Theme Selector in Settings
meta: id: podcast-tui-app-66 feature: podcast-tui-app priority: P1 depends_on: [59, 60, 61, 62, 63, 64, 65] tags: [theming, settings, selector, solidjs]
objective:
- Add theme selection UI in settings screen
- Display all available themes (default, Catppuccin, Gruvbox, Tokyo, Nord, custom)
- Allow users to select and switch themes
- Show currently selected theme
- Persist theme preference
deliverables:
/src/components/ThemeSelector.tsx- Theme selector component- Updated
/src/components/SettingsScreen.tsxto include theme selector - Updated
/src/store/theme.tsto handle theme preference persistence - Theme selector in settings navigation
steps:
- Create ThemeSelector component with theme list
- Implement theme selection logic
- Display current theme with visual indicator
- Add theme descriptions or icons
- Integrate theme selector into Settings screen
- Save theme preference to storage
- Handle theme switching with instant updates
- Add keyboard navigation for theme list
tests:
- Unit: Test theme selector displays all themes
- Unit: Test theme selection updates current theme
- Unit: Test theme preference saves to storage
- Integration: Test theme switching works across all components
acceptance_criteria:
- Theme selector shows all available themes
- Users can select and switch themes
- Current theme is clearly indicated
- Theme preference persists across sessions
- Theme changes apply immediately to all components
validation:
- Run
bun run buildto verify TypeScript compilation - Test theme selector manually in settings
- Verify theme preference saves/loads correctly
- Check theme applies to all UI components
notes:
- Use existing theme manager for theme switching
- Consider adding theme search/filter
- Show theme preview in selector if possible
- Ensure accessibility for keyboard navigation