Skip to content

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:

  1. Create app/src/main/assets/themes/<name>/color.ini with the required spice-* keys.
  2. Add themes/<name>/user.css overriding what you need.
  3. Wire the new theme name into ThemeManager's known list.
  4. 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.