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.jsonBoot Loader
Scroll effects
No dependencies
A count to a hundred that stalls at ninety until what it is covering has actually arrived. Fills its parent, not the viewport.
Preview: A mark, a number climbing, and a rule filling
Reveal
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
Typed Mark
Text effects
No dependencies
Types a word out one character at a time, cycling the syntax palette. No JavaScript, no state, and it runs with scripting off.
Preview: A name typing itself in nine colours
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