anime-js · dylantarre — Claude Code skill: 12 animation principles
A skill that gives your coding agent ready Anime.js recipes for all 12 Disney animation principles.
npx skills add dylantarre/animation-principles --skill anime-js -a claude-codeWhat anime-js does
The skill walks through the 12 Disney animation principles and pairs each one with an Anime.js technique. Squash and stretch via scaleX and scaleY, anticipation built with anime.timeline(), follow through using the relative offset '-=450', arcs drawn with anime.path() along an SVG contour. Your agent picks the section it needs and swaps in your selectors.
Inside are JavaScript snippets: timelines, keyframes, anime.stagger(), the built-in easings plus spring() and elastic(). Separate sections cover timing (fast, normal, slow), exaggeration with overshoot, and volume through rotateX/rotateY with perspective.
The skill assumes Anime.js is already wired into your project — the snippets won't run without the library. Install it with one npx skills add command; the file lands at ~/.claude/skills/anime-js/SKILL.md.
What it helps with
- build a character jump with squash and stretch
- add a wind-up before a movement using a timeline
- offset hair and cape timing from the body
- move an element along an SVG path
- pick an easing for a snappy or dramatic transition
Example prompts for the agent
- Animate this card with the appeal principle in Anime.js — soft scale and shadow
- Show me how to do anticipation before a ball jump with anime.timeline()
- How do I move an element along an SVG path with anime.path()?
How to install anime-js
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill anime-js -a claude-code2Manually: put the files in place
~/.claude/skills/anime-js/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/anime-js/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill anime-js -a codex2Manually: put the files in place
.agents/skills/anime-js/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill anime-js -a cursor2Manually: put the files in place
.cursor/skills/anime-js/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles anime-js2Manually: put the files in place
.github/skills/anime-js/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill anime-js -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/09-by-tool-framework/anime-jsManually: put the files in place
.devin/skills/anime-js/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill anime-js -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about anime-js
How do I install anime-js in Claude?
Run npx skills add dylantarre/animation-principles --skill anime-js -a claude-code. The skill ends up at ~/.claude/skills/anime-js/SKILL.md.
What does anime-js do?
It hands your agent working Anime.js examples for each of the 12 Disney animation principles, from squash and stretch to appeal.
Do I need Anime.js installed separately?
Yes. The skill only supplies code guidance; you add the Anime.js library to your project yourself.
Source text
SKILL.md · MIT
---
name: anime-js
description: Use when implementing Disney's 12 animation principles with Anime.js library
---
# Anime.js Animation Principles
Implement all 12 Disney animation principles using Anime.js's flexible animation engine.
## 1. Squash and Stretch
```javascript
anime({
targets: '.ball',
scaleX: [1, 1.2, 1],
scaleY: [1, 0.8, 1],
duration: 300,
easing: 'easeInOutQuad'
});
```
## 2. Anticipation
```javascript
anime.timeline()
.add({
targets: '.character',
translateY: 10,
scaleY: 0.9,
duration: 200
})
.add({
targets: '.character',
translateY: -200,
duration: 400,
easing: 'easeOutQuad'
});
```
## 3. Staging
```javascript
anime({
targets: '.background',
filter: 'blur(3px)',
opacity: 0.6,
duration: 500
});
anime({
targets: '.hero',
scale: 1.1,
duration: 500
});
```
## 4. Straight Ahead / Pose to Pose
```javascript
anime({
targets: '.element',
keyframes: [
{ translateX: 0, translateY: 0 },
{ translateX: 100, translateY: -50 },
{ translateX: 200, translateY: 0 },
{ translateX: 300, translateY: -30 }
],
duration: 1000
});
```
## 5. Follow Through and Overlapping Action
```javascript
anime.timeline()
.add({ targets: '.body', translateX: 200, duration: 500 })
.add({ targets: '.hair', translateX: 200, duration: 500 }, '-=450')
.add({ targets: '.cape', translateX: 200, duration: 600 }, '-=500');
```
## 6. Slow In and Slow Out
```javascript
anime({
targets: '.element',
translateX: 300,
duration: 600,
easing: 'easeInOutCubic'
});
// Options: easeInQuad, easeOutQuad, easeInOutQuad
// easeInCubic, easeOutCubic, easeInOutCubic
// spring(mass, stiffness, damping, velocity)
```
## 7. Arc
```javascript
anime({
targets: '.ball',
translateX: 200,
translateY: [
{ value: -100, duration: 500 },
{ value: 0, duration: 500 }
],
easing: 'easeOutQuad',
duration: 1000
});
// Or use SVG path
anime({
targets: '.element',
translateX: anime.path('.motion-path')('x'),
translateY: anime.path('.motion-path')('y'),
duration: 1000
});
```
## 8. Secondary Action
```javascript
const tl = anime.timeline();
tl.add({
targets: '.button',
scale: 1.1,
duration: 200
})
.add({
targets: '.icon',
rotate: 15,
duration: 150
}, '-=150')
.add({
targets: '.particles',
opacity: [0, 1],
delay: anime.stagger(50)
}, '-=100');
```
## 9. Timing
```javascript
// Fast - snappy
anime({ targets: '.fast', translateX: 100, duration: 150 });
// Normal
anime({ targets: '.normal', translateX: 100, duration: 300 });
// Slow - dramatic
anime({ targets: '.slow', translateX: 100, duration: 600 });
// Spring physics
anime({ targets: '.spring', translateX: 100, easing: 'spring(1, 80, 10, 0)' });
```
## 10. Exaggeration
```javascript
anime({
targets: '.element',
scale: 1.5,
rotate: '2turn',
duration: 800,
easing: 'easeOutElastic(1, 0.5)' // overshoot
});
```
## 11. Solid Drawing
```javascript
anime({
targets: '.box',
rotateX: 45,
rotateY: 30,
perspective: 1000,
duration: 500
});
```
## 12. Appeal
```javascript
anime({
targets: '.card',
scale: 1.02,
boxShadow: '0 20px 40px rgba(0,0,0,0.2)',
duration: 300,
easing: 'easeOutQuad'
});
```
## Stagger Animation
```javascript
anime({
targets: '.item',
translateY: [20, 0],
opacity: [0, 1],
delay: anime.stagger(100), // 100ms between each
easing: 'easeOutQuad'
});
```
## Key Anime.js Features
- `anime.timeline()` - Sequence animations
- `keyframes` - Multiple poses
- `anime.stagger()` - Offset delays
- `anime.path()` - SVG motion paths
- Built-in easings + `spring()` + `elastic()`
- `'-=200'` - Relative offset timing
- `anime.set()` - Instant property set
© dylantarre · MIT · dylantarre/animation-principles
Similar skills
Everything for Frontend and UI →anime-js by other authors comes first.