К основному содержанию
скилл CX Codex

gsap · athevon — скилл для Claude Code: что делает и как установить

Скилл помогает агенту писать анимации GSAP: таймлайны, каскадные эффекты и ScrollTrigger. Нужен для сложных движений и прокрутки.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add AThevon/genjutsu --skill gsap -a claude-code
Открыть на GitHub

Что делает gsap

Скилл описывает работу с GSAP: timeline, fromTo, распределённый stagger, закрепление блоков и анимации, связанные с прокруткой через ScrollTrigger. В нём также разобраны SplitText, Flip, MorphSVG, DrawSVG, MotionPath и Observer.

Для React скилл советует использовать useGSAP() из @gsap/react, а плагины регистрировать на верхнем уровне через gsap.registerPlugin(). Отдельно разобраны ошибки с containerAnimation, дочерними анимациями в таймлайне, setState в onUpdate, immediateRender и изменением свойств, вызывающих перерасчёт layout.

В React ручная очистка через useEffect здесь заменяется useGSAP(), поэтому это повод проверить структуру текущих компонентов. Для работы с примерами нужны gsap, а для React-сценариев ещё @gsap/react.

Какие задачи решает

  • собрать последовательность анимаций через timeline
  • связать движение элементов с прокруткой страницы
  • настроить каскадную анимацию элементов сетки
  • анимировать текст, SVG и переходы между состояниями
  • избежать ошибок ScrollTrigger и лишних перерисовок React

Примеры запросов агенту

  • Настрой анимацию карточек через gsap.fromTo и распределённый stagger.
  • Собери горизонтальную прокрутку с ScrollTrigger и containerAnimation.
  • Проверь этот React-компонент и замени ручную очистку на useGSAP().

Как установить gsap

1Через Skills CLI (Vercel)

npx skills add AThevon/genjutsu --skill gsap -a claude-code

2Вручную: положить файлы

~/.claude/skills/gsap/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/gsap/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора17

motion-principles Скилл задаёт правила интерфейсной анимации: безопасные свойства, тайминги, кривые разгона и режим reduced-motion для веба, SwiftUI и Jetpack Compose. CX Codex +1 1 100установок design-audit Проверяет код фронтенда на проблемы с анимацией, доступностью и дизайн-токенами. Находит визуальные штампы ИИ и ошибки вёрстки перед сдачей проекта. CX Codex +1 1 000установок threejs-r3f Скилл по Three.js и React Three Fiber: правила сцен, хуков, постобработки и производительности. Пригодится, когда агент пишет 3D на React. CX Codex +1 1 000установок css-native Скилл для ИИ-агента, который подсказывает, как делать анимации и визуальные эффекты на нативном CSS без библиотек. CX Codex +1 1 100установок canvas-generative Скилл для алгоритмической графики на Canvas 2D: частицы, flow fields, шум, фракталы и L-системы. Пригодится, когда нужна анимация или генеративная картинка в браузере. CX Codex +1 995установок framer-motion Подсказывает агенту правила работы с Framer Motion и Motion в React: анимации раскладки, жесты и хуки без лишних ререндеров. CX Codex +1 990установок desktop-principles Скилл с правилами десктопного UX: ховеры, точность указателя, горячие клавиши, несколько окон. Пригодится, когда интерфейс делают под macOS, Windows или Linux. CX Codex +1 982установок mobile-principles Набор правил для мобильного интерфейса: размеры тап-зон, отказ от hover, зоны большого пальца, safe area и жесты. Подключается, когда агент видит мобильную платформу. CX Codex +1 974установок

Другие версии gsap

Похожие

gsap-scrolltrigger greensock Обучает ИИ-агента писать анимации по скроллу с плагином ScrollTrigger от GreenSock: закреплять секции и связывать таймлайны с прокруткой через scrub. CX Codex +1 72 200установок gsap-plugins greensock Скилл объясняет, как подключать и использовать плагины GSAP: ScrollTo, Flip, Draggable, SplitText и другие. Пригодится, когда анимации в проекте уже на GSAP. CX Codex +1 67 200установок gsap-scrolltrigger-storytelling MengTo Скилл для скролл-сторителлинга: закреплённые секции, послойное появление интерфейса и переходы между сценами на GSAP ScrollTrigger. CX Codex +1 1 800установок gsap-web iart-ai Скилл помогает настраивать анимации на GSAP: от таймлайнов и ScrollTrigger до эффектов SplitText, Flip и плавной прокрутки с Lenis. CX Codex +1 2 500установок cinematic-gsap-lenis-motion-system MengTo Настраивает кинематографичную анимацию интерфейса на GSAP, ScrollTrigger и Lenis. Пригодится для премиальных сайтов, портфолио, плавного скролла и параллакса. CX Codex +1 2 400установок awwwards-animations DevMartinese Скилл для React-анимаций уровня Awwwards и FWA: скролл, кастомные курсоры, переходы страниц, генеративная графика. Пригодится, когда нужен плавный 60fps-скролл и сложные эффекты. CX Codex +1 2 900установок

Рядом в теме «Фронтенд и UI»

Всё по теме «Фронтенд и UI» →

Вопросы о gsap

Как установить gsap в Claude Code?

Выполните npx skills add AThevon/genjutsu --skill gsap -a claude-code, затем повторите npx skills add AThevon/genjutsu --skill gsap -a claude-code и проверьте файл ~/.claude/skills/gsap/SKILL.md.

Что делает скилл gsap?

Он помогает агенту работать с GSAP: строить таймлайны, распределять элементы, связывать анимации с прокруткой и применять плагины для текста и SVG.

Что нужно для использования gsap в React?

Для React-сценариев используется useGSAP() из пакета @gsap/react. Плагины GSAP нужно зарегистрировать через gsap.registerPlugin().

Исходный текст

SKILL.md · MIT
---
name: gsap
description: "GSAP animation engine sub-skill - core, timeline, ScrollTrigger, plugins."
metadata:
  internal: true
---

> **Version-sensitive.** Every API name, SDK gate and browser-support claim below was
> verified on **2026-09-08** against primary sources. What against, and when, is in
> `_jutsu/VERSIONS.md`. If that date is old, re-verify before acting on a version number.

# GSAP - Animation Engine

> GSAP 3.15 (released 13 Apr 2026). Since 3.13 the entire library - including every former Club plugin (SplitText, MorphSVG, DrawSVG, ScrollSmoother, InertiaPlugin, MotionPathHelper, CustomEase…) - ships in the public `gsap` npm package and is free, commercial use included, under the GreenSock Standard "no charge" license. There is no Club paywall.
> GreenSock also publish official agent skills (MIT, 8 skills: core, timeline, scrolltrigger, plugins, utils, react, performance, frameworks): https://github.com/greensock/gsap-skills - worth installing alongside this sub-skill.

## When to use GSAP

| Criteria              | CSS Transitions | Framer Motion | GSAP              |
| --------------------- | --------------- | ------------- | ----------------- |
| Hover / simple toggle | Yes             | Yes           | Overkill          |
| Sequenced timeline    | No              | Limited       | **Yes**           |
| Scroll-driven         | scroll-timeline | Limited       | **ScrollTrigger** |
| Complex stagger       | No              | Basic         | **Distribution**  |
| Mobile perf (60fps)   | Good            | Average       | **Excellent**     |
| Text splitting        | No              | No            | **SplitText**     |
| SVG morph / draw      | No              | No            | **MorphSVG**      |
| Bundle size concern   | 0kb             | ~30kb         | ~25kb + plugins   |

**Rule**: if the animation needs timeline, scroll-link, or distributed stagger, use GSAP. Otherwise CSS first.

## Setup

```js
// Always register plugins at the top level
import gsap from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";
import { SplitText } from "gsap/SplitText";

gsap.registerPlugin(ScrollTrigger, SplitText);
```

React: use `useGSAP()` from the `@gsap/react` package instead of `useEffect` + manual cleanup.

```jsx
import { useGSAP } from "@gsap/react";

useGSAP(() => {
  gsap.to(".box", { x: 200 });
}, { scope: containerRef }); // auto-cleanup, auto-revert
```

## Core Patterns

### defaults{} to avoid repetition

```js
const tl = gsap.timeline({
  defaults: { duration: 0.8, ease: "power2.out" },
});
tl.to(".a", { y: -20 })
  .to(".b", { y: -20 }, "<0.1")
  .to(".c", { y: -20 }, "<0.1");
```

### fromTo for full control

```js
gsap.fromTo(".card", { y: 40, opacity: 0 }, { y: 0, opacity: 1, stagger: 0.15 });
```

### Stagger with distribution

```js
gsap.to(".grid-item", {
  scale: 0,
  stagger: {
    each: 0.05,
    from: "center",   // "start" | "end" | "center" | "edges" | "random" | index
    grid: "auto",      // auto-detects the grid
    axis: "x",         // "x" | "y" | null (both)
  },
});
```

## ScrollTrigger Patterns

### Basic Pin + Scrub

```js
gsap.to(".panel", {
  x: "-300%",
  ease: "none",
  scrollTrigger: {
    trigger: ".container",
    pin: true,
    scrub: 1,
    end: () => "+=" + document.querySelector(".container").scrollWidth,
  },
});
```

### Batch for mass reveal

```js
ScrollTrigger.batch(".card", {
  onEnter: (elements) => gsap.to(elements, { opacity: 1, y: 0, stagger: 0.1 }),
  start: "top 85%",
});
```

### Horizontal scroll with containerAnimation

```js
const scrollTween = gsap.to(".panels", {
  x: () => -(document.querySelector(".panels").scrollWidth - window.innerWidth),
  ease: "none",
  scrollTrigger: { trigger: ".wrapper", pin: true, scrub: 1 },
});

// Animate elements INSIDE the horizontal scroll
gsap.to(".panel-content", {
  scale: 1.2,
  scrollTrigger: {
    trigger: ".panel-content",
    containerAnimation: scrollTween, // linked to horizontal scroll
    start: "left center",
    end: "right center",
    scrub: true,
  },
});
```

## DO NOT - Critical mistakes

### 1. Ease on containerAnimation

```js
// BAD - ease breaks the scroll mapping
scrollTrigger: { containerAnimation: scrollTween, scrub: 1, ease: "power2.out" }

// GOOD - always ease: "none" on the parent tween
const scrollTween = gsap.to(".panels", { x: ..., ease: "none", scrollTrigger: { scrub: 1 } });
```

### 2. ScrollTrigger on a child tween in a timeline

```js
// BAD - ScrollTrigger ignores child tweens of a timeline that has its own ScrollTrigger
const tl = gsap.timeline({ scrollTrigger: { trigger: ".section" } });
tl.to(".box", { x: 100, scrollTrigger: { trigger: ".box" } }); // IGNORE

// GOOD - one ScrollTrigger per timeline OR standalone tweens
gsap.to(".box", { x: 100, scrollTrigger: { trigger: ".box" } }); // tween standalone
```

### 3. setState in onUpdate

```js
// BAD - setState 60x/s = re-render hell
scrollTrigger: { onUpdate: (self) => setProgress(self.progress) }

// GOOD - mutate a ref or DOM element directly
const progressRef = useRef(0);
scrollTrigger: { onUpdate: (self) => { progressRef.current = self.progress; } }
// Or better: gsap.quickSetter to mutate the DOM without React
```

### 4. immediateRender on from() in a timeline

```js
// BAD - from() has immediateRender: true by default, breaks sequencing
tl.to(".box", { x: 100 });
tl.from(".box", { y: 50 }); // visually jumps to the start

// GOOD - disable immediateRender when from() follows another tween
tl.to(".box", { x: 100 });
tl.from(".box", { y: 50, immediateRender: false });
```

### 5. Animating non-transform properties

```js
// BAD - width/height/top/left trigger layout reflow
gsap.to(".box", { width: 200, height: 200 });

// GOOD - use transforms (GPU-accelerated, composited)
gsap.to(".box", { scaleX: 1.5, scaleY: 1.5 });
// If actual size needed: use Flip plugin for layout transition
```

## Refs

- `references/core.md` - Complete gsap.to/from/fromTo/set API, options
- `references/timeline.md` - Timeline, position parameter, nesting
- `references/scrolltrigger.md` - Full ScrollTrigger reference
- `references/plugins.md` - SplitText, Flip, MorphSVG, DrawSVG, MotionPath, Observer

© AThevon · MIT · AThevon/genjutsu

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой