Repository navigation
Interface themes: CaYaDev, Dark, Light, Device default, High Contrast and more (#770) - #771
Conversation
…770) - src/shared/ui-themes.js: one table of 64 colour tokens per theme (CaYaDev, Dark, Light, High Contrast, Midnight, Sepia, Neon) plus Device default, which resolves from prefers-color-scheme and follows it live. - admin.css/studio.css: about 320 colour literals became tokens; channel tokens are used as rgb(var(--x-rgb) / a) so tints flip on light themes; :root is the CaYaDev table. - Timeline and projection-mapping canvases read tokens and redraw on a theme change. - theme-boot.js applies the theme in <head>; the main process opens the panel in the theme's background and passes the theme in the address. README shots stay CaYaDev; nativeTheme.themeSource is not touched. - Settings → Application → Interface Theme picker (radio group, arrow keys); the setting lives in ui.theme, travels with backups and survives Reset to Defaults; MCP group output. - CaYaDev: --muted2, code comments and the solid danger button raised to 4.5:1; the button gradient end is its own token (--accent-grad) so white text reads mid-gradient. - Fixed two labels below 3:1 in every theme (crossfader empty side, Studio built-in tag); decorative separators are aria-hidden. - Tests: token completeness, :root parity, no colour literals outside the table (CSS and panel scripts), defined variables, 128 contrast rules per theme, every CSS text/background pair per theme, head script in a fake DOM. Self-test measures the drawn contrast of every visible text in every theme. Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.com>
Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.com>
|
CaYaDraft — pull request Summary Files Unreleased+### Control panel
README.md (modified, +5/-2) README.tr.md (modified, +5/-2) ROADMAP.md (modified, +43/-1) src/admin/admin.css (modified, +232/-139)
src/admin/admin.js (modified, +110/-2)
Note Stopping here. I will not merge, push, or change this pull request until you ask.
|
…cue, plus cell, warn note, media badge (#770) Adds a guard test that fails when a CSS color uses a theme variable without a contrast rule. Darkens --cue-armed in Light and Sepia, moves the empty-cell plus to --muted2, uses --warn-text for the backup conflict note and checks white text on the media scrim. Test count 3216. Co-authored-by: caganturgut <271973834+caganturgut@users.noreply.github.com>
# Conflicts: # README.md # README.tr.md # ROADMAP.md
Closes #770.
What
Settings → Application → Interface Theme offers seven themes and a Device default option:
Device default follows the OS light/dark preference and switches live.
The theme changes the panel only. The visualizer output, the stream overlay and user colours are untouched. The setting is
ui.theme: it travels with settings backups and survives Reset to Defaults.How
src/shared/ui-themes.jsholds 64 colour tokens per theme. Channel tokens (--fg-rgb) are used asrgb(var(--fg-rgb) / a), so hover tints flip on light themes.admin.css/studio.cssbecame tokens.:rootis the CaYaDev table.theme-boot.jsapplies the theme in<head>. The main process opens the window in the theme's background and passes the theme in the address, so there is no dark flash. README shots stay CaYaDev, andnativeTheme.themeSourceis not touched.CaYaDev changes (intentional)
--muted2goes from#8a6f79to#a1858f. Hint text was 3.4–4.4:1 on cards and needs 4.5:1.#6d5f72to#9a8aa0(they were 3.3:1).#e5484dto#d93a40(white text was 3.9:1).--accent-grad=#ea2636.--accent2stays#ff4d5efor headings. White text was 3.96:1 mid-gradient.Pixel comparison against screenshots taken before any CSS change, with these set back to their old values: the remaining differences were live content, the new picker and one consolidated status green.
Correction (#774): those screenshots did not cover every surface. Reading the old CSS afterwards found more visible CaYaDev changes:
#774 also fixes clip cells that this PR's audit skipped: slot-colour tint, countdowns, and the sourceless slot. CHANGELOG and ROADMAP list all of it.
Tests
npm testpasses 3215 (+32). The new tests check::rootparity with the CaYaDev table;var()is defined;Self-test (
--smoke, isolated profile): PASS. A new step picks every theme from the picker, scrolls every category and measures the drawn contrast of each visible text, about 2,600 per theme.Also checked by hand in Light and Sepia: the timeline with clips, automation and markers, the clip deck, the shader code editor, search results, confirm dialogs and toasts.