feat: render release Description blurb on Session, Mix, and Cut detail pages

New shared ReleaseDescription control renders the blurb in a uniform themed block
below the hero/header; null/whitespace renders nothing, with no layout artifact.
This commit is contained in:
daniel-c-harvey
2026-06-17 14:39:03 -04:00
parent db29b0dd18
commit b8f81edb59
5 changed files with 47 additions and 0 deletions
@@ -0,0 +1,19 @@
@namespace DeepDrftPublic.Client.Controls
@* Shared presentational blurb block for release detail pages. Renders the release's short
Description paragraph in a uniform styled block placed just below the hero/header on every
medium (Session, Mix, Cut). Purely presentational — owns no data fetch and no player wiring.
A null/whitespace Description renders nothing at all: no block, no divider, no whitespace
artifact (the guard lives here so every consumer gets it for free). *@
@if (!string.IsNullOrWhiteSpace(Description))
{
<div class="deepdrft-release-description">
<p class="deepdrft-release-description-text">@Description</p>
</div>
}
@code {
/// <summary>The release's short description blurb. Null/whitespace renders nothing.</summary>
[Parameter] public string? Description { get; set; }
}
@@ -115,6 +115,8 @@ else
</div>
</Header>
<BodyContent>
@* Blurb sits between the header and the track-list divider. *@
<ReleaseDescription Description="@release.Description" />
<MudDivider Class="cut-detail-divider" />
@if (ViewModel.Tracks.Count == 0)
{
@@ -85,6 +85,10 @@ else
</PlayContent>
</ReleaseHeroOverlay>
</Hero>
<BodyContent>
@* Blurb sits below the hero, inside the scaffold's foreground stacking context. *@
<ReleaseDescription Description="@release.Description" />
</BodyContent>
</ReleaseDetailScaffold>
</MudContainer>
</div>
@@ -83,6 +83,8 @@ else
</PlayContent>
</ReleaseHeroOverlay>
<ReleaseDescription Description="@release.Description" />
</MudContainer>
}
@@ -579,3 +579,23 @@ h2, h3, h4, h5, h6,
margin: 0 auto;
}
}
/* =============================================================================
RELEASE DESCRIPTION BLURB
Shared block rendered just below the hero/header on every release detail page
(Session, Mix, Cut). Theme-driven colours keep it legible in both palettes.
============================================================================= */
.deepdrft-release-description {
margin: 1.5rem 0;
}
.deepdrft-release-description-text {
margin: 0;
max-width: 60ch;
font-family: var(--deepdrft-font-body);
font-size: 1.05rem;
line-height: 1.7;
color: var(--mud-palette-text-primary);
opacity: 0.85;
}