design: the last VM-side colours come from tokens (ThemeBrush)
The state colours the view-models hand to bindings — top bar, REC/ON-AIR dots, health banner, meter bands, toast tints — were hex literals in C#. They now resolve from Themes/Tokens.xaml through `Helpers/ThemeBrush`, so the values live in one place. Without an Application (unit tests) the helper returns a neutral grey: visibly wrong rather than silently plausible. Four tokens the code needed and the document lacked, added to DESIGN.md (so the doc-is-the-contract guard demanded their brushes): info-container #3a3b52, success-container #1d5c38, warning-container #b8860b, test-container #9c6f1c (the test-stream gold bar). Also fixed by this: the top bar still painted the RETIRED brand red #e94560 when live — the standard's #ff5451 now, and `OnAirSignTests` (which pinned the old value) says so. BarOn/BarOff became properties rather than static fields, because a static field would resolve tokens before the Application exists. Verified: DesignTokensTests, GameMeterHonestyTests, NotificationAreaIntegrationTests, OnAirSignTests, SessionTeardownTests — 38 tests green.
This commit is contained in:
@@ -316,7 +316,9 @@ public partial class MainViewModel : ViewModelBase
|
||||
return;
|
||||
}
|
||||
|
||||
HealthIssueBackground = report.IsError ? "#93000a" : "#b8860b";
|
||||
HealthIssueBackground = report.IsError
|
||||
? ThemeBrush.Hex("Brush.ErrorContainer")
|
||||
: ThemeBrush.Hex("Brush.WarningContainer");
|
||||
HealthIssueBanner = report.Text;
|
||||
}
|
||||
|
||||
@@ -486,8 +488,12 @@ public partial class MainViewModel : ViewModelBase
|
||||
var live = IsLive;
|
||||
// A live TEST broadcast wears gold, not the live red — the TEST badge +
|
||||
// gold are the "this is a rehearsal" cue (TASK 41).
|
||||
TopBarBackground = live ? IsTestStream ? "#9c6f1c" : "#ff5451" : "#16213e";
|
||||
PreviewGlowBrush = live ? IsTestStream ? "#9c6f1c" : "#ff5451" : "Transparent";
|
||||
TopBarBackground = live
|
||||
? ThemeBrush.Hex(IsTestStream ? "Brush.TestContainer" : "Brush.Primary")
|
||||
: ThemeBrush.Hex("Brush.SurfaceContainer");
|
||||
PreviewGlowBrush = live
|
||||
? ThemeBrush.Hex(IsTestStream ? "Brush.TestContainer" : "Brush.Primary")
|
||||
: "Transparent";
|
||||
PreviewGlowThickness = live ? new Thickness(3) : new Thickness(0);
|
||||
|
||||
if (!live) _healthPollTimer.Stop();
|
||||
|
||||
Reference in New Issue
Block a user