design: shell to tokens — top bar, window, scene strip (surface 2 of the sweep)

- Telemetry readouts (bitrate, FPS, dropped, live duration) now wear JetBrains Mono, so the
  tabular digits stop shifting width as values change — the first place the bundled mono face
  is actually visible.
- Scene tiles: staged = blue (selection), live/program = red. Both were orange, which meant the
  same colour marked two different states and neither was the live colour.
- EDIT toggle: "on" is the interactive accent, not orange. Orange now means warning only.
- Wordmark's two-tone accent, avatar chrome, readout panel, tile borders and the program badge
  all resolve from tokens.

Guard list extended: MainWindow.xaml, Controls/TopBar.xaml, Controls/SceneThumbnailStrip.xaml —
these three can no longer regress to a hardcoded colour.
This commit is contained in:
2026-10-30 07:56:02 -07:00
parent ffdf3b6fc9
commit 0275e30103
4 changed files with 32 additions and 31 deletions
+3 -2
View File
@@ -74,14 +74,15 @@ 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" };
string[] converted = { "Themes/Controls.xaml", "MainWindow.xaml", "Controls/TopBar.xaml", "Controls/SceneThumbnailStrip.xaml" };
foreach (var file in converted)
{
var text = SourceAssert.Text(file.Split('/'));
var raw = Regex.Matches(text, @"#[0-9a-fA-F]{6,8}")
.Select(m => m.Value)
.Where(v => v is not "#ffffff" and not "#000000" and not "#FFFFFF" and not "#000000")
.Where(v => !v.Equals("#ffffff", StringComparison.OrdinalIgnoreCase)
&& !v.Equals("#000000", StringComparison.OrdinalIgnoreCase))
.Distinct(StringComparer.OrdinalIgnoreCase)
.ToList();