crucıble

Louver

Gradient blinds: angled slats tilt open around the cursor to reveal a brighter rosewood-to-indigo field behind, each open slat catching a 1px lit edge, with a slow diagonal shimmer when idle. Original OGL fragment shader, offscreen-paused and reduced-motion-safe.

oglfree

Installation

CLI

npx shadcn@latest add @crucible/louver

Manual — install dependencies, then copy the source

npm install ogl

Props

PropTypeDefaultDescription
colors[string, string]rosewood → indigo duotoneTwo gradient stops [from, to] for the field behind the blinds. Any hex strings.
slatCountnumber24Number of slats. Clamped so no slat renders narrower than ~10 CSS px (the effective count drops automatically on short stages).
anglenumber18Slat tilt from horizontal, in degrees.
openBiasnumber0.14Baseline openness of every slat, 0–0.8.
radiusnumber0.32Pointer influence radius as a fraction of the stage height (the blinds tilt open within this distance of the cursor).
interactivebooleantrueRespond to the pointer. When false only the idle shimmer runs.
speednumberAnimation speed multiplier. 1 = default.
intensitynumberStrength of the pointer reveal and lit-edge highlight. 1 = default.
pausedbooleanFreeze the animation, holding the current frame.
classNamestringExtra classes for the wrapper. Positioned absolute inset-0 -z-10.

Honors prefers-reduced-motion with a designed static fallback, pauses offscreen and on hidden tabs, and passes className through.