Custom Theming Guide
This application supports a flexible theming system that allows you to override default branding, colors, and typography without modifying the core codebase.
How it Works
The application loads the default theme from src/config/theme.default.json. It then checks for a src/config/theme.custom.json file. If found, the custom configuration is merged on top of the default one.
Creating a Custom Theme
Create a file named
theme.custom.jsoninsrc/config/.Add your overrides using the structure below. You only need to include the values you want to change.
Example theme.custom.json
Configuration Options
App Identity (app)
Key | Description | Default |
|---|---|---|
| The name of the application, used in titles and UI. | "CoShares" |
| Path to the logo image (light mode). | "/logos/CoShares_logo.svg" |
| Path to the logo image (dark mode). | "/logos/CoShares_logo_dark.svg" |
| Path to the favicon file. | "/favicon.ico" |
Colors (colors)
The system maps these keys to CSS variables (e.g., primary-> --primary and --color-primary).
Key | Description | Default |
|---|---|---|
| Primary brand color. |
|
| Secondary brand color. |
|
| Main background color. |
|
| Card/Container background color. |
|
| Sidebar background color. |
|
| Sidebar text color. |
|
| Background for active sidebar items. |
|
| Text color for active sidebar items. |
|
... | (See |
Typography (typography)
Key | Description | Default |
|---|---|---|
| CSS font-family stack. |
|
Assets
Place your custom assets (logos, favicons) in the public/ directory or a subdirectory within it (e.g., public/logos/). Reference them with an absolute path starting with /.