How Themes Work¶
Color key structure (130 keys)¶
In v0.45.0, 13 text color items were added, bringing the total number of customizable keys to 130. Keys are classified into 5 types by purpose and identified by type icons in the customization screen.
| Type icon | Purpose | Representative keys |
|---|---|---|
| Background | Pane, panel, and row fills | BackgroundBrush, NavPaneBackgroundBrush, ListRowAltBrush |
| Text | Body, heading, status text colors | TextBrush, SelectionTextColor, StatusBarTextColor, ActivePaneCellTextStyle |
| Border | Rules, dividers, focus frames | BorderBrush, AddressBarSeparatorColor, SelectionBorderBrush |
| Icon | PackIconLucide fill | IconBrush, NavPaneIconBrush |
| Accent | Emphasis, progress, gradient | AccentBrush, GlowBarBrush, ThemeAccent |
The customization dialog (theme card right-click → "Customize Theme") has 7 tabbed sections (Base UI / File List / Search / Accent & Error / Context Menu / Nav Pane & Control Deck / Misc), with type-based quick filters within each tab. Free version is limited to 3 uses per day.
Live preview and save location¶
- Color changes are reflected immediately via
DynamicResourceinApp.xaml; all windows redraw (requiresDynamicResourcereferences, notStaticResource). - Only differences are saved to
themes/_custom/{ThemeName}.json(the originalthemes/{ThemeName}.jsonis never modified). - Customized themes show a palette icon on the card; right-click → "Reset to Default" deletes the
_custom/file.
Theme schedule auto-switching¶
Auto-switches between a daytime and nighttime theme on a time-of-day basis. Configure via theme settings → Schedule with switch times and the theme for each slot. The ThemeService handles the switching logic. The switch event is broadcast as ThemeChanged (for mascot integration).
Theme Store¶
A community theme repository (served via Cloudflare Worker) for browsing, downloading, and rating. Upload is a Pro feature. Sort by downloads / rating / newest, with pre-apply preview. Installed themes can be diff-checked against the store version (Store Theme Diagnosis).
Automatic updates for built-in themes¶
The built-in 50 themes auto-download the latest versions from the store (user customizations remain independent in _custom/).
Unknown color keys¶
When a theme JSON is loaded, color keys the app does not recognise are ignored. A misspelled key name therefore has no effect rather than causing an error.