Scroll Story
A pinned page builds itself in five acts as you scroll — the same order every real project here goes through. Scroll down; the story keeps pace with you, and scrubs backwards too.
01Structure
Boxes before beauty. The page starts as wireframe — nav, hero, cards, one call to action — so the argument is right before anything is pretty.
02Type
The headline lands first because it does the most work. Display type at full volume, body copy behind it — hierarchy you can squint at.
03Colour
Colour arrives as a system, not a mood: brand gradient on the word that matters, one accent per card, everything else stays quiet.
04Motion
Last-mile choreography — cards stagger up, the CTA breathes. Motion that explains order, and switches itself off for anyone who asked it to.
05Ship
Live badge on. Every step above happened to this very panel while you scrolled — that's the whole technique, shown with itself.
The brief
Scrollytelling is everywhere in product marketing and almost always shipped as a 200kB animation library. The brief: the full pattern — pinned visual, discrete states, scrub-in-reverse — with the same zero-dependency discipline as everything else on this page.
The build
The pinned panel is one CSS rule — position: sticky — and the story is one IntersectionObserver watching the step blocks through a band across the middle of the viewport. The step you're reading sets a state class on the panel; every visual change is a CSS transition keyed off those classes. Scroll up and the classes come off in reverse — the scrub costs nothing extra.
The fine print
The markup ships finished: all five state classes are present in the HTML, and the script's first act is to take them away and make you earn them back by scrolling. So with JavaScript off you get the completed page and five readable steps; with reduced motion (or the footer toggle) the observer never starts and the sequence reads as a static, labelled walkthrough. The enhancement ladder runs downhill to plain content, never to a blank panel.
Why it matters for you
Product pages, annual reports, launch stories — this is the format that makes people read the whole thing. Built this way it weighs nothing, works everywhere, and never holds your content hostage to a script tag.