The official index of community themes for Nuclear.
This registry lists community-created themes for Nuclear. When you browse the Theme Store in Nuclear, the player fetches this registry and displays available themes. Installing a theme downloads the theme file directly from this repository.
You don't need to interact with this repository. Browse and install themes directly from within Nuclear under Preferences > Themes > Store.
Want to add your theme to the registry?
- Create your theme file. See the Nuclear theming docs for the theme format
- Fork this repository
- Add your theme as a JSON file in the
v2/themes/directory. The filename becomes the theme ID (e.g.v2/themes/my-theme.jsonhas IDmy-theme) - Open a PR. CI will validate your theme file and check that the index can be regenerated
On merge, v2/themes.json is automatically regenerated by CI. Don't edit v2/themes.json by hand.
themes/ and themes.json are the version 1 theme registry, read by Nuclear 1.47 and older. That registry is now no longer open to new contributions. All new themes go in v2/themes/ and must be created in the v2 format.
{
"version": 2,
"name": "My Theme",
"author": "your-username",
"description": "A short description of your theme",
"tags": ["dark", "warm"],
"palette": [
"oklch(0.95 0.02 350)",
"oklch(0.15 0.03 330)",
"oklch(0.8 0.12 350)",
"oklch(0.6 0.15 330)"
],
"vars": {
"background": "oklch(0.95 0.02 350)",
"foreground": "oklch(0.15 0.03 330)",
"muted": "oklch(0.9 0.02 350)",
"muted-foreground": "oklch(0.4 0.02 330)",
"card": "oklch(0.98 0.01 350)",
"card-foreground": "oklch(0.15 0.03 330)",
"popover": "oklch(0.98 0.01 350)",
"popover-foreground": "oklch(0.15 0.03 330)",
"input": "oklch(1 0 0)",
"input-foreground": "oklch(0.15 0.03 330)",
"primary": "oklch(0.8 0.12 350)",
"primary-foreground": "oklch(0.15 0.03 330)"
},
"dark": {
"background": "oklch(0.15 0.03 330)",
"foreground": "oklch(0.95 0.02 350)",
"muted": "oklch(0.2 0.03 330)",
"muted-foreground": "oklch(0.75 0.03 340)",
"card": "oklch(0.22 0.03 330)",
"card-foreground": "oklch(0.95 0.02 350)",
"popover": "oklch(0.22 0.03 330)",
"popover-foreground": "oklch(0.95 0.02 350)",
"input": "oklch(0.12 0.02 330)",
"input-foreground": "oklch(0.95 0.02 350)",
"primary": "oklch(0.7 0.15 350)",
"primary-foreground": "oklch(0.1 0.02 330)"
}
}Every surface has a matching -foreground color for text drawn on top of it: background, muted, card, popover, input, primary, and each of the seven accent-* colors. Set both halves of every pair you use. Anything you leave out falls back to Nuclear's default theme, which is pink.
Required fields: version, name, author, description, tags, palette
palette is an array of exactly 4 colors used for the preview swatches in the theme store. Pick colors that represent the feel of your theme.
tags are lowercase, alphanumeric with hyphens. Up to 10.
vars and dark contain CSS variable overrides (without the -- prefix). You only need to include the variables you want to change. Variable names ending in -gradient, plus wallpaper, are also available. See the advanced themes docs for the full list of available variables.
- Lowercase, alphanumeric, hyphens only (e.g.
my-theme.json) - Must be at least 2 characters
- Must be unique within its registry (
themes/orv2/themes/)
AGPL-3.0 - see LICENSE