Add New Theme Presets
We want to expand our collection of built-in themes and we'd love YOUR creativity!
What We're Looking For
Feel free to add any theme you'd like! Some ideas to inspire you:
- Recreate your favorite color scheme from another app
- Design something based on a vibe (synthwave, lo-fi, nature, etc.)
- Create accessibility-focused themes (high contrast, colorblind-friendly)
- Port popular themes (Tokyo Night, Catppuccin, One Dark, Rosé Pine, etc.)
- Make something completely original!
How to Contribute
- Comment below with the theme name you want to add (to avoid duplicates)
- Open
src/user_config.rs and find the ThemePreset enum
- Add your theme in four places:
- Add variant to the
ThemePreset enum (e.g., ThemePreset::YourTheme)
- Add it to the
all() function array
- Add the name in the
name() match statement
- Add the name mapping in the
from_name() match statement
- Add the color definitions in the
to_theme() match statement
- Test it in the app to make sure it looks good
- Submit a PR!
Current themes: Default, Spotify, Dracula, Nord, Solarized Dark, Monokai, Gruvbox, Custom
Color Elements to Define
Each theme needs to specify colors for all UI elements:
analysis_bar / analysis_bar_text
active / inactive
banner / error_border / error_text
hint / hovered
playbar_background / playbar_progress / playbar_progress_text / playbar_text
selected / text
header / highlighted_lyrics
Look at the Dracula or Nord themes in the code for a complete example!
Guidelines
- Use RGB color values:
Color::Rgb(r, g, b)
- Choose colors with good contrast for readability
- Test your theme to make sure all UI elements are visible and look good together
- Add helpful comments (like
// Purple, // Nord8 (frost)) to document your color choices
- Give your theme a descriptive name
- One theme per PR to keep reviews simple
Feel free to ask questions in the comments if you need help getting started!
Add New Theme Presets
We want to expand our collection of built-in themes and we'd love YOUR creativity!
What We're Looking For
Feel free to add any theme you'd like! Some ideas to inspire you:
How to Contribute
src/user_config.rsand find theThemePresetenumThemePresetenum (e.g.,ThemePreset::YourTheme)all()function arrayname()match statementfrom_name()match statementto_theme()match statementCurrent themes: Default, Spotify, Dracula, Nord, Solarized Dark, Monokai, Gruvbox, Custom
Color Elements to Define
Each theme needs to specify colors for all UI elements:
analysis_bar/analysis_bar_textactive/inactivebanner/error_border/error_texthint/hoveredplaybar_background/playbar_progress/playbar_progress_text/playbar_textselected/textheader/highlighted_lyricsLook at the Dracula or Nord themes in the code for a complete example!
Guidelines
Color::Rgb(r, g, b)// Purple,// Nord8 (frost)) to document your color choicesFeel free to ask questions in the comments if you need help getting started!