The Vibeary — round-up

Best scroll animation and scrollytelling tools

Scroll is the only interaction every visitor performs, which is why scroll-driven animation carries so much weight on a landing page — and why it goes wrong so often. The tools here cover both ends: low-level scroll-linked animation and pinning for interface work, and full scrollytelling frameworks for narrative and data-led pieces where content advances as the reader moves. Also included are the modern CSS scroll-driven animation references, which now replace a surprising amount of JavaScript.

What earned a place

  • Smooth without hijacking native scrolling
  • Degrades sensibly under prefers-reduced-motion
  • Does not fight the browser's own scroll-driven animation features
  • Works on touch as well as it does on a trackpad

21 picks from the library

  1. 01

    ai2html

    Adobe Illustrator script that exports artboards as responsive HTML text over a background image, per breakpoint.

    Why it made the list: How NYT ships hand-designed charts with selectable, translatable text

    Scrollytellingopen-sourceArchie Tse / NYT Graphics (@nytgraphics)github.com

    ai2html preview
  2. 02

    animere

    Scroll-triggered animation runner that drives Animate.css classes via IntersectionObserver with no configuration.

    Why it made the list: Declarative data-attribute API; add one script and reveal-on-scroll just works

    Scroll effectsMITJohann Schopplich (@johannschopplich)github.com

    animere preview
  3. 03

    basement scrollytelling

    React and GSAP library for declarative scroll-driven animation timelines with waypoints and parallel tweens.

    Why it made the list: Studio-grade scroll choreography exposed as declarative React components

    ScrollytellingMITbasement.studio (@basementstudio)github.com

    basement scrollytelling preview
  4. 04

    Closeread

    Quarto extension adding scrollytelling to reproducible documents so prose scroll steps drive plots and maps.

    Why it made the list: Scrollytelling from an .qmd file — no build pipeline, no JS to write

    ScrollytellingMITQuarto Lab (@qmd-lab)github.com

    Closeread preview
  5. 05

    Lax.js

    Vanilla scroll-animation plugin driving CSS transforms and filters from scroll position via a declarative preset syntax.

    Why it made the list: Dependency-free parallax with a preset language; far lighter than ScrollTrigger.

    Scroll animationMITAlex Fox (@alexfoxy)github.com

    Lax.js preview
  6. 06

    Lenis

    Smooth-scroll runtime that virtualizes wheel input while keeping native scrollbars, anchors and accessibility behaviour intact.

    Why it made the list: The award-site default that replaced Locomotive; tiny and framework-agnostic.

    Scroll animationMITdarkroom.engineering (@darkroomengineering)lenis.dev

    Lenis preview
  7. 07

    Loconative Scroll

    Locomotive Scroll's API reimplemented on native scrolling plus Lenis, keeping the data-attribute syntax without the fake scroll container.

    Why it made the list: Migration path off Locomotive that keeps your markup and fixes the a11y problems.

    Scroll animationMITQuentin Hocdé (@quentinhocde)github.com

    Loconative Scroll preview
  8. 08

    Motus

    Scroll animation library that mimics CSS keyframe syntax, letting you define percentage-based frames tied to scroll progress.

    Why it made the list: Keyframe mental model applied to scroll — reads far clearer than tween chains.

    Scroll animationMITAlexandru Cambose (@alexcambose)github.com

    Motus preview
  9. 09

    Mural

    Self-hosted tool for building visual scrolling stories with video, audio and image backgrounds, no code required.

    Why it made the list: Shorthand-style scrolling stories you fully own, without the subscription

    Scrollytellingopen-sourceGetMural (@GetMural)github.com

    Mural preview
  10. 10

    react-kino

    Scroll-driven cinematic storytelling primitives for React under one kilobyte gzipped, built on native scroll timelines.

    Why it made the list: Uses native scroll-timeline instead of scroll listeners, so it is basically free

    Scroll effectsMITBilal Tahir (@btahir)github.com

    react-kino preview
  11. 11

    react-scroll-parallax

    React hooks and components for scroll-linked parallax on elements, banners and backgrounds with easing and rotation.

    Why it made the list: Controller-based so dozens of parallax elements share one scroll listener

    Scroll effectsMITJ Scott Smith (@jscottsmith)github.com

    react-scroll-parallax preview
  12. 12

    Sal

    Performance-focused scroll reveal library using IntersectionObserver and CSS classes, weighing under 3KB with no dependencies.

    Why it made the list: AOS replacement that is a tenth the size and does not poll scroll events.

    Scroll animationMITMirek Ciastek (@mciastek)github.com

    Sal preview
  13. 13

    Scroll-Driven Animations

    Reference site of live demos, tools and recipes for CSS scroll() and view() timelines, including a progress-bar and stacking-cards cookbook.

    Why it made the list: The definitive resource for killing your scroll-animation JS dependency entirely.

    Scroll animationfreeBramus Van Damme (@bramus)scroll-driven-animations.style

    Scroll-Driven Animations preview
  14. 14

    Scroll-Driven Animations Debugger

    DevTools extension that lists scroll and view timelines on a page and visualizes their ranges and current progress.

    Why it made the list: Only tool that makes native scroll timelines inspectable instead of guesswork.

    Scroll animationMITBramus Van Damme (@bramus)github.com

    Scroll-Driven Animations Debugger preview
  15. 15

    Scrollama

    IntersectionObserver-based scrollytelling library that fires step callbacks and progress values without listening to scroll events.

    Why it made the list: The newsroom standard from The Pudding; battle-tested on huge editorial pieces.

    ScrollytellingMITRussell Samora (@russellsamora)github.com

    Scrollama preview
  16. 16

    scroller (rdmurphy)

    Sub-1KB scrollytelling library exposing enter/exit events for steps with no dependencies or framework assumptions.

    Why it made the list: Under a kilobyte for the whole scrollytelling contract

    ScrollytellingMITRyan Murphy (@rdmurphy)github.com

    scroller (rdmurphy) preview
  17. 17

    ScrollMagic

    Scroll interaction framework for pinning elements, scrubbing tweens and triggering callbacks against scroll position, with a visual debug indicator mode.

    Why it made the list: Free ScrollTrigger predecessor; the built-in visual scene indicators are still unmatched.

    Scroll animationMITJan Paepke (@janpaepke)github.com

    ScrollMagic preview
  18. 18

    ScrollReveal

    Library that reveals elements as they enter the viewport, with per-element distance, rotation, scale, interval and sequencing config.

    Why it made the list: The reveal library that predates AOS and still has the richest sequencing options.

    Scroll animationGPLFisssion (@scrollreveal)github.com

    ScrollReveal preview
  19. 19

    ScrollyVideo.js

    Component that scrubs a video frame-accurately against scroll position across React, Vue, Svelte and vanilla, handling decode differences per browser.

    Why it made the list: Frame-accurate scroll-scrubbed video is notoriously hard; this handles the codec edge cases.

    ScrollytellingMITDaniel Kao (@dkaoster)scrollyvideo.js.org

    ScrollyVideo.js preview
  20. 20

    simpleParallax.js

    Applies parallax to images by transforming and scaling them within their container, avoiding layout shift.

    Why it made the list: Image-only parallax that never breaks layout, unlike background-attachment hacks

    Scroll effectsMITGeoffrey Signorato (@geosigno)github.com

    simpleParallax.js preview
  21. 21

    tw-fade

    Tailwind v4 plugin adding scroll-edge fade masking to overflow containers with zero JavaScript.

    Why it made the list: Solves the ugly hard-cut scroll edge that every carousel and list has

    Scroll effectsMIT(@petekp)github.com

    tw-fade preview

Questions

Is smooth-scroll hijacking bad for accessibility?
It can be. Keep native scroll speed, avoid trapping the user, and provide a reduced-motion path that simply shows the content.
Can CSS handle scroll animation now?
For many effects, yes — scroll-timeline and view-timeline cover reveals and progress indicators without JavaScript.
All round-upsSearch all gemsNewest additions