Move your pointer
Spotlight
A light that follows the pointer. The default hero background for a product page, and the reason a dark hero reads as lit rather than as black.
<Spotlight />Components
Every one of these is running — not a screenshot. They come from the same module a generated project imports, and the line under each is what puts it on a page.
What a page looks like standing still, which is almost all of the time somebody is reading it. One per section — a spotlight and an aurora and a grid together is a mess.
Move your pointer
A light that follows the pointer. The default hero background for a product page, and the reason a dark hero reads as lit rather than as black.
<Spotlight />Drifting
Slow drifting colour on three co-prime durations, so the composition never visibly repeats. For a page with no photograph that needs warmth.
<Aurora />Still
Four overlapping radial gradients, completely static. The one to reach for when the page already has motion elsewhere.
<MeshGradient />Ground
Ruled or dotted ground, faded at the edges. Unmasked it reads as graph paper; masked it reads as a surface the content sits on.
<GridPattern variant="dots" />Glass needs something behind it. Over a photograph or a gradient it reads as expensive; over a flat colour it is a slightly different white.
Over a gradient
Real glassmorphism, with the blur floor handled — below about 0.8 opacity a blurred surface stops reading as glass and starts reading as broken.
<GlassPanel>…</GlassPanel>Hover me
A border that lights under the pointer. For a row of cards that would otherwise be flat rectangles. It styles nothing else — the radius and padding stay yours.
<GlowCard>…</GlowCard>A CTA with a light travelling across it, instead of the gradient-and-shadow every generated page uses.
<ShimmerButton>Start</ShimmerButton>A row of three equal cards is the single clearest tell of a generated page. Bento works because one card is bigger than the rest.
twoThirds
third
An asymmetric feature grid. A row of three equal cards is the single clearest tell of a generated page; bento works because one card is bigger than the rest.
<BentoGrid><BentoCard span="twoThirds" tall>…scrollStory
A pinned section whose acts are the scroll position — scroll back up and it runs backwards. Ships with a play control, because a story hides its content behind a gesture.
That is the difference from scrollTrigger, which happens once when a thing arrives and then runs on its own clock.
A story hides its content behind a gesture, which is expensive for more people than it looks. The play control ships with it.
useEffect(() => scrollStory(ref.current), []);There are more — eighteen scroll compositions in scene.ts and fifteen element effects in effects.ts. You do not choose them from a list: describe the site and the builder reaches for the right one.