Themes¶
Spooty ships three bundled themes, each a Spicetify-style pair:
| Theme | color.ini palette identity |
user.css vibe |
|---|---|---|
win95 |
grey chrome, that classic blue title bar | window-chrome buttons and panels |
spotify-dark |
deep black/green | near-matched web-player dark mode |
retro-player |
warm, cassette-era | rounded-ish panels and warm text |
Themes live in app/src/main/assets/themes/<name>/ as a plain color.ini (Spicetify
palette) plus a user.css. The native ThemeManager/ThemeParser turns the palette into
CSS custom properties and injects the stylesheet through the Injector pipeline, animated
out/in so switching is never a hard flash.
Switching¶
- In-app: open Settings → Appearance → Theme. It cycles through the bundled themes and re-injects live.
- Default:
SettingsStore.DEFAULT_THEME(spotify-dark).
Adding a theme¶
Only touch theme assets through the Theming skill workflow (skills/theming/SKILL.md).
The short version:
- Create
app/src/main/assets/themes/<name>/color.iniwith the requiredspice-*keys. - Add
themes/<name>/user.cssoverriding what you need. - Wire the new theme name into
ThemeManager's known list. - Rebuild and check it with
./gradlew assembleDebug.
Keep an accent color in the palette — the parser validates hex widths and the manager generates CSS variables from it.