gsap-performance

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

Updated Jul 16, 2026
One-click install
npx skills add https://github.com/X-manist/Cohmira --skill gsap-performance-x-manist
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gsap-performance
Source: https://github.com/X-manist/Cohmira/tree/main/src/builtin-plugins/openmontage/.agents/skills/gsap-performance
Command: npx skills add https://github.com/X-manist/Cohmira --skill gsap-performance-x-manist

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 too many simultaneous tweens. This Skill provides the official GSAP performance guidelines so your animations stay smooth at 60fps. ## 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 that a scroll-driven page animation stutters on low-end devices, apply this Skill to replace layout-property tweens with transforms, add will-change hints, and clean up off-screen animations. ## 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 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 animating 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 and y positions. It avoids creating a new tween on every mousemove event, reducing overhead for continuously updated animations.

Why does my GSAP animation cause layout thrashing?

Layout thrashing happens when you interleave DOM reads and writes or animate layout properties like width, height, top, left, margin, or padding. Batch all reads first, then writes, and use x and y transforms instead of positional properties.

Does ScrollTrigger affect animation performance?

Yes. pin: true promotes the pinned element, so pin only what is needed, and a small scrub value can reduce scroll work. Call ScrollTrigger.refresh() only when layout actually changes, debounced, rather than on every resize.

Should I set will-change or force3D on every element?

No. Applying will-change or force3D to every element wastes memory and can hurt performance. Use these hints only on elements that are actually animating, and remove or clean up animations when they go off-screen.