Skip to main content
skill CX Codex

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.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add dylantarre/animation-principles --skill universal-emotion -a claude-code
Open on GitHub

What 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-code

2Manually: put the files in place

~/.claude/skills/universal-emotion/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/universal-emotion/

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

Similar skills

Everything for Design →

From the same set86

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor