mini player + dark glass: eight shapes run by the hidden main as the one brain, dissolving covers and accents, drag from anywhere, and the space between the panes turned to real acrylic - with the webview flags that keep rest frames honest

This commit is contained in:
KeelrLeek committed 2026-08-26 07:56:00 -05:00
1 parent 9b84b30aef
commit dc7ea16b22
33 files changed
+2432 -5

No files matched your search

+9
View File
@@ -5582,6 +5582,13 @@ const DEFAULT_ACCENT_HOVER = "#41b7ee";
export const theme = $state({
accent: DEFAULT_ACCENT,
accentHover: DEFAULT_ACCENT_HOVER,
// Where the crossfade is HEADED, set synchronously the moment it starts.
// The mini bridge streams THESE: the lerped pair above only advances via
// rAF in this window, and rAF never fires while this window is hidden —
// mirror the lerp and the mini goes stale the moment it's the only
// window on screen.
accentTarget: DEFAULT_ACCENT,
accentHoverTarget: DEFAULT_ACCENT_HOVER,
});
let accentRaf = null;
@@ -5589,6 +5596,8 @@ let accentRaf = null;
/** Animate --accent/--accent-hover to the target colors (ease-out). */
function crossfadeAccent(accent, hover, ms = 1200) {
if (accent === theme.accent && hover === theme.accentHover) return;
theme.accentTarget = accent;
theme.accentHoverTarget = hover;
if (accentRaf) cancelAnimationFrame(accentRaf);
const fromA = hexToRgb(theme.accent);
const fromH = hexToRgb(theme.accentHover);