Layers panel and scene strip: scene layers header with icons, per-type layer icons, PROGRAM badge and selected/live orange borders, scene name and hotkey overlays, Starting as default scene

- LeftPanel: SCENE LAYERS header with layer count; per-type blue icons; properties header gear; layers list min/max height; properties placeholder; list and properties indent
- SceneThumbnailStrip: names/hotkeys over the tile; PROGRAM badge with blinking red dot on the selected tile; orange border on selected and live tiles; fixed the element border override that hid the style border; reflag tiles on load
- LiveScene is now set on go-live, record start, and live transitions (it was never assigned, so IsLive never fired)
- Startup stages the scene named Starting
- DESIGN.md: color roles (red = YouTube/on-air/record, orange #ff8c3a = attention, amber = game audio/Super Chat)
- Staged live tile uses background art instead of the green LIVE placeholder

Not pushed.
This commit is contained in:
2026-10-26 14:00:23 -07:00
parent 24aca7d04a
commit 3239808a73
12 changed files with 146 additions and 45 deletions
+3 -6
View File
@@ -155,14 +155,10 @@ public partial class MainViewModel
? OnAirImage
: SceneThumbnailImage(scene);
if (img == null)
{
var stagedLive = isStaged
&& SceneCatalog.Is(scene.Name, SceneCatalog.Live);
img = stagedLive ? null : LoadBackgroundImage(scene);
}
img = LoadBackgroundImage(scene);
if (img != null)
scene.Snapshot = img;
else if (scene.Snapshot == null || (isStaged && OnAirImage == null))
else if (scene.Snapshot == null)
scene.Snapshot = CreatePlaceholderSnapshot(scene.Name);
}
}
@@ -443,6 +439,7 @@ public partial class MainViewModel
}
SeedOnAirImage();
OnPropertyChanged(nameof(ShowSourcesEmptyHint));
OnPropertyChanged(nameof(LayerCount));
}
// ─── Scene strip tile artwork (creator ruling 2026-10-10) ───