Skip to content

Add New Theme Presets #3

@LargeModGames

Description

@LargeModGames

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

  1. Comment below with the theme name you want to add (to avoid duplicates)
  2. Open src/user_config.rs and find the ThemePreset enum
  3. 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
  4. Test it in the app to make sure it looks good
  5. 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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions