Getting Started
Install react-kino and build your first scroll experience in minutes.
Installation
Requirements: React 18+
Quick Start
Wrap your app with <Kino>, add a <Scene>, and you have a pinned scroll section:
That is a complete scroll experience: the section pins in place, content fades in at different scroll points, and a number counts up -- all in ~20 lines.
Why react-kino
- Tiny -- the core scroll engine is under 1 KB gzipped. GSAP ScrollTrigger alone is 33 KB.
- Declarative -- compose
<Scene>,<Reveal>,<Parallax>, and<Counter>like regular React components. No imperative timelines. - Lightweight runtime --
react-kinouses a tiny internal engine package (@kino/core) plus React peers. - SSR-safe -- every component renders children on the server and animates on the client.
SSR / Next.js
react-kino is SSR-safe and defers scroll logic to useEffect.
What happens on the server: Components render their children immediately with no animation styles. Scroll tracking starts after hydration on the client.
Accessibility
react-kino respects the prefers-reduced-motion media query:
<Reveal>-- content renders immediately in its visible state<Parallax>-- parallax offset is disabled<Counter>-- displays the final value immediately
No additional configuration is required.
Animation Engine
react-kino uses a lightweight JavaScript scroll engine with CSS transforms and opacity transitions:
- Shared scroll tracker -- one provider can drive all scroll subscribers.
- requestAnimationFrame batching -- updates are coalesced for smoother rendering.
- GPU-friendly styles -- reveal/parallax use transform and opacity.
Browser Support
| Feature | Chrome | Firefox | Safari | Edge |
|---|---|---|---|---|
| Core scroll tracking | 64+ | 60+ | 13+ | 79+ |
position: sticky | 56+ | 59+ | 13+ | 79+ |
prefers-reduced-motion | 74+ | 63+ | 10.1+ | 79+ |