gsap-performance

Optimizes GSAP animations for smooth 60fps rendering using transforms, batching, and quickTo.

Updated Sep 1, 2026
One-click install
npx skills add https://github.com/umairshahid622/perfumora --skill gsap-performance-umairshahid622
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: gsap-performance
Source: https://github.com/umairshahid622/perfumora/tree/main/perfumora/.agents/skills/gsap-performance
Command: npx skills add https://github.com/umairshahid622/perfumora --skill gsap-performance-umairshahid622

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? GSAP animations can cause jank, dropped frames, and layout thrashing when they animate layout-heavy properties or create excessive tweens. This Skill provides concrete rules and patterns to keep animations on the compositor thread and maintain smooth 60fps rendering. ## Core Features & Use Cases - Compositor-Friendly Properties: Guides you to animate transform and opacity instead of width, height, top, or left to avoid layout and paint costs. - Efficient Update Patterns: Recommends gsap.quickTo() for frequently updated properties like mouse followers, and stagger instead of many manual tweens. - ScrollTrigger Tuning: Covers pin promotion, scrub values, and debounced ScrollTrigger.refresh() calls to reduce scroll-related work. - Use Case: When a user reports a laggy scroll-driven page with dozens of animated cards, apply this Skill to convert left/top animations to x/y, batch updates, and kill off-screen tweens. ## Quick Start Review my GSAP animation code and optimize it for smooth 60fps performance.

Frequently Asked Questions about gsap-performance

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make GSAP animations run at 60fps?▼

Animate only transform properties (x, y, scale, rotation) and opacity, which stay on the compositor and avoid layout and paint. Add will-change: transform in CSS for elements that animate, and avoid width, height, top, and left.

What is gsap.quickTo() and when should I use it?▼

gsap.quickTo() creates a single reusable tween for a property that updates frequently, such as mouse-follower x/y positions. It avoids creating a new tween on every mousemove event, reducing overhead.

Should I use will-change on every animated element?▼

No. Apply will-change only to elements that actually animate, since it promotes elements to their own compositor layer and consumes memory. Setting it everywhere 'just in case' wastes resources.

Why does my GSAP scroll animation cause jank?▼

Jank often comes from animating layout properties, pinning too many elements, or calling ScrollTrigger.refresh() on every resize. Use scrub with a small value, pin only what is needed, and debounce refresh calls to fire only when layout actually changes.

How do I animate many elements efficiently with GSAP?▼

Use stagger instead of many separate tweens with manual delays, and reuse timelines rather than creating new ones each frame. For long lists, consider virtualization or animating only visible items to avoid hundreds of simultaneous tweens.