feat(mix-visualizer): gate knob controls with Blazor @if in TopContent band; drop CSS collapse, glass, and TopRowCenter slot
This commit is contained in:
@@ -1,63 +1,14 @@
|
||||
/* The seven-knob container lives IN-FLOW in the scaffold's top-row center zone, between the back link
|
||||
and the lava-lamp toggle, and grows open/closed in place (lava reframe §7b) — NOT a popover, drawer,
|
||||
or floating overlay. Collapsed, it has zero footprint and is fully transparent; the @Expanded flag
|
||||
(mirrored to the .is-expanded class) transitions it open by growing its width. The PRIMARY animated
|
||||
axis is horizontal width — the controls area opening between the back link and the lamp; max-height is
|
||||
a secondary axis for the wrap case. Closed state is pointer-events:none + visibility:hidden so
|
||||
collapsed knobs are not focusable or hit-testable. */
|
||||
/* The seven-knob band. Blazor gates its presence (the host renders this component only while the
|
||||
lava-lamp is on), so this is purely a layout rule for the visible state — no collapse machinery, no
|
||||
transitions, no glass surface. A plain transparent horizontal flex row of the seven knobs that wraps
|
||||
to a second line only if the band is genuinely too narrow. */
|
||||
.mix-visualizer-controls-bar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: flex-start;
|
||||
justify-content: flex-start;
|
||||
justify-content: center;
|
||||
gap: 0.85rem 1rem;
|
||||
|
||||
/* Collapsed: zero horizontal footprint, transparent, no layout space. */
|
||||
max-width: 0;
|
||||
max-height: 0;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
pointer-events: none;
|
||||
|
||||
/* NowPlaying glass surface (§7e): translucent dark shim, soft blur, rounded, secondary-tinted
|
||||
hairline — matches the session-hero overlay family. Padding animates in with the size. */
|
||||
padding: 0;
|
||||
border-radius: 10px;
|
||||
background: rgba(13, 27, 42, 0.55);
|
||||
border: 1px solid color-mix(in srgb, var(--mud-palette-secondary) 22%, transparent);
|
||||
backdrop-filter: blur(10px);
|
||||
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
|
||||
|
||||
transition:
|
||||
max-width 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
|
||||
max-height 0.32s cubic-bezier(0.22, 0.61, 0.36, 1),
|
||||
opacity 0.24s ease,
|
||||
padding 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
|
||||
}
|
||||
|
||||
/* Expanded: grows horizontally in the row's flow. Wide enough to hold all seven 64px knobs (with
|
||||
captions and gaps) on one line where the row has room; on a narrower center zone the knobs flex-wrap
|
||||
to a second in-flow line and max-height absorbs the taller stack — never clipped, never floating. */
|
||||
.mix-visualizer-controls-bar.is-expanded {
|
||||
max-width: 720px;
|
||||
max-height: 420px;
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
pointer-events: auto;
|
||||
padding: 0.85rem 1rem;
|
||||
}
|
||||
|
||||
/* Narrow rows: the controls container can't sit beside the back link and lamp on one line, so it takes
|
||||
the full row width and the scaffold's flex-wrapped top row drops it to its own in-flow line below the
|
||||
back/lamp pair (§7b-responsive). Still fully in-flow — never floats, never clips. The seven knobs get
|
||||
the row's full width and wrap within it. */
|
||||
@media (max-width: 959.98px) {
|
||||
.mix-visualizer-controls-bar.is-expanded {
|
||||
flex-basis: 100%;
|
||||
max-width: 100%;
|
||||
justify-content: center;
|
||||
}
|
||||
margin: 0.5rem 0;
|
||||
}
|
||||
|
||||
/* One control: a RadialKnob with its Material icon caption underneath. RadialKnob has no icon slot, so
|
||||
|
||||
Reference in New Issue
Block a user