animate
Generate animated videos and motion graphics from natural language descriptions. Creates a standalone Vite + React project with Framer Motion scenes that auto-play in the browser. Use when the user wants to create animations, motion graphics, video intros, animated presentations, or product demos.
By onewave-ai · 358 installs
npx skills add onewave-ai/claude-skills --skill animate
Source repository · Upstream listing
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 $ARGUMENTS for 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
1. Create a directory: ~/animations/[project name]/
2. Run the scaffold script: bash ~/.claude/skills/animate/scripts/scaffold.sh [project name] [stack]
3. 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, easings
references/scene patterns.md — example scene code patterns
For each scene, create a React component in client/src/components/video/video scenes/ :
Use motion.div with scene transition presets (fadeBlur, scaleFade, slideLeft, splitHorizontal, morphExpand, etc.)
Use containerVariants and itemVariants for staggered content reveals
Use vw units 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 panel class for frosted glass cards
Use .text gradient and .text gradient accent for gradient text
Step 5: Generate the VideoTemplate
Create client/src/components/video/VideoTemplate.tsx :
Import all scene components
Define SCENE DURATIONS object (scene name milliseconds)
Use useVideoPlayer hook to manage scene advancement
Wrap scenes in AnimatePresence mode="wait" for smooth transitions
Each scene renders conditionally based on currentScene index
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:
1. Read references/gemini integration.md for API details
2. 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
3. Use the Gemini output to inform scene generation
4. If no API key, skip this step — Claude handles all creative decisions directly
Step 8: Build and Preview
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
1. Always use vw units for sizing so animations look good at any resolution
2. Keep scenes between 3 5 seconds each — total video 15 30 seconds
3. Use AnimatePresence mode="wait" so one scene exits before the next enters
4. Every scene must have a background treatment (gradient, image, or animated shape)
5. Use staggered animations for lists and grids (staggerChildren: 0.1 0.2)
6. Include a loading state if assets are heavy
7. The project must be completely self contained — no external dependencies beyond npm packages
8. Do NOT use emojis anywhere in the generated code or content