66 lines
2.6 KiB
CSS
66 lines
2.6 KiB
CSS
/* The seven-knob bar lives INLINE in the mix-detail controls area and animates open/closed in place
|
|
(lava reframe §7b) — NOT a popover or drawer. Collapsed, it has zero size and is fully transparent;
|
|
the @Expanded flag (mirrored to the .is-expanded class) transitions it open. We animate max-width +
|
|
max-height + opacity + transform together so the bar reads as the controls growing in place rather
|
|
than a panel popping in. Closed state is pointer-events:none + visibility:hidden so collapsed knobs
|
|
are not focusable or hit-testable. */
|
|
.mix-visualizer-controls-bar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: flex-start;
|
|
justify-content: flex-end;
|
|
gap: 0.85rem 1rem;
|
|
|
|
/* Collapsed: zero footprint, slid up toward the toggle, transparent. */
|
|
max-width: 0;
|
|
max-height: 0;
|
|
opacity: 0;
|
|
transform: translateY(-8px);
|
|
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),
|
|
transform 0.32s cubic-bezier(0.22, 0.61, 0.36, 1);
|
|
}
|
|
|
|
.mix-visualizer-controls-bar.is-expanded {
|
|
max-width: 640px;
|
|
max-height: 420px;
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
visibility: visible;
|
|
pointer-events: auto;
|
|
padding: 0.85rem 1rem;
|
|
}
|
|
|
|
/* One control: a RadialKnob with its Material icon caption underneath. RadialKnob has no icon slot, so
|
|
the icon rides adjacent (§7d). Center the pair so the seven read as a tidy bar. */
|
|
.mix-visualizer-control {
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: center;
|
|
gap: 0.3rem;
|
|
}
|
|
|
|
/* The caption icon is a MudIcon (a Razor component), so Blazor CSS isolation does not stamp the scope
|
|
attribute onto its element — reach it with ::deep. Tinted to the secondary accent and the
|
|
overlay-label opacity so it matches the session-hero NowPlaying captions (§7e). */
|
|
.mix-visualizer-control ::deep .mix-visualizer-control-icon {
|
|
color: var(--mud-palette-secondary);
|
|
opacity: 0.78;
|
|
}
|