universal-emotion — Claude Code skill: emotion-driven animation
Turns a target emotion into animation parameters: timing, easing, deformation. Useful when the UI has to feel calm, urgent or playful.
npx skills add dylantarre/animation-principles --skill universal-emotion -a claude-codeWhat universal-emotion does
The skill breaks an emotional goal into four spectrums: energy, valence, arousal and dominance. From there it maps them onto Disney's animation principles. Each principle comes with a value table: squash & stretch runs from 0-10% at low energy to 20-40% at high, anticipation from 50-100ms to 150-300ms, timing from 400-800ms to 100-250ms.
A second table ties emotion type to an easing function. Calm gets symmetric ease-in-out, confident gets a strong cubic-bezier(0,0,0.2,1), playful gets an overshoot cubic-bezier(0.34,1.56,0.64,1). There is a CSS variable template with --emotion-duration, --emotion-easing, --emotion-squash and --emotion-overshoot. Those values are a starting point, not a final answer.
For mixed states the skill layers two emotions: the primary one carries 70% of the influence, the secondary 30%. A five-question decision tree helps when the emotion itself is still vague. Nothing here renders or verifies motion — it is a parameter reference, not an animation engine.
What it helps with
- turn a described emotion into concrete timing and easing values
- pick an easing curve for a calm or an urgent interface
- blend two emotions into one motion with different weights
- set starter CSS variables for brand-specific animation
- separate serious and playful motion using the same principles
Example prompts for the agent
- Make the card animation feel calm and confident, pick timing and easing with the universal-emotion skill
- I need a playful button animation with overshoot — what squash and easing values should I use?
- Build CSS variables for an elegant feel: duration, easing, deformation
How to install universal-emotion
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-emotion -a claude-code2Manually: put the files in place
~/.claude/skills/universal-emotion/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/universal-emotion/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-emotion -a codex2Manually: put the files in place
.agents/skills/universal-emotion/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-emotion -a cursor2Manually: put the files in place
.cursor/skills/universal-emotion/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles universal-emotion2Manually: put the files in place
.github/skills/universal-emotion/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-emotion -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/06-by-emotional-outcome/universal-emotionManually: put the files in place
.devin/skills/universal-emotion/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-emotion -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 universal-emotion
How do I install universal-emotion in Claude?
Run npx skills add dylantarre/animation-principles --skill universal-emotion -a claude-code. The skill lands at ~/.claude/skills/universal-emotion/SKILL.md.
What does universal-emotion do?
It maps Disney's animation principles onto a target emotion and returns concrete values: timing, easing, deformation. Think of it as a reference for motion parameters.
Do I need to configure anything after installing?
The skill ships a CSS variable template with ready values. Treat it as a starting point — duration and easing still need tuning for your interface.
Source text
SKILL.md · MIT
---
name: universal-emotion
description: Use when you need to achieve any emotional outcome through animation—provides a framework for mapping Disney principles to any target emotion.
---
# Universal Emotion Animation Framework
Map Disney's 12 principles to any emotional goal through systematic analysis.
## Emotional Goal
Any emotion can be achieved through intentional application of animation principles. This framework helps translate emotional intent into specific motion parameters.
## Emotion Mapping Framework
### Step 1: Define the Emotion
Identify your target on these spectrums:
- **Energy**: Low ←→ High
- **Valence**: Negative ←→ Positive
- **Arousal**: Calm ←→ Excited
- **Dominance**: Submissive ←→ Powerful
### Step 2: Map Principles to Emotion
| Principle | Low Energy | High Energy |
|-----------|------------|-------------|
| Squash & Stretch | 0-10% | 20-40% |
| Anticipation | 50-100ms | 150-300ms |
| Timing | 400-800ms | 100-250ms |
| Exaggeration | 0-15% | 25-50% |
| Follow Through | Extended settle | Quick bounce |
| Principle | Serious | Playful |
|-----------|---------|---------|
| Arc | Direct/Linear | Curved/Bouncy |
| Secondary Action | Minimal | Abundant |
| Straight Ahead | Avoid | Embrace |
| Appeal | Clean/Geometric | Round/Organic |
### Step 3: Select Easing
| Emotion Type | Easing Style | Example |
|--------------|--------------|---------|
| Calm | Symmetric ease | `ease-in-out` |
| Confident | Strong ease-out | `cubic-bezier(0,0,0.2,1)` |
| Playful | Overshoot | `cubic-bezier(0.34,1.56,0.64,1)` |
| Urgent | Sharp ease-out | `cubic-bezier(0.0,0,0.2,1)` |
| Elegant | Extended ease | `cubic-bezier(0.4,0,0.6,1)` |
## Quick Reference by Emotion
### Positive Emotions
- **Joy**: Fast timing, high squash/stretch, bouncy easing
- **Trust**: Consistent timing, minimal deformation, smooth easing
- **Calm**: Slow timing, subtle movement, symmetric easing
- **Excitement**: Fast timing, high energy, dynamic easing
### Functional Emotions
- **Urgency**: Very fast, direct paths, attention-grabbing
- **Professional**: Moderate timing, minimal decoration, standard easing
- **Friendly**: Moderate timing, soft deformation, gentle easing
### Premium Emotions
- **Elegant**: Slower timing, no deformation, refined easing
- **Powerful**: Deliberate timing, impact emphasis, strong easing
## CSS Variables Template
```css
:root {
/* Adjust based on target emotion */
--emotion-duration: 300ms;
--emotion-easing: cubic-bezier(0.4, 0, 0.2, 1);
--emotion-squash: 1;
--emotion-overshoot: 0;
}
```
## Decision Tree
1. Is the emotion high or low energy?
2. Is the feeling positive, negative, or neutral?
3. Should users feel in control or guided?
4. Is this a moment or a state?
5. What's the brand personality?
## Combining Emotions
Real experiences blend emotions. Layer principles:
- Primary emotion: 70% influence
- Secondary emotion: 30% influence
- Adjust timing/easing accordingly
## When to Use
- Novel emotional requirements
- Brand-specific interpretations
- Complex emotional journeys
- A/B testing emotional impact
- Cross-cultural considerations
- Accessibility adaptations
© dylantarre · MIT · dylantarre/animation-principles