- useHoloTheme liest die --holo-*-Token nur bei einem Wechsel von Dunkel/Sonne neu (Attribut-Beobachter plus apicore:appearance), nie pro Bild; gleiche Token behalten das Theme, nur Farbmaterialien werden neu gebaut und alte freigegeben. - Sonne nach Beute-Spec 9.3 und T5 17.8: schwarze Bühne ohne Boden, Spiegel, Bloom, Vignette, Dunst und Partikel; weiße Kanten 2 px in Bildschirmbreite (Hover, aktiver Platz, Vorschau 3 px), Rähmchen schwarz-weiß schraffiert, Labels 16 px auf fester Platte, neutrales Licht. - Glas-Knöpfe ohne Blur und Schein in Sonne. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
14 lines
1.2 KiB
TypeScript
14 lines
1.2 KiB
TypeScript
// Frosted glass surfaces over the holo stage (mockups g2/h2). Text is
|
|
// --holo-label-fg on --holo-label-bg at 70 % over the midnight stage, well
|
|
// above 4.5:1. The focus ring comes from the global rule; .holo-stage on the
|
|
// stage root draws it in the strong edge colour (spec 17.8). In sun the stage
|
|
// is black: no blur and no glow (T5 spec 17.6), the fill stays.
|
|
|
|
const GLASS_FILL = "bg-holo-label-bg/70 text-holo-label-fg backdrop-blur-md sun:backdrop-blur-none";
|
|
|
|
export const GLASS_SURFACE = `border border-white/15 shadow-[0_8px_24px_-12px_rgb(0_0_0/0.6)] sun:shadow-none ${GLASS_FILL}`;
|
|
|
|
export const GLASS_BUTTON = `inline-flex h-11 shrink-0 items-center justify-center gap-1.5 rounded-xl px-3 text-sm sm:gap-2 sm:px-4 font-medium transition-colors hover:bg-holo-label-bg/90 disabled:cursor-not-allowed disabled:opacity-60 aria-pressed:border-2 aria-pressed:border-holo-edge-strong aria-pressed:bg-holo-edge/25 [&_svg]:size-5 border border-holo-edge/35 shadow-[0_0_18px_-8px_var(--holo-edge)] sun:shadow-none ${GLASS_FILL}`;
|
|
|
|
export const GLASS_PILL = `inline-flex h-11 shrink-0 items-center gap-2 rounded-full px-4 text-sm font-medium transition-colors hover:bg-holo-label-bg/90 ${GLASS_SURFACE}`;
|