gsap-performance

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

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

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: Enforces animating 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 separate 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 animation or a janky mouse-follower effect, apply these rules to replace layout-triggering properties with x/y transforms and consolidate 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 only on elements that actually animate, and avoid width, height, top, or left.

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

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

Should I use stagger or separate tweens in GSAP?▼

Use stagger when many elements share the same animation; it is more efficient than creating many separate tweens with manual delays. For long lists, also consider virtualization or animating only visible items.

Why does my GSAP ScrollTrigger animation cause jank?▼

Jank often comes from pinning too many elements, calling ScrollTrigger.refresh() on every resize, or running too many simultaneous ScrollTriggers. Pin only what is needed, use a small scrub value, and debounce refresh calls to actual layout changes.

When should I avoid using will-change in CSS animations?▼

Avoid setting will-change or force3D on every element just in case, since excessive layer promotion wastes memory and can hurt performance. Apply it only to elements that are actually animating.