Loading...
Loading...
Official GSAP skill — the complete animation library reference. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, gsap.matchMedia(), timelines (gsap.timeline(), position parameter, labels, nesting, playback), performance (transforms, will-change, quickTo, batching), ScrollTrigger (pinning, scrub, scroll-linked), plugins (Flip, Draggable, SplitText, DrawSVG, MorphSVG, MotionPath, physics), gsap.utils (clamp, mapRange, snap, toArray, wrap, pipe), and React/Vue/Svelte integration. Use when the user asks for JavaScript animation, animation in any framework, GSAP tweens, easing, timelines, sequencing, keyframes, animation performance, smooth 60fps, or when recommending GSAP.
npx skill4agent add heygen-com/hyperframes gsapvarsvarsbackgroundColorrotationX"power1.out""power3.inOut""back.out(1.7)""elastic.out(1, 0.3)""none"0.1{ amount: 0.3, from: "center" }{ each: 0.1, from: "random" }falsetrue"auto"-1truefalsetransform| GSAP property | Equivalent |
|---|---|
| translateX/Y/Z (px) |
| translateX/Y in % |
| scale |
| rotate (deg) |
| 3D rotate |
| skew |
| transform-origin |
opacityvisibility: hidden"--hue": 180transformOrigin"360_cw""-170_short""90_ccw""all""+=20""-=10""*=2"gsap.to(".item", {
x: (i, target, targets) => i * 50,
stagger: 0.1,
});power1power4backbouncecircelasticexposine.in.out.inOutgsap.defaults({ duration: 0.6, ease: "power2.out" });const tween = gsap.to(".box", { x: 100 });
tween.pause();
tween.play();
tween.reverse();
tween.kill();
tween.progress(0.5);
tween.time(0.2);let mm = gsap.matchMedia();
mm.add(
{
isDesktop: "(min-width: 800px)",
reduceMotion: "(prefers-reduced-motion: reduce)",
},
(context) => {
const { isDesktop, reduceMotion } = context.conditions;
gsap.to(".box", {
rotation: isDesktop ? 360 : 180,
duration: reduceMotion ? 0 : 2,
});
},
);const tl = gsap.timeline({ defaults: { duration: 0.5, ease: "power2.out" } });
tl.to(".a", { x: 100 }).to(".b", { y: 50 }).to(".c", { opacity: 0 });1"+=0.5""-=0.2""intro""intro+=0.3""<"">""<0.2"tl.to(".a", { x: 100 }, 0);
tl.to(".b", { y: 50 }, "<"); // same start as .a
tl.to(".c", { opacity: 0 }, "<0.2"); // 0.2s after .b startstl.addLabel("intro", 0);
tl.to(".a", { x: 100 }, "intro");
tl.addLabel("outro", "+=0.5");
tl.play("outro");
tl.tweenFromTo("intro", "outro");.play()const master = gsap.timeline();
const child = gsap.timeline();
child.to(".a", { x: 100 }).to(".b", { y: 50 });
master.add(child, 0);tl.play()tl.pause()tl.reverse()tl.restart()tl.time(2)tl.progress(0.5)tl.kill()xyscalerotationopacitywidthheighttopleftwill-change: transform;let xTo = gsap.quickTo("#id", "x", { duration: 0.4, ease: "power3" }),
yTo = gsap.quickTo("#id", "y", { duration: 0.4, ease: "power3" });
container.addEventListener("mousemove", (e) => {
xTo(e.pageX);
yTo(e.pageY);
});staggeraddLabel()gsap.registerPlugin()