Opens in a new tab

Guide

Which scroll animation library should you use? GSAP ScrollTrigger, AOS, ScrollMagic and Motion compared, plus a no-code option for WordPress

Scroll animation libraries compared by weight, features and effort: GSAP ScrollTrigger, AOS, ScrollMagic, Motion — and when you do not need one at all.

John Diaz · Updated October 2026 ·

On this page

Before comparing them, the question worth asking is whether you need one. A library earns its weight when you are choreographing a scene in code. For a handful of reveals and one sticky section, it is a lot of machinery for a small job.

What a scroll animation library actually does, and when you need one at all

Three things: it watches the scroll, it maps that position onto values, and it gives you a timeline to sequence those values. If your page only needs the first two, CSS and a few lines of JavaScript cover it. The timeline is what you are really paying for.

GSAP ScrollTrigger: the most capable, and the most to learn and load

The reference. Scrub, pin, snap, nested timelines, easing curves you can design — if you can describe the scene, ScrollTrigger can build it. The cost is weight and a real learning curve: measured for the comparison on the features page, GSAP with ScrollTrigger is 46 KB gzipped of JavaScript before your own code. Price is not the trade-off: since v3.13 in 2025, after Webflow acquired it, GSAP and all its plugins — ScrollTrigger included — are free for commercial use. What you weigh is the kilobytes and the learning curve.

AOS (Animate On Scroll): reveals with data attributes, and where it stops

AOS is the opposite trade: almost nothing to learn — a data-aos attribute per element — and a narrow job. It does reveals when an element appears. It does not follow the scroll, it does not pin, and it hides your content until its script runs.

ScrollMagic: the classic scene controller, mostly legacy today

For years this was how you built scroll scenes. It still works, but it leans on other libraries for the animation itself and its moment has passed; new projects rarely start here.

Motion and the Web Animations API: modern, framework-friendly, code-first

Motion is small and modern, built on the browser’s own animation APIs, and it has a first-class scroll() for scroll-driven work, so it is not a library you have to bend into the job. It is code-first, though: you write JavaScript per element rather than configuring.

fullPage.js and Scroll-It: section-snapping tools, not animation libraries

Worth separating out, because they come up in the same searches: these move the viewport section by section. That is navigation, not animation, and you can get most of it today with CSS scroll-snap.

Smooth scroll is a separate decision from any of these: smooth scroll in JavaScript compares Lenis, Locomotive and ScrollSmoother.

Comparison table: weight, scroll-driven vs scroll-triggered, sticky support, learning curve

OptionScroll-driven?Pins a scene?Effort
GSAP + ScrollTriggerYesYesHigh — a timeline API to learn
AOSNo — reveals onlyNoVery low, and unmaintained since 2020
ScrollMagicYesYesMedium, and dated
MotionYes — its own scroll()By handMedium — code per element
Fancy AnimationsYesWith CSS stickyNone — panel settings

The no-code option for WordPress: Fancy Animations in Bricks, Etch and Gutenberg

Do it without code

The same effects, as settings on the element

Reveals, scroll-driven motion, sticky card stacks and video scrub are controls in the Bricks panel, driven by two small scripts, about 10 KB gzipped together, plus the CSS for the animations the page actually uses — 8 KB on a page like this one. No library, no timeline API, and the same panel in Etch and the block editor.

~18 KB on a page like this vs 46 KB of JS

Stacked cards template
Stacked cards — a pinned scene with scrubbed progress, built without a timeline API Open the template

How to choose: a decision guide by project type and team

If you…Pick
Write JavaScript and need a choreographed sceneGSAP ScrollTrigger
Build in a component frameworkMotion / WAAPI
Only want fade-ins and have no build stepAOS, or ten lines of your own
Build client sites in Bricks, Etch or GutenbergA class-based plugin, no library

Go further: scroll animations for Bricks, Etch and Gutenberg

The scroll animations guide explains what any of these libraries is doing underneath, and animate on scroll with CSS is the version with no library at all.

Which scroll animation library is the best?

It depends on who writes the code. GSAP ScrollTrigger covers everything for developers, AOS covers simple reveals, Motion fits component frameworks. For a WordPress site built in Bricks, a class-based plugin covers most needs without a library.

Is GSAP free to use?

Yes. Since version 3.13 (2025, after the Webflow acquisition) GSAP and all its plugins, ScrollTrigger included, are free for commercial use. The comparison here is about weight and effort, not price.

Is AOS still a good choice?

For a handful of fade-ins it still works, but it hides content until it runs, and it does not do scroll-driven movement or sticky scenes.

Do I need a scroll animation library for a WordPress site?

Usually not. Reveals, sticky scenes, stacked cards and video scrub can run in CSS with a small script; Fancy Animations does exactly that from the Bricks panel or a class name.

What is the difference between scroll-triggered and scroll-driven animation?

Scroll-triggered fires once when an element enters the viewport (AOS style); scroll-driven ties progress to the scroll position, so scrolling back rewinds it. The table marks which options do each.

Can I use GSAP inside Bricks Builder?

Yes, by adding the library and writing the code yourself or through an add-on. The point of this guide is to help you decide whether you need that or whether settings are enough.

Add Bricks Builder animations to your next site

From $179, one payment, every update for life. 14-day refund.