Communitygithub.com

GSAP / Référence d'animations pour HyperFrames

Référence GSAP pour HyperFrames : gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), paramètre de position, labels, imbrication, contrôle de lecture) et performances (transforms, will-change, quickTo). À utiliser lors de l'écriture d'animations GSAP dans des compositions HyperFrames.

Qu'est-ce que Référence d'animations pour HyperFrames ?

Cette compétence fournit une référence complète et localisée sur GSAP (GreenSock Animation Platform), spécifiquement conçue pour être utilisée avec HyperFrames. Elle couvre les méthodes de tweening fondamentales comme `gsap.to()`, `from()` et `fromTo()`, ainsi que les propriétés courantes (durée, delay, easing, stagger). La compétence détaille les alias de transformation GSAP (x, y, scale, rotation…) et les bonnes pratiques CSS pour des animations performantes (autoAlpha, variables CSS, rotation directionnelle). Elle aborde également la création et la gestion de timelines : paramètre de position avancé, labels, imbrication et contrôle de lecture (play, pause, reverse, kill). Pour les performances, la compétence recommande l'utilisation de `will-change`, de `gsap.quickTo()` pour les animations fréquentes (souris), et du stagger plutôt que de multiples tweens manuelles. Enfin, elle énonce des règles à ne pas enfreindre (ne pas animer les propriétés de layout, ne pas utiliser svgOrigin avec transformOrigin, etc.) et renvoie vers des effets prêts à l'emploi dans `references/effects.md`.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Geruyang/agent-skills-library/tree/HEAD/original-skills/x-openai-gsap-646176d

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

GSAP

Méthodes principales de tweening

  • gsap.to(targets, vars) — anime de l'état actuel vers vars. La plus courante.
  • gsap.from(targets, vars) — anime de vars vers l'état actuel (entrées).
  • gsap.fromTo(targets, fromVars, toVars) — début et fin explicites.
  • gsap.set(targets, vars) — applique immédiatement (durée 0).

Utilisez toujours les noms de propriétés en camelCase (ex. backgroundColor, rotationX).

Propriétés courantes (vars)

  • duration — secondes (par défaut 0.5).
  • delay — secondes avant le démarrage.
  • ease — "power1.out" (par défaut), "power3.inOut", "back.out(1.7)", "elastic.out(1, 0.3)", "none".
  • stagger — nombre 0.1 ou objet : { amount: 0.3, from: "center" }, { each: 0.1, from: "random" }.
  • overwrite — false (par défaut), true ou "auto".
  • repeat — nombre ou -1 pour infini. yoyo — alterne la direction avec la répétition.
  • onComplete, onStart, onUpdate — callbacks.
  • immediateRender — par défaut true pour from()/fromTo(). Mettre à false pour les tweens ultérieures ciblant la même propriété+élément pour éviter l'écrasement.

Transformations et CSS

Privilégiez les alias de transformation de GSAP plutôt que la chaîne transform brute :

Propriété GSAPÉquivalent
x, y, ztranslateX/Y/Z (px)
xPercent, yPercenttranslateX/Y en %
scale, scaleX, scaleYscale
rotationrotate (deg)
rotationX, rotationYrotation 3D
skewX, skewYskew
transformOrigintransform-origin
  • autoAlpha — préférez-le à opacity. À 0 : définit également visibility: hidden.
  • Variables CSS — "--hue": 180.
  • svgOrigin (SVG uniquement) — origine dans l'espace de coordonnées global du SVG. Ne pas combiner avec transformOrigin.
  • Rotation directionnelle — "360_cw", "-170_short", "90_ccw".
  • clearProps — "all" ou valeurs séparées par des virgules ; supprime les styles en ligne à la fin.
  • Valeurs relatives — "+=20", "-=10", "*=2".

Valeurs basées sur une fonction

gsap.to(".item", {
  x: (i, target, targets) => i * 50,
  stagger: 0.1,
});

Easing (fonctions d'accélération)

Easing intégrés : power1–power4, back, bounce, circ, elastic, expo, sine. Chacun a .in, .out, .inOut.

Valeurs par défaut

gsap.defaults({ duration: 0.6, ease: "power2.out" });

Contrôle des tweens

const tween = gsap.to(".box", { x: 100 });
tween.pause();
tween.play();
tween.reverse();
tween.kill();
tween.progress(0.5);
tween.time(0.2);

gsap.matchMedia() (Responsive + Accessibilité)

Exécute une configuration uniquement lorsqu'une requête média correspond ; s'annule automatiquement lorsqu'elle ne correspond plus.

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,
    });
  },
);

Timelines

Création d'une timeline

const tl = gsap.timeline({ defaults: { duration: 0.5, ease: "power2.out" } });
tl.to(".a", { x: 100 }).to(".b", { y: 50 }).to(".c", { opacity: 0 });

Paramètre de position

Le troisième argument contrôle le placement :

  • Absolue : 1 — à 1s
  • Relative : "+=0.5" — après la fin ; "-=0.2" — avant la fin
  • Label : "intro", "intro+=0.3"
  • Alignement : "<" — même début que le précédent ; ">" — après la fin du précédent ; "<0.2" — 0.2s après le début du précédent
tl.to(".a", { x: 100 }, 0);
tl.to(".b", { y: 50 }, "<"); // même début que .a
tl.to(".c", { opacity: 0 }, "<0.2"); // 0.2s après le début de .b

Labels

tl.addLabel("intro", 0);
tl.to(".a", { x: 100 }, "intro");
tl.addLabel("outro", "+=0.5");
tl.play("outro");
tl.tweenFromTo("intro", "outro");

Options de timeline

  • paused: true — crée en pause ; appelez .play() pour démarrer.
  • repeat, yoyo — s'appliquent à toute la timeline.
  • defaults — vars fusionnées dans chaque tween enfant.

Imbrication de timelines

const master = gsap.timeline();
const child = gsap.timeline();
child.to(".a", { x: 100 }).to(".b", { y: 50 });
master.add(child, 0);

Contrôle de lecture

tl.play(), tl.pause(), tl.reverse(), tl.restart(), tl.time(2), tl.progress(0.5), tl.kill().


Performances

Privilégiez les transformations et l'opacité

Animer x, y, scale, rotation, opacity reste sur le compositeur. Évitez width, height, top, left lorsque les transformations permettent le même effet.

will-change

will-change: transform;

Appliquez-le uniquement aux éléments qui sont effectivement animés.

gsap.quickTo() pour les mises à jour fréquentes

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);
});

Stagger plutôt que de nombreux tweens

Utilisez stagger au lieu de tweens séparés avec des deltas manuels.

Nettoyage

Mettez en pause ou tuez les animations hors écran.


Références (chargées à la demande)

  • references/effects.md — Effets prêts à l'emploi : texte machine à écrire, visualiseur audio. Lisez ce fichier lorsque vous avez besoin de motifs d'effets prêts à l'emploi pour HyperFrames.

Bonnes pratiques

  • Utilisez des noms de propriétés en camelCase ; préférez les alias de transformation et autoAlpha.
  • Préférez les timelines à l'enchaînement avec delay ; utilisez le paramètre de position.
  • Ajoutez des labels avec addLabel() pour un séquencement lisible.
  • Passez les valeurs par défaut dans le constructeur de la timeline.
  • Stockez la valeur de retour du tween/timeline lorsque vous contrôlez la lecture.

À ne pas faire

  • Animer les propriétés de mise en page (width/height/top/left) lorsque des transformations suffisent.
  • Utiliser à la fois svgOrigin et transformOrigin sur le même élément SVG.
  • Enchaîner des animations avec delay lorsqu'une timeline peut les séquencer.
  • Créer des tweens avant que le DOM n'existe.
  • Négliger le nettoyage — tuez toujours les tweens lorsqu'ils ne sont plus nécessaires.

Individual skills in this repo

This repo contains 12 individual skills — each has its own dedicated page.

Geruyang/agent-skills-library

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

Geruyang/agent-skills-library

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

Geruyang/agent-skills-library

Use for new frontend applications, dashboards, games, creative websites, hero sections, and visually driven UI from scratch, or when the user explicitly asks for a redesign/restyle/modernization. Builds from clean, airy, high-taste, readable image-generated concept design with section-specific references, faithful implementation, and browser testing.

Geruyang/agent-skills-library

Use when testing, debugging, or making targeted improvements to rendered frontend apps through the Build Web Apps or web dev plugin: local dev servers, UI regressions, interaction bugs, console errors, responsive layout, and visual QA. Check whether the Browser plugin is available and use it first when it is; otherwise use regular Playwright with the recorded reason.

Geruyang/agent-skills-library

Design UI surfaces for browser games. Use when the user asks for HUDs, menus, overlays, responsive layouts, or visual direction that must protect the playfield.

Geruyang/agent-skills-library

Guide for building, configuring, and deploying microfrontends on Vercel. Use this skill when the user mentions microfrontends, multi-zones, splitting an app across teams, independent deployments, cross-app routing, incremental migration, composing multiple frontends under one domain, microfrontends.json, @vercel/microfrontends, the microfrontends local proxy, or path-based routing between Vercel projects. Also use when the user asks about shared layouts across projects, navigation between microfrontends, fallback environments, asset prefixes, or feature flag controlled routing.

Geruyang/agent-skills-library

Next.js App Router expert guidance. Use when building, debugging, or architecting Next.js applications — routing, Server Components, Server Actions, Cache Components, layouts, middleware/proxy, data fetching, rendering strategies, and deployment on Vercel.

Geruyang/agent-skills-library

Use when sizing Public Equity Investing positions, finding equity hedges, or building an integrated position-and-hedge risk plan from a listed-equity thesis. Do not use for thesis construction, standalone event underwriting, trade execution, personal investment advice, or credit-instrument risk.

Geruyang/agent-skills-library

Integrate data visualizations into React and Next.js applications. Use when the user needs chart components, UML-like or architecture diagram components, React integration patterns, Next.js client or server boundaries, hydration-safe rendering, lazy loading, framework-aware performance, scroll-driven visual stories, or export guidance.

Geruyang/agent-skills-library

shadcn/ui expert guidance — CLI, component installation, composition patterns, custom registries, theming, Tailwind CSS integration, and high-quality interface design. Use when initializing shadcn, adding components, composing product UI, building custom registries, configuring themes, or troubleshooting component issues.

Geruyang/agent-skills-library

v0 by Vercel expert guidance. Use when discussing AI code generation, generating UI components from prompts, v0 CLI usage, v0 SDK/API integration, or integrating v0 into development workflows with GitHub and Vercel deployment.

Geruyang/agent-skills-library

Manages shadcn components and projects — adding, searching, fixing, debugging, styling, and composing UI. Provides project context, component docs, and usage examples. Applies when working with shadcn/ui, component registries, presets, --preset codes, or any project with a components.json file. Also triggers for "shadcn init", "create an app with --preset", or "switch to --preset".

Skills associés