Head to head
Stop guessing which one. Put them side by side.
Up to 4 tools, same rows for each: what it is, what it really costs, the trap, and how to wire it up. The URL carries your picks — send it to anyone.
LenisGSAP + ScrollTriggerMotion (was Framer Motion)
Quick read
- Editor's picks: GSAP + ScrollTrigger, Motion (was Framer Motion).
| Field | Lenislenis.dev | GSAP + ScrollTriggergsap.com | Motion (was Framer Motion)motion.dev |
|---|---|---|---|
| What it is | From Darkroom Engineering. Intercepts wheel and touch input and lerps scroll position for the weighted, inertial feel of award sites — something CSS scroll-behavior cannot do. 5.3 kB gz core, 1.6 kB for the React binding. | Framework-agnostic animation engine whose differentiator is the timeline model: sequence, offset, nest, reverse and scrub complex choreography with precise control. ScrollTrigger handles scroll-driven and pinned animation; SplitText does per-character reveals. | Renamed from Framer Motion and spun out as an independent MIT project at motion.dev. Declarative animation via props, AnimatePresence for exits, layout/layoutId for shared-element transitions, variants for staggering, useScroll for scroll-linked values. |
| Category | Animation & motion | Animation & motion | Animation & motion |
| Cost tier | free | free | free |
| Pricing | Free · MIT | Free — all plugins, since 2025 | Free MIT · Motion+ €299 once |
| Why builders pick it | My one 'do not use this' on your project. Hijacked scroll fights readers on long text, breaks trackpad muscle memory and scroll-anchoring, and is a real accessibility problem. Long-form reading is your entire product. If you ship it anyway, gate it behind prefers-reduced-motion. | This is the scrolled-feature-article tool. Pinned photo sequences, a headline that assembles as you scroll, a timeline piece that scrubs — that is ScrollTrigger, and nothing else comes close. Webflow acquired GreenSock and made every formerly-paid plugin free in 2025. Core + ScrollTrigger + SplitText is ~49 kB gz. | Page and route transitions between article and index, staggered card reveals on the issue grid, image-to-lightbox shared-element morphs. Composes cleanly with Tailwind and shadcn. Use LazyMotion + the m component to land near 18 kB instead of 38 kB. |
| Watch out for | Adds a frame of latency and can interfere with browser lazy-loading heuristics. Wiring it to GSAP requires driving Lenis from GSAP's ticker or pinned sections jitter. | Free but not OSI open source — a custom Webflow-owned licence that bars using GSAP inside competing no-code animation builders. Building scroll-driven features with it is squarely permitted. Release cadence has slowed to 2–3/year under Webflow. | Do not build long scroll narratives with useScroll — once you need pinning and scrubbing you are rebuilding ScrollTrigger badly. Do not wrap hundreds of list items in motion.div. |
| How to wire it up | npm install lenis | npm install gsap @gsap/react | npm install motion |
| Editor's pick | No | Yes | Yes |
Which one did you ship?
The grid says what these tools are. This says what builders did about it — one decision per person, changeable whenever you change your mind.
0/280Sign in to add yours.
Or try
Hand this to your Lovable agent
# Tool comparison — Lenis vs GSAP + ScrollTrigger vs Motion (was Framer Motion) Source: Kbaise, a directory of tools that work with Lovable projects. Pick one and tell me why before writing any integration code. ## Lenis (lenis) - URL: https://lenis.dev/ - Category: Animation & motion - Cost: free — Free · MIT - What it is: From Darkroom Engineering. Intercepts wheel and touch input and lerps scroll position for the weighted, inertial feel of award sites — something CSS scroll-behavior cannot do. 5.3 kB gz core, 1.6 kB for the React binding. - Why builders pick it: My one 'do not use this' on your project. Hijacked scroll fights readers on long text, breaks trackpad muscle memory and scroll-anchoring, and is a real accessibility problem. Long-form reading is your entire product. If you ship it anyway, gate it behind prefers-reduced-motion. - Trap: Adds a frame of latency and can interfere with browser lazy-loading heuristics. Wiring it to GSAP requires driving Lenis from GSAP's ticker or pinned sections jitter. - Wiring: npm install lenis - Full dossier: /api/public/tools/lenis ## GSAP + ScrollTrigger (gsap-scrolltrigger) - URL: https://gsap.com/docs/v3/ - Category: Animation & motion - Cost: free — Free — all plugins, since 2025 - What it is: Framework-agnostic animation engine whose differentiator is the timeline model: sequence, offset, nest, reverse and scrub complex choreography with precise control. ScrollTrigger handles scroll-driven and pinned animation; SplitText does per-character reveals. - Why builders pick it: This is the scrolled-feature-article tool. Pinned photo sequences, a headline that assembles as you scroll, a timeline piece that scrubs — that is ScrollTrigger, and nothing else comes close. Webflow acquired GreenSock and made every formerly-paid plugin free in 2025. Core + ScrollTrigger + SplitText is ~49 kB gz. - Trap: Free but not OSI open source — a custom Webflow-owned licence that bars using GSAP inside competing no-code animation builders. Building scroll-driven features with it is squarely permitted. Release cadence has slowed to 2–3/year under Webflow. - Wiring: npm install gsap @gsap/react - Full dossier: /api/public/tools/gsap-scrolltrigger ## Motion (was Framer Motion) (motion) - URL: https://motion.dev/docs/react - Category: Animation & motion - Cost: free — Free MIT · Motion+ €299 once - What it is: Renamed from Framer Motion and spun out as an independent MIT project at motion.dev. Declarative animation via props, AnimatePresence for exits, layout/layoutId for shared-element transitions, variants for staggering, useScroll for scroll-linked values. - Why builders pick it: Page and route transitions between article and index, staggered card reveals on the issue grid, image-to-lightbox shared-element morphs. Composes cleanly with Tailwind and shadcn. Use LazyMotion + the m component to land near 18 kB instead of 38 kB. - Trap: Do not build long scroll narratives with useScroll — once you need pinning and scrubbing you are rebuilding ScrollTrigger badly. Do not wrap hundreds of list items in motion.div. - Wiring: npm install motion - Full dossier: /api/public/tools/motion ## Quick read - Editor's picks: GSAP + ScrollTrigger, Motion (was Framer Motion). ## Rules 1. Prefer the free tier when no budget was stated, and say what the ceiling is. 2. Read the full dossier before integrating. 3. Fetch /api/public/models before writing any AI model ID.
Agents can fetch the same thing: GET /api/public/compare?slugs=lenis,gsap-scrolltrigger,motion