Add two contribution-only theme plugins, each with a light and a dark theme
that sets every UI token plus an editor colour scheme with syntax, editor
and terminal ANSI colours:
- plugins/theme-solarized: Solarized Light, Solarized Dark
- plugins/theme-one: One Light, One Dark (Atom One, original HSL values)
They replace the partial theme-solarized-dark sample. Each package ships
the MIT notice of its palette in LICENSE, which is now copied on install
with the files the manifest references. scripts/theme checks every theme
plugin in plugins/ against the token list of tokens.css.
Theme handling that any theme benefits from:
- Start-up: boot.js restores the selected plugin theme's stylesheet and the
last resolved frame, text and accent colours before any CSS loads, so the
splash and workbench no longer show the built-in theme until the plugin
host answers. The UI keeps the boot theme until the first plugin list,
and the list now waits for the initial plugin load.
- Native windows: the UI reports the plugin theme's resolved frame colour,
which the plugin host persists and new project windows open in.
- hsl(), color-mix() and var() tokens are resolved to RGB for Tauri's window
background, the native Settings window (hex) and Mermaid diagrams.
- Mermaid, the terminal and the editor colour scheme follow switches between
plugin themes of the same light / dark base; an explicit editor scheme
now replaces a plugin theme's editor colours.
Supersedes #85.
Co-authored-by: bghtyu <[email protected]>
Claude-Session: https://claude.ai/code/session_01VUYsdXA2nkF5v6zsC93dpn
The Settings window loads the same page as project windows, so it showed the
launch splash with the logo. It now shows only the bar, after 400 ms.
The bar's sliding animation was switched off under reduced motion, leaving a
static 40% fill. It is now a fake progress that eases towards ~90% and fills
to 100% before the splash fades out.
Claude-Session: https://claude.ai/code/session_01B65qLEKnkeYTGdbwhLpjCu