-
-
Notifications
You must be signed in to change notification settings - Fork 7
Open
Labels
good first issueGood for newcomersGood for newcomers
Description
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.rsand find theThemePresetenum - Add your theme in four places:
- Add variant to the
ThemePresetenum (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
- Add variant to the
- 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_textactive/inactivebanner/error_border/error_texthint/hoveredplaybar_background/playbar_progress/playbar_progress_text/playbar_textselected/textheader/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!
JohnAnon9771
Metadata
Metadata
Assignees
Labels
good first issueGood for newcomersGood for newcomers
Projects
Status
Backlog