Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

gsap-timeline — Claude Code skill: what it does, how to install

This skill helps an agent build GSAP timelines, control timing, and manage playback. Use it for multi-step or parallel animation scenes.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add greensock/gsap-skills --skill gsap-timeline -a claude-code
Open on GitHub

What gsap-timeline does

gsap-timeline teaches the agent to use gsap.timeline() for sequential and parallel animation work. It covers the position parameter for absolute times, relative offsets, labels, and placement beside the previously added animation. The source also includes defaults, addLabel(), and nested timeline examples.

It documents playback controls such as .play(), .pause(), .reverse(), .restart(), .time(), .progress(), and .kill(). There is a specific rule for ScrollTrigger: attach it to a top-level tween or timeline rather than to tweens nested inside a timeline.

Install it when an agent regularly creates GSAP scenes with several steps. For a single tween, use gsap-core; React work and scroll-driven timelines have related skills.

What it helps with

  • build a multi-step GSAP animation
  • sync tweens with the position parameter
  • label sections of a timeline
  • nest a child timeline inside a master timeline
  • control animation pause, seeking, and reversal

Example prompts for the agent

  • Build a GSAP animation for `.hero`: show `.title` first, then `.subtitle`, and start the final tween with `"
  • Create a timeline with `defaults: { duration: 0.5, ease: "power2.out" }` and add `intro` and `outro` labels.
  • Attach `ScrollTrigger` to the top-level timeline and explain why it should not be placed on nested tweens.

How to install gsap-timeline

1Skills CLI (Vercel)

npx skills add greensock/gsap-skills --skill gsap-timeline -a claude-code

2Manually: put the files in place

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

Copy the whole skill folder; for one project use .claude/skills/gsap-timeline/

From the same set8

The whole set →

Similar

remotion-upgrade remotion-dev Upgrades Remotion and related dependencies to the latest stable release. It keeps package versions synchronized and updates project skills automatically. Claude Code CX Codex Cursor +1 186,800installs remotion-studio remotion-dev This skill starts Remotion Studio and opens a video preview. Use it to inspect a composition and follow changes while working on a video. Claude Code CX Codex Cursor +1 172,100installs frontend-design official anthropics This skill guides intentional visual design for new interfaces and redesigns. Use it when a generic generated UI is not enough. Claude Code Claude.ai 1,025,790installs design-taste-frontend Leonxlnx This skill directs the design of public pages and work screens, then checks the result in a browser through screenshots. Use it when an interface feels generic or unfinished. Claude Code CX Codex Cursor +1 673,100installs prototype Matt Pocock Creates throwaway prototypes for checking state logic or exploring UI before committing the decision to the main codebase. Claude Code 986,201installs hyperframes heygen-com Instructs coding agents on creating, validating, and rendering HTML-based videos using the HyperFrames framework and CLI. Claude Code CX Codex Cursor +1 1,200,000installs hyperframes-cli heygen-com Controls HyperFrames video workflows from the CLI: audits layouts and contrast, edits timeline clips, captures snapshots, and renders locally or in cloud runtimes. Claude Code CX Codex Cursor +1 1,200,000installs webapp-testing official anthropics This skill tests local web apps with Playwright, helping agents debug UI behavior, capture screenshots, and inspect browser logs. Claude Code Claude.ai 186,758installs

Questions about gsap-timeline

How do I install gsap-timeline in Claude Code?

Run npx skills add greensock/gsap-skills --skill gsap-timeline -a claude-code. The skill file will be placed at ~/.claude/skills/gsap-timeline/SKILL.md.

What does gsap-timeline do?

It helps an agent build GSAP timelines, set tween order and overlap, use labels and shared defaults, and control playback.

Can ScrollTrigger be used inside a nested timeline?

No. Place ScrollTrigger on a top-level tween or timeline, rather than on a tween nested inside a timeline.

Source text

SKILL.md · MIT
---
name: gsap-timeline
description: Official GSAP skill for timelines — gsap.timeline(), position parameter, nesting, playback. Use when sequencing animations, choreographing keyframes, or when the user asks about animation sequencing, timelines, or animation order (in GSAP or when recommending a library that supports timelines).
license: MIT
---

# GSAP Timeline

## When to Use This Skill

Apply when building multi-step animations, coordinating several tweens in sequence or parallel, or when the user asks about timelines, sequencing, or keyframe-style animation in GSAP.

**Related skills:** For single tweens and eases use **gsap-core**; for scroll-driven timelines use **gsap-scrolltrigger**; for React use **gsap-react**.

## Creating a Timeline

```javascript
const tl = gsap.timeline();
tl.to(".a", { x: 100, duration: 1 })
  .to(".b", { y: 50, duration: 0.5 })
  .to(".c", { opacity: 0, duration: 0.3 });
```

By default, tweens are **appended** one after another. Use the **position parameter** to place tweens at specific times or relative to other tweens.

## Position Parameter

Third argument (or position property in vars) controls placement:

- **Absolute**: `1` — start at 1 second.
- **Relative (default)**: `"+=0.5"` — 0.5s after end; `"-=0.2"` — 0.2s before end.
- **Label**: `"labelName"` — at that label; `"labelName+=0.3"` — 0.3s after label.
- **Placement**: `"<"` — start when recently-added animation starts; `">"` — start when recently-added animation ends (default); `"<0.2"` — 0.2s after recently-added animation start.

Examples:

```javascript
tl.to(".a", { x: 100 }, 0);           // at 0
tl.to(".b", { y: 50 }, "+=0.5");      // 0.5s after last end
tl.to(".c", { opacity: 0 }, "<");     // same start as previous
tl.to(".d", { scale: 2 }, "<0.2");    // 0.2s after previous start
```

## Timeline Defaults

Pass defaults into the timeline so all child tweens inherit:

```javascript
const tl = gsap.timeline({ defaults: { duration: 0.5, ease: "power2.out" } });
tl.to(".a", { x: 100 }).to(".b", { y: 50 }); // both use 0.5s and power2.out
```

## Timeline Options (constructor)

- **paused: true** — create paused; call `.play()` to start.
- **repeat**, **yoyo** — same as tweens; apply to whole timeline.
- **onComplete**, **onStart**, **onUpdate** — timeline-level callbacks.
- **defaults** — vars merged into every child tween.

## Labels

Add and use labels for readable, maintainable sequencing:

```javascript
tl.addLabel("intro", 0);
tl.to(".a", { x: 100 }, "intro");
tl.addLabel("outro", "+=0.5");
tl.to(".b", { opacity: 0 }, "outro");
tl.play("outro");  // start from "outro"
tl.tweenFromTo("intro", "outro"); // pauses the timeline and returns a new Tween that animates the timeline's playhead from intro to outro with no ease.
```

## Nesting Timelines

Timelines can contain other timelines.

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

## Controlling Playback

- **tl.play()** / **tl.pause()**
- **tl.reverse()** / **tl.progress(1)** then **tl.reverse()**
- **tl.restart()** — from start.
- **tl.time(2)** — seek to 2 seconds.
- **tl.progress(0.5)** — seek to 50%.
- **tl.kill()** — kill timeline and (by default) its children.

## Official GSAP Best practices

- ✅ Prefer timelines for sequencing
- ✅ Use the **position parameter** (third argument) to place tweens at specific times or relative to labels.
- ✅ Add **labels** with `addLabel()` for readable, maintainable sequencing.
- ✅ Pass **defaults** into the timeline constructor so child tweens inherit duration, ease, etc.
- ✅ Put ScrollTrigger on the timeline (or top-level tween), not on tweens inside a timeline.

## Do Not

- ❌ Chain animations with **delay** when a **timeline** can sequence them; prefer `gsap.timeline()` and the position parameter for multi-step animation.
- ❌ Forget to pass **defaults** (e.g. `defaults: { duration: 0.5, ease: "power2.out" }`) when many child tweens share the same duration or ease.
- ❌ Forget that **duration** on the timeline constructor is not the same as tween duration; timeline “duration” is determined by its children.
- ❌ Nest animations that contain a ScrollTrigger; ScrollTriggers should only be on top-level Tweens/Timelines.

© greensock · MIT · greensock/gsap-skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor