GSAP
GSAP motion that feels premium and stays fast.
Key takeaways3 min read
- Animate transforms and opacity; avoid animating layout properties.
- Use a small, shared set of eases and durations so motion feels like one system.
- Scroll-linked scenes should explain something, not just decorate.
- Every animation needs a reduced-motion version and proper cleanup.
01What makes motion feel premium
Premium motion is mostly restraint. It has a clear purpose — guiding attention, explaining a relationship, confirming an action — and it gets out of the way quickly.
- Fast in, gentle settle: strong ease-outs (such as expo.out or power3.out) feel responsive and calm.
- Short durations for interface feedback (roughly 0.2–0.4s), longer for large entrances (around 0.8–1.4s).
- Small distances: content rising 20–40px reads as polished; content flying across the screen reads as busy.
- Stagger groups so the eye can follow, but keep the total sequence short.
02Turn motion into a system
Define your eases, durations and distances once and reuse them everywhere, the same way you treat colour and type. When every section uses the same vocabulary, the site feels designed as a whole.
// motion tokens
export const ease = { out: "expo.out", inOut: "power2.inOut" };
export const dur = { quick: 0.3, base: 0.9, slow: 1.4 };
export const rise = 32; // px for entrance revealsData attributes are a useful pattern on top of tokens: mark an element with data-reveal="fade-up" and let one shared script handle it. Pages then get consistent motion without per-page animation code.
03Performance rules
Browsers can animate transform and opacity cheaply. Animating width, height, top, left or margins forces layout work on every frame and is the most common cause of janky motion.
- Animate x, y, scale, rotate and opacity — or autoAlpha, which also toggles visibility.
- Use will-change sparingly, and only on elements that are about to animate.
- Defer heavy media and start video only when it is in view.
- Test on a mid-range phone, not only on a fast laptop.
- Load only the GSAP plugins each page actually uses.
04Scroll-driven scenes that earn their place
ScrollTrigger makes it easy to pin sections and scrub timelines with the scrollbar. Used well, it tells a story in chapters; used everywhere, it makes a page feel like a trap.
- 01Give each pinned scene one idea to explain.
- 02Keep pinned distances modest so readers never feel stuck.
- 03Add a little smoothing to scrubbing (for example scrub: 0.6–1) so motion feels fluid rather than mechanical.
- 04Make sure the content still makes sense if the reader scrolls fast or jumps with the keyboard.
- 05Recalculate on resize, and check every scene at narrow widths.
05GSAP in React and Next.js
In React, animations must be created after the elements exist and cleaned up when components unmount or routes change — otherwise you get duplicated tweens and stray ScrollTriggers. The official useGSAP hook from @gsap/react handles this by scoping selectors to a container and reverting everything it created on cleanup.
gsap.matchMedia() is the other essential tool. Wrap animations in media queries so they only run where they should — and are reverted automatically when the condition stops matching.
06Reduced motion is not optional
Some people experience discomfort or nausea from movement on screen and ask their operating system to reduce motion. Respect that setting by checking prefers-reduced-motion and serving a calm version: content visible immediately, no parallax, no scrubbed scenes, and simple fades at most.
Related reading
- ServiceAI Web DesignStrategy, design, Claude Code development and GSAP motion, delivered under your brand.
- ResourceDirecting Claude Code on real client buildsPractical workflows for using Claude Code on agency website projects: project setup, CLAUDE.md, small reviewed loops, design fidelity, safety and handover.
- For agenciesFor web design agenciesExtra design, development and GSAP motion capacity under your brand. AI-native, GEO-ready websites built with Claude Code and reviewed by senior developers.
Next · Agency sales
How to sell GEO and AI websites to your existing clients
Read the guide
Put it into practice
Ready to put this into practice?
If you’d rather we did the work for your clients, under your brand, tell us what you need.