From 374288f99e3e83676f83312532578edea293acf9 Mon Sep 17 00:00:00 2001 From: Cameron Clough Date: Thu, 13 Aug 2026 13:06:24 +0100 Subject: [PATCH] fix(web): restore fork artwork on the default theme The Yngatech stage palette was scoped to `html[data-theme-id="t3-chat"]`, but the default T3 Code theme carries no `data-theme-id` at all: `applyThemePalette` deletes the attribute whenever the preference does not resolve to a stored palette, and the settings grid renders that state as the T3 Code card. Everyone on the default theme therefore fell through to upstream's pigments, so Nightly showed the upstream purple sky and Dev the upstream blue blueprint. Scope the fork pigments to the absence of `data-theme-id`, and cover the Dev blueprint alongside the Nightly sky. The pigments sit on the root rather than on the artwork element because the sidebar focus rings offset against `--stage-art-bottom` from outside the SVG and would otherwise stay upstream blue. T3 Chat now derives from its own pigments like the rest of the named built-ins. ## Verification - Computed `--stage-art-top` / `--stage-night-top` in a running dev client: default theme resolves to `#5cd6ce` / `#10484f` light and `#35939c` / `#10484f` dark; Iris and T3 Chat still resolve to their own OKLCH color-mix values - `vp fmt apps/web/src/yngatech.css --check` --- Written by an agent (T3 Code, claude-opus-5). --- apps/web/src/yngatech.css | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/web/src/yngatech.css b/apps/web/src/yngatech.css index b71ce77c092..907ec3df8cc 100644 --- a/apps/web/src/yngatech.css +++ b/apps/web/src/yngatech.css @@ -1,7 +1,16 @@ @layer components { - /* Keep the fork's Nightly identity stable in the flagship theme while the - remaining built-ins follow upstream's pigment-derived palettes. */ - html[data-theme-id="t3-chat"] .stage-nightly { + /* The default T3 Code theme carries no data-theme-id, so the fork's Dev and + Nightly identity hangs off its absence. Named built-ins keep following + upstream's pigment-derived palettes. Pigments sit on the root so the stage + art and the focus rings offset against it stay in the same colorway. */ + html:not([data-theme-id]) { + --stage-art-top: #5cd6ce; + --stage-art-mid: #219eae; + --stage-art-bottom: #0a5b72; + --stage-art-highlight: #dffffa; + --stage-art-secondary: #5fe3d6; + --stage-art-tertiary: #6fe3c0; + --stage-art-line: #ddfbf5; --stage-night-top: #10484f; --stage-night-mid: #0a2b34; --stage-night-bottom: #05191f; @@ -10,4 +19,10 @@ --stage-night-tertiary: #5fe0bf; --stage-night-line: #c4f2ea; } + + html.dark:not([data-theme-id]) { + --stage-art-top: #35939c; + --stage-art-mid: #1b6675; + --stage-art-bottom: #0b3540; + } }