1.9 KiB
1.9 KiB
65. Implement Custom Theme Editor
meta: id: podcast-tui-app-65 feature: podcast-tui-app priority: P2 depends_on: [59] tags: [theming, editor, custom, solidjs]
objective:
- Build a UI for creating and editing custom themes
- Allow users to modify color palettes
- Provide live preview of theme changes
- Save custom themes to storage
deliverables:
/src/components/ThemeEditor.tsx- Theme editor component/src/components/ThemePreview.tsx- Live theme preview component/src/components/ColorPicker.tsx- Custom color picker component/src/store/theme-editor.ts- Theme editor state management- Updated settings screen to include theme editor
steps:
- Create ThemeEditor component with color palette editor
- Implement ColorPicker component for selecting theme colors
- Create ThemePreview component showing live theme changes
- Build form controls for editing all theme properties
- Add save functionality for custom themes
- Implement delete functionality for custom themes
- Add validation for theme color values
- Update settings screen to show theme editor
tests:
- Unit: Test theme editor saves custom themes correctly
- Unit: Test color picker updates theme colors
- Unit: Test theme preview updates in real-time
- Integration: Test custom theme can be loaded
acceptance_criteria:
- Theme editor allows editing all theme colors
- Custom theme can be saved and loaded
- Live preview shows theme changes in real-time
- Custom themes persist across sessions
- Invalid color values are rejected
validation:
- Run
bun run buildto verify TypeScript compilation - Test theme editor manually in application
- Verify custom themes save/load correctly
- Check live preview works smoothly
notes:
- Use existing theme type definitions
- Provide preset color palettes for quick selection
- Consider adding theme templates
- Ensure editor works on small terminal sizes