Components
Everything on this site, installable
The site is built from these, so what you install is what you are looking at. Every preview below is the real component running, not a picture of one.
Add the registry once
export CTA_REGISTRY=https://adamjurek.com/r/registry.jsonReveal
Scroll effects
No dependencies
Fades and rises its children the first time they reach the viewport. Never un-reveals.
Preview: A card fading and rising into place
Scroll Spin
Scroll effects
No dependencies
Rotates its children with the page scroll, in a rAF callback rather than React state.
Preview: A mark turning as the frame scrolls
Smooth Scroll
Scroll effects
lenis
Mounts Lenis for the page and renders nothing. Respects reduced motion.
Preview: Nothing to see - it changes how the page scrolls
useScrollProgress
Scroll effects
No dependencies
How far one element has travelled up the viewport, 0 to 1, once per frame. Gated by an observer so an off-screen element costs nothing.
Preview: No UI - it hands you a number between 0 and 1
useScrollTurn
Scroll effects
No dependencies
Scroll position as a rotation, delivered once per frame. Drives a CSS transform or a three.js object, never React state.
Preview: No UI - it hands you an angle every frame