Vertical scroll becomes horizontal travel.
A tall section wraps a sticky viewport. As you pass through it, the track translates by exactly the distance you've scrolled — no hijacking, no fake scrollbars.
Parallax layers, a pinned horizontal rail, staggered reveals, magnetic tilt and a browser-window frame that tracks your position. Scroll to see all of it move.
Every scroll position maps to a frame. PrismScroller reads that position once per animation frame and paints everything from it: layer offsets, the pinned rail's translate, the progress rail, the URL in the fake chrome.
Nothing is hard-coded to a pixel value, so it survives any viewport. And if the visitor asks for reduced motion, all of it gracefully steps aside.
vertical → horizontal
A tall section wraps a sticky viewport. As you pass through it, the track translates by exactly the distance you've scrolled — no hijacking, no fake scrollbars.
Each element with data-parallax gets a transform derived from its distance to the viewport center. Positive drifts down, negative drifts up.
An IntersectionObserver adds one class. CSS handles the easing, and a per-element --i staggers the group without a timeline library.
The frame, traffic lights and URL are fixed furniture. A section observer rewrites the URL as you pass through, so the chrome narrates the journey.
Pointer position becomes a few degrees of rotateX/rotateY. Subtle on purpose — enough to feel alive, never enough to read badly.
prefers-reduced-motion disables parallax, pinning and smooth easing. The content still lands, just without the theatrics.
Everything below is one CSS file and one JS file, shared by all the sites in this vault.
Fixed chrome, live URL, scroll percentage and a glowing rail.
Data-attribute driven, transform-only, culled off-screen.
Sticky viewport plus translate. Falls back to swipe on mobile.
Observer + CSS easing, with optional count-up numbers.
One radial gradient follows the pointer via two CSS vars.
Custom cubic easing that respects the window frame offset.
“The best scroll effect is the one you feel before you notice.”— nobody, but it sounds right