-
Notifications
You must be signed in to change notification settings - Fork 1
Custom Themes
repinek edited this page Jun 18, 2026
·
2 revisions
Sonolus Reverse allows you to create and import custom themes.
- Write a theme JSON file by template
- Import it through the mod's settings or copy it manually
- The theme appears in Sonolus theme selector
Themes are loaded from <PersistentDataPath>/CustomThemes/*.json at startup or you can click refresh button in Mod Section
| Field | Type | Description |
|---|---|---|
Id |
string | Unique identifier. A sr_custom_ prefix is added automatically |
Title |
string | Display name in the theme selector |
Colors.MainSurface |
HEX | Main surface color |
Colors.MainBackground |
HEX | Main background color |
Colors.MainBackgroundAltFirst |
HEX | First alternate background. Used for gradient in Main Menu |
Colors.MainBackgroundAltSecond |
HEX | Second alternate background. Used for gradient in Main Menu |
Colors.MainSuccess |
HEX | Success color |
Colors.MainWarning |
HEX | Warning color |
Colors.TextNormal |
HEX | Primary text color |
Colors.TextDisabled |
HEXA | Disabled text color. |
Colors.ButtonNormal |
HEXA | Default button color |
Colors.ButtonHighlighted |
HEXA | Highlighted button color |
Colors.ButtonPressed |
HEXA | Pressed button color |
Colors.ButtonDisabled |
HEXA | Disabled button color |
ImagesUrl.Thumbnail |
URL | Theme thumbnail. Can be empty string |
ImagesUrl.Background |
URL | Theme background. Can be empty string |
- HEXA - Hex with alpha (e.g
#A7C08010)
https://github.com/repinek/SonolusReverse/blob/master/src/mod/data/ThemeLoader.ts
{ "Id": "my_theme", "Title": "My Custom Theme", "Colors": { "MainSurface": "#2B3B30", "MainBackground": "#1E2326", "MainBackgroundAltFirst": "#1E2326", "MainBackgroundAltSecond": "#232A27", "MainSuccess": "#A7C080", "MainWarning": "#E67E80", "TextNormal": "#D3C6AA", "TextDisabled": "#D3C6AA40", "ButtonNormal": "#A7C08040", "ButtonHighlighted": "#A7C08080", "ButtonPressed": "#A7C08020", "ButtonDisabled": "#A7C08010" }, "ImagesUrl": { "Thumbnail": "https://example.com/thumbnail.png", "Background": "https://example.com/background.png" } }