Creating New Themes

How to create and contribute with new themes

Themes in Navidrome are simple Material-UI themes. They are basic JS objects, that allow you to override almost every visual aspect of Navidrome’s UI.

Steps to create a new theme:

  1. Create a new JS file in the ui/src/themes folder that exports an object containing your theme. Create the theme based on the ReactAdmin/Material UI documentation below. See the existing themes for examples.
  2. Add a themeName property to your theme. This will be displayed in the theme selector
  3. Add your new theme to the ui/src/themes/index.js file
  4. Start the application, your new theme should now appear as an option in the theme selector

Before submitting a pull request to include your theme in Navidrome, please test your theme thoroughly and make sure it is formatted with the Prettier rules found in the project (ui/src/.prettierrc.js). Also, don’t forget to add lots of screenshots!

Resources for Material-UI theming


Last modified January 16, 2023: Update creating-themes.md (452d785)