design: left panel to tokens (surface 3 of the sweep) — 101 colours gone

The layers/properties panel is the surface the creator looks at most, and it carried the
largest hardcoded palette in the app: 50 label greys, 15 icon blues, and a scatter of
one-off hexes. All of it resolves from tokens now.

Three sites needed a decision rather than a mapping, because the same hex meant different things:
- the + add icon and the chat author name were the old brand red → interactive accent (blue)
- the webcam lock alert is an ERROR, not decoration → error surface + error border
- the ✕ revert affordance was red, which the standard reserves for live/record → muted. ✓ stays
  a positive confirm, now in the interactive accent rather than a green that exists nowhere else
  in the palette. If green checks are missed, a `positive` token is the way back, not a literal.
- Super Chat gold was #eab308; it is the standard's amber now (game audio + Super Chat only).

Guard list extended: Controls/LeftPanel.xaml can no longer regress to a raw colour.
This commit is contained in:
2026-10-30 08:00:43 -07:00
parent 8a2cb92d8c
commit 2dbc35b285
2 changed files with 101 additions and 100 deletions
+2 -1
View File
@@ -74,7 +74,8 @@ public class DesignTokensTests
// The sweep converts one surface per commit; each adds its file here, so every step is
// guarded on its own instead of waiting for a global grep at the end. Pure white and black
// are allowed (gloss highlights, knockout masks) — everything else must be a token.
string[] converted = { "Themes/Controls.xaml", "MainWindow.xaml", "Controls/TopBar.xaml", "Controls/SceneThumbnailStrip.xaml" };
string[] converted = { "Themes/Controls.xaml", "MainWindow.xaml", "Controls/TopBar.xaml", "Controls/SceneThumbnailStrip.xaml",
"Controls/LeftPanel.xaml" };
foreach (var file in converted)
{