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
| Option | Scroll-driven? | Pins a scene? | Effort |
|---|---|---|---|
| GSAP + ScrollTrigger | Yes | Yes | High — a timeline API to learn |
| AOS | No — reveals only | No | Very low, and unmaintained since 2020 |
| ScrollMagic | Yes | Yes | Medium, and dated |
| Motion | Yes — its own scroll() | By hand | Medium — code per element |
| Fancy Animations | Yes | With CSS sticky | None — 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

How to choose: a decision guide by project type and team
| If you… | Pick |
|---|---|
| Write JavaScript and need a choreographed scene | GSAP ScrollTrigger |
| Build in a component framework | Motion / WAAPI |
| Only want fade-ins and have no build step | AOS, or ten lines of your own |
| Build client sites in Bricks, Etch or Gutenberg | A 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.
