animated-video
Timeline-based motion design — animated explainer-style HTML artifacts where time advances and elements enter or exit on a schedule.
Skill by aiatelie
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/aiatelie-animated-video
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/animated-video
What's inside
- Skill name
animated-video- Description
- Timeline-based motion design — animated explainer-style HTML artifacts where time advances and elements enter or exit on a schedule. Reach for this when motion IS the design, not a flourish on a static layout.
- License
- MIT
- Instructions
- 73 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Animated video
Timeline-based motion design — animated explainer-style HTML artifacts where time advances and elements enter or exit on a schedule. Distinct from interactive prototypes (which are state-driven, not time-driven) and from CSS micro-interactions (which decorate a static layout instead of carrying it).
## When to use this skill
- The user asks for "an animated explainer", "a video", "an animation", "a sequence", "a kinetic title".
- The design's value is mostly in the *timing* (an idea unfolding over seconds, choreographed entries, scene transitions).
- The output will end up exported as a video clip (often via the `export` skill's video capability — MP4 / WebM / Lottie).
- 1920×1080 hero animations, lower-third graphics for video editing, intro/outro sequences, animated logos.
## When this skill does NOT apply
- **Static layout with hover/scroll micro-interactions** → use CSS transitions inside an interactive prototype (see [`interactive-prototype`](../interactive-prototype/SKILL.md)) or directly in the page's CSS.
- **State-driven flows** (click → next screen → modal → success state) → that's an interactive prototype, not motion design. Even if it animates between states, the animation is decorating the state machine, not driving the experience.
- **Single-frame visuals** (banners, posters, thumbnails) → DesignCanvas with one `<DCArtboard>`.
- **Timeline scrubbing of a UI** (showing a user flow as a sequence of screens advancing on a clock) → still better as `interactive-prototype` with auto-advance state, because the user typically wants to *pause and study* a frame.
## Setup
Drop in the canonical `animations.jsx` starter via the MCP server:
```
mcp__starters__copy_starter({ kind: "animations.jsx" })
```
The starter exposes the timeline primitives via `window`:
| Primitive | Role |
|---|---|
| `<Stage>` | Wraps the whole piece. Provides auto-scale to fit the viewport, a scrubber, play/pause keyboard shortcuts. |
| `<Sprite start end>` | Declares the lifetime of an element on the timeline (in seconds). Renders only between `start` and `end`. |
| `useTime()` | Hook returning current timeline position in seconds. Use inside an animated component to drive transforms / opacity / etc. |
| `useSprite()` | Hook returning the local time within a `<Sprite>` (0 at start, `end - start` at end). |
| `Easing` | Standard easing functions (linear, easeIn, easeOut, easeInOut, cubic curves). |
| `interpolate(t, [tStart, tEnd], [vStart, vEnd], easing?)` | Value interpolation between keyframes; clamps outside the range. |
| Entry / exit primitives | `<FadeIn>`, `<FadeOut>`, `<SlideIn>`, `<SlideOut>` — wrap content; declare duration; the rest is automatic. |
Compose by nesting `<Sprite>` (or the entry/exit primitives) inside `<Stage>`. Each `<Sprite>` is responsible for its own children's animation logic via `useSprite()` + `interpolate()`.
## Fallback
Only fall back to a third-party motion library if the starter genuinely can't express the effect. The acceptable fallback is [Popmotion](https://unpkg.com/popmotion@11.0.5/dist/popmotion.min.js) — small, no dependencies, well-documented spring/keyframe API. Avoid GSAP and Framer Motion in this context — both are large and the licensing story for shipping their bundle inside a downloaded export is awkward.
## Defaults
- **1920×1080, 16:9 canvas.** This matches DaVinci Resolve / Premiere / Final Cut import without resampling. Implement JS scaling so the `<Stage>` fits any viewport but renders at native resolution to the export pipeline.
- **No "title" card on the actual page.** The motion piece IS the artifact — the user opens the iframe to *watch the thing*, not to see a launcher slide. Skip the title screen unless it's literally part of the animation.
- **Persist scrubber position to localStorage** so a refresh during iteration doesn't lose the user's playhead. Key by `location.pathname` so multiple animation files in one project don't collide.
- **Default duration: 6–10 seconds.** Most explainer/title-graphic use cases land here. Shorter (2–4s) for stings/idents; longer (15–30s) only when the user explicitly asks.
- **Frame rate: 30 fps for export.** Smoother feels luxurious but doubles export time; 30 is the right balance for most kinetic graphics. Bump to 60 only if the user calls out smoothness specifically.
## Common patterns
- **Scene transitions** — chain two `<Sprite>` with overlapping `start`/`end` so the outgoing sprite fades while the incoming one slides up. Don't gate on hard cuts unless the design wants jarring contrast.
- **Stagger** — when multiple elements enter together (a list, a grid), use `interpolate(useSprite(), [i * 0.08, i * 0.08 + 0.4], [0, 1])` per item with a small per-index offset. Reads as "each element took its turn" rather than "they all arrived at once."
- **Camera moves** — when the whole scene needs to pan/zoom, transform the `<Stage>`'s root container, not individual `<Sprite>`s. Otherwise per-sprite transforms compound oddly.
- **Looping** — set `<Stage loop>` for ambient pieces (logo idents, background ambience). Reset in-sprite state via the `key={loopIteration}` trick so the second loop starts fresh.
## Anti-patterns
- **Animating layout properties** (width, height, top, left). These trigger reflow on every frame and tank the export pipeline's frame rate. Use `transform: translate3d(...)` and `opacity` exclusively.
- **More than 60 simultaneous sprites.** The starter's render loop assumes a manageable scene graph; past ~60 sprites the scrubber stutters and exports get expensive. Compose hierarchically: parent `<Sprite>` containing children, not 60 siblings.
- **Custom easing without intent.** "Bounce" and "elastic" are loud signatures; default to `easeOutCubic` for entries and `easeInQuad` for exits unless the design specifically wants the bounce.
- **Inline JSX with `style={{}}`** computed every frame from `useTime()`. React reconciles these on every tick; allocate the style object outside the JSX or use `useMemo` keyed on the relevant time slice.
- **Hardcoded time values in seconds scattered through component code.** Pull them up to a `TIMELINE` constant at the top of the file (`const TIMELINE = { introStart: 0, introEnd: 1.2, headlineStart: 0.8, … }`) so editing the timing is one place to change, not twenty.
## Pairs naturally with
- [`export`](../export/SKILL.md) — when the user wants the animation as an MP4 / WebM / Lottie file. The export capability runs the timeline through headless Chromium and rasterizes at native resolution.
- [`make-tweakable`](../make-tweakable/SKILL.md) — expose duration, color, copy as tweak knobs so the user can riff on the same animation without re-prompting the agent.From aiatelie/ai-atelie, MIT.
More from aiatelie/ai-atelie
- 0.542score
frontend-design
aiatelie
Aesthetic and convention guide for editing AI Atelie's own chrome — the editor, canvas frame, toolbars, sidebars, dialogs, settings, projects screen.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-critique
aiatelie
Run a structured anti-slop audit on the design just produced before declaring done.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-md-author
aiatelie
Read or write a Google-spec DESIGN.md at the project root — the cross-tool aesthetic spec that grounds every prompt in this project.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
semantic-commit
aiatelie
Draft a Conventional Commits 1.0.0 message for the AI Atelie repo.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
canvas-sync
aiatelie
Keep the canvas surface coherent across its three places — the canonical starter at `mcp/starters/DesignCanvas.jsx`, the byte-identical demo copy at…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
cuj-guardian
aiatelie
Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive…
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
interactive-prototype
aiatelie
Build a clickable, hi-fi prototype of a product or flow — not a wireframe, not a static mock.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
ship-task
aiatelie
Take an AI Atelie task — issue, ticket, or ad-hoc ask — all the way from description to merged-ready PR.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
design-aesthetic-presets
aiatelie
Pick one of eleven named aesthetic directions before writing any code, then execute it with discipline.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
export
aiatelie
Export a selected element from the canvas as PNG, JPEG, OGraf bundle, Lottie, or video.
SkillCFreshness: C★ 11Claude Code +9 - 0.538score
verify-with-playwright
aiatelie
Drive a real browser against AI Atelie's running dev server to verify a change works, and capture screenshots + video as PR evidence.
SkillCFreshness: C★ 11Claude Code +9 - 0.538score
pr-evidence
aiatelie
Run AI Atelie's journey suite and inject inline-rendering evidence (per-journey video + screenshot, in a 4-column markdown table) into the current PR's body.
SkillCFreshness: C★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 0
- Open issues
- 40
- Last commit (this folder)
- May 7, 2026 (5 months ago)
- Last release
- Jun 3, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/aiatelie/ai-atelie
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from aiatelie
- 0.542score
design-critique
aiatelie
Run a structured anti-slop audit on the design just produced before declaring done.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
canvas-sync
aiatelie
Keep the canvas surface coherent across its three places — the canonical starter at `mcp/starters/DesignCanvas.jsx`, the byte-identical demo copy at…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
cuj-guardian
aiatelie
Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
frontend-design
aiatelie
Aesthetic and convention guide for editing AI Atelie's own chrome — the editor, canvas frame, toolbars, sidebars, dialogs, settings, projects screen.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
semantic-commit
aiatelie
Draft a Conventional Commits 1.0.0 message for the AI Atelie repo.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-md-author
aiatelie
Read or write a Google-spec DESIGN.md at the project root — the cross-tool aesthetic spec that grounds every prompt in this project.
SkillCFreshness: C★ 11Claude Code +9
Cite this page
animated-video skill. Agent Mart. https://agentmart.dev/skills/aiatelie-animated-video (last updated 2026-10-24)