feat: centralize theming in theme-manager (palette/tokens, CSS, dark-mode, setup UI), add tests + win32/meson wiring

This commit is contained in:
2026-03-02 19:42:48 -07:00
parent f3086fa389
commit d9be0a7b1c
57 changed files with 5476 additions and 1916 deletions

View File

@@ -39,3 +39,16 @@ You can reset overrides after testing:
```bash
flatpak override --user --reset net.zoite.Zoitechat
```
## Theme palette migration and legacy keys
New builds store theme colors as semantic token keys in `colors.conf` (for example `theme.mode.light.token.mirc_0`).
When loading old configs that only contain legacy keys (`color_*` and `dark_color_*`), ZoiteChat migrates them automatically if `theme.palette.semantic_migrated` is not present.
By default saves write both semantic token keys and legacy keys for compatibility. To phase out legacy writes, set:
```bash
export ZOITECHAT_THEME_WRITE_LEGACY_KEYS=0
```
With that setting, saves write semantic token keys only while legacy-key loading remains available for older config files that have not yet been marked as migrated.