refactor(12.A): rename Mix* visualizer engine to Waveform* abstraction
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
/* Full-viewport fixed backdrop. Sits behind the detail content (.mix-detail-foreground is z-index:1)
|
||||
and never intercepts pointer events — except the zoom slider, which re-enables them on itself.
|
||||
|
||||
Footer clip (Phase 10 W1, spec §2c): the backdrop must stop cleanly ABOVE the audio player bar so
|
||||
no lava/waveform pixel paints over or under it. `overflow: hidden` clips the canvas to this box, and
|
||||
`bottom` is inset by `--player-height`, which AudioPlayerBar publishes on :root via its ResizeObserver
|
||||
(Interop/layout/spacer.ts). The observer now points at whichever element is live:
|
||||
expanded → the full player dock (tracks breakpoint reflow + error-banner growth)
|
||||
minimized → the minimized-dock FAB container (~56–60 px)
|
||||
so --player-height is always non-zero while the player is mounted and the clip line follows the bar in
|
||||
BOTH states (fix §1 / p10-reframe-w1-fix). The 0px fallback keeps the backdrop full-height on any
|
||||
page that does not host the player. */
|
||||
.mix-waveform-bg {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
bottom: var(--player-height, 0px);
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* The canvas fills the viewport. All ribbon shading (luminous depth, soft edges) is drawn inside the
|
||||
canvas by the WebGL2 fragment shader. NO CSS backdrop-filter: it was a confirmed per-frame perf killer
|
||||
on the Canvas predecessor and is exactly the cost the GPU move exists to eliminate (spec §2, §5.2);
|
||||
the glass treatment returns in-shader in Wave 3. */
|
||||
.mix-waveform-canvas {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
Reference in New Issue
Block a user