gsap-performance

Optimizes GSAP animations for smooth 60fps rendering using transforms, batching, and will-change.

2|Updated Jul 25, 2026
One-click install
npx skills add https://github.com/ankaboot-source/boucle --skill gsap-performance-ankaboot-source
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: gsap-performance
Source: https://github.com/ankaboot-source/boucle/tree/main/.jcode/skills/gsap-performance
Command: npx skills add https://github.com/ankaboot-source/boucle --skill gsap-performance-ankaboot-source

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 for keeping animations on the compositor thread at a smooth 60fps. ## Core Features & Use Cases - Compositor-friendly properties: Guides you to animate transform and opacity (x, y, scale, rotation) instead of layout-triggering properties like width, height, top, and left. - Efficient update patterns: Recommends gsap.quickTo() for frequently updated values like mouse followers, stagger for lists, and proper will-change usage. - ScrollTrigger tuning: Covers pin promotion, scrub values, and debounced ScrollTrigger.refresh() calls to reduce scroll-time work. - Use Case: A page with a mouse-follower cursor and a long animated list stutters on low-end devices. Apply this Skill to switch to quickTo(), replace manual delays with stagger, and clean up off-screen tweens. ## Quick Start Review my GSAP animation code and optimize it for smooth 60fps performance on low-end devices.

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 and opacity properties (x, y, scale, rotation) instead of layout-heavy ones like width, height, top, or left. Add will-change: transform in CSS only on elements that actually animate, and avoid creating hundreds of simultaneous tweens.

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, which reduces overhead and keeps the animation smooth.

Why does animating width or height cause jank in GSAP?

Width, height, top, left, margin, and padding trigger layout recalculation and paint on every frame, which is expensive. Transforms and opacity stay on the compositor thread, so use x, y, and scale to achieve the same visual effect.

Should I set will-change on every animated element?

No. Apply will-change only to elements that are actually animating, since each promoted layer consumes memory. Setting it everywhere 'just in case' can hurt performance rather than help it.

How do I optimize ScrollTrigger performance in GSAP?

Pin only the elements that need it, use a small scrub value like scrub: 1 to reduce scroll-time work, and call ScrollTrigger.refresh() only when layout actually changes, debounced rather than on every resize.