animate
npx skills add https://github.com/onewave-ai/claude-skills --skill animate
Agent 安装分布
Skill 文档
Animation Generator
Create animated videos and motion graphics from a natural language description. Outputs a standalone Vite + React + Framer Motion project that plays in the browser.
Workflow
Step 1: Parse the Request
Break the user’s description into a scene plan:
- 3-7 scenes, each 3-5 seconds long
- Identify the story arc: hero/intro, problem, solution, features, CTA/outro
- Pick a color palette and typography that fits the brand/mood
- Use
$ARGUMENTSfor the user’s animation description
Step 2: Choose the Animation Stack
Auto-detect the best approach based on the request:
| Request Type | Stack | When to Use |
|---|---|---|
| Product intro, presentation, marketing | Framer Motion (default) | Scene-based with text, icons, transitions |
| Generative art, particles, patterns | p5.js | Creative/algorithmic visuals |
| 3D objects, environments, product renders | Three.js + react-three-fiber | 3D scenes needed |
| Simple text/logo animation | CSS animations only | Minimal, no heavy deps |
Default to Framer Motion unless the request clearly needs something else.
Step 3: Scaffold the Project
- Create a directory:
~/animations/[project-name]/ - Run the scaffold script:
bash ~/.claude/skills/animate/scripts/scaffold.sh [project-name] [stack] - Copy template files from
~/.claude/skills/animate/assets/template-files/into the project
Step 4: Generate Scene Components
Read the references for animation presets and scene patterns:
references/animation-presets.mdâ all available transitions, springs, easingsreferences/scene-patterns.mdâ example scene code patterns
For each scene, create a React component in client/src/components/video/video_scenes/:
- Use
motion.divwith scene transition presets (fadeBlur, scaleFade, slideLeft, splitHorizontal, morphExpand, etc.) - Use
containerVariantsanditemVariantsfor staggered content reveals - Use
vwunits for responsive sizing (works at any resolution) - Use CSS variables for theming (
var(--color-accent),var(--color-bg-dark), etc.) - Use Lucide icons for visual elements
- Use
.glass-panelclass for frosted glass cards - Use
.text-gradientand.text-gradient-accentfor gradient text
Step 5: Generate the VideoTemplate
Create client/src/components/video/VideoTemplate.tsx:
- Import all scene components
- Define
SCENE_DURATIONSobject (scene name -> milliseconds) - Use
useVideoPlayerhook to manage scene advancement - Wrap scenes in
AnimatePresence mode="wait"for smooth transitions - Each scene renders conditionally based on
currentSceneindex
Step 6: Customize Theme
Update client/src/index.css with the right colors:
- If the user specified brand colors, update CSS variables
- Choose fonts that match the mood (Space Grotesk for tech, Playfair Display for elegant, etc.)
- Update gradient and glow styles to match the palette
Step 7: Gemini 3.1 Pro Enhancement (Optional)
If GEMINI_API_KEY environment variable is available:
- Read
references/gemini-integration.mdfor API details - Send the user’s description to Gemini 3.1 Pro asking for:
- Scene breakdown with descriptions and suggested transitions
- Color palette as CSS variables
- Copy/headlines for each scene
- SVG graphics if applicable
- Use the Gemini output to inform scene generation
- If no API key, skip this step â Claude handles all creative decisions directly
Step 8: Build and Preview
cd ~/animations/[project-name]
npm install
npm run dev
Tell the user the animation is running at http://localhost:5173 and open it in the browser.
Scene Transition Reference (Quick)
Pick transitions that match the story beat:
- fadeBlur â Soft intro/outro, dreamy reveals
- scaleFade â Confident reveals, product showcases
- slideLeft/slideRight â Sequential progression, timeline flow
- splitHorizontal/splitVertical â Dramatic reveals, before/after
- morphExpand â Grand finale, CTA screens
- clipCircle â Focus attention, spotlight effect
- perspectiveFlip â Card flips, perspective changes
- wipe â Clean transitions, directional flow
- zoomThrough â Immersive, forward momentum
- crossDissolve â Gentle, emotional transitions
Element Animation Reference (Quick)
- popIn â Bouncy scale entrance for icons/badges
- fadeUp/fadeDown â Subtle content reveals
- slideInLeft/slideInRight â Directional content
- blurIn â Soft focus reveals
- elasticScale â Playful, energetic entrances
- perspectiveRotateIn â 3D card reveals
- pulse â Looping attention grab
- float â Gentle hovering effect
Important Rules
- Always use
vwunits for sizing so animations look good at any resolution - Keep scenes between 3-5 seconds each â total video 15-30 seconds
- Use
AnimatePresence mode="wait"so one scene exits before the next enters - Every scene must have a background treatment (gradient, image, or animated shape)
- Use staggered animations for lists and grids (staggerChildren: 0.1-0.2)
- Include a loading state if assets are heavy
- The project must be completely self-contained â no external dependencies beyond npm packages
- Do NOT use emojis anywhere in the generated code or content