feat(theater): full-screen detail body, eased content collapse, playing-release scoping

Detail bodies fill 100vh below the nav so the visualizer reads full-screen; Theater toggle eases page content and the player-bar now-showing panel in/out instead of popping (reduced-motion honored); Theater only applies to the currently-playing release.
This commit is contained in:
daniel-c-harvey
2026-06-21 08:59:09 -04:00
parent a577df88dd
commit 9716092805
8 changed files with 202 additions and 44 deletions
@@ -10,13 +10,18 @@ else
<MudContainer MaxWidth="MaxWidth.Large" Class="player-inner-container">
<MudPaper Elevation="8" Class="player-surface pa-3">
@* Theater Mode "now showing" band (Phase 20 §5/§7). Shown only when Theater is ON and a
release is playing — keyed off the playing track's Release, not off any detail page
(the bar reaches into no page; §6). The release page is hidden in Theater Mode, so the
bar carries its identity: cover, linked title, release share. *@
@if (VisualizerControlState.TheaterMode && CurrentTrack?.Release is not null)
@* Theater Mode "now showing" band (Phase 20 §5/§7, Wave 2 §2). Keyed off the playing
track's Release, not off any detail page (the bar reaches into no page; §6). The release
page is hidden in Theater Mode, so the bar carries its identity: cover, linked title,
release share. The band stays mounted whenever a release is playing and eases in/out via
the shared .dd-theater-collapsible wrapper — collapsed (zero height, faded) unless
Theater is ON — so the bar grows/shrinks smoothly instead of popping. *@
@if (CurrentTrack?.Release is not null)
{
<NowShowingPanel Release="CurrentTrack.Release" />
var nowShowing = VisualizerControlState.TheaterMode;
<div class="dd-theater-collapsible @(nowShowing ? null : "dd-theater-collapsed")">
<NowShowingPanel Release="CurrentTrack.Release" />
</div>
}
<div class="player-layout">