agentleFS
soilmasssoilmass/motion-design-agent/skills/emotion-selection/SKILL.md

emotion-selection

Skill7 starsChanged 10 months agoMITView on GitHub

Select appropriate emotion tokens for animation context. Use when designing animations based on user feeling, brand personality, or interaction outcome to choose the right spring, easing, and timing parameters.

The file

Files
SKILL.md

Emotion Selection

Guide for selecting emotion tokens from tokens/emotion.tokens.json to match animation context.

Quick Selection

By User State

User FeelingEmotion TokenKey Parameters
Accomplished somethingcelebratorybouncy spring, 1.2x duration, particles
Needs reassurancecalminggentle spring, 1.4x duration, no effects
Under time pressureurgentsnappy spring, 0.8x duration, pulse
Having funplayfulbouncy spring, 1.1x duration, wobble
Making decisionsprofessionalstandard spring, 1.0x duration, none
Discovering somethingmysteriousgentle spring, 1.5x duration, glow
Highly engagedenergeticsnappy spring, 0.9x duration, trail
Encountered errorfrustratedsnappy spring, 0.9x duration, shake
Trusting the systemtrustworthygentle spring, 1.1x duration, none
Waitinganticipatorylinear, 1.0x duration, shimmer
Pleasantly surpriseddelightfulbouncy spring, 1.3x duration, sparkle
Concentratingfocusedsnappy spring, 0.9x duration, none
First time herewelcomingenter spring, 1.2x duration, wave

By Interaction Type

InteractionRecommended Emotion
Form submission successcelebratory
Payment confirmedcelebratory + trustworthy (blend 70/30)
Error messagefrustrated (brief)
Loading stateanticipatory
Onboarding stepwelcoming
Toggle/switchplayful or professional
Modal openprofessional or calming
Achievement unlockdelightful
Security prompttrustworthy + urgent (blend 60/40)
Help tooltipcalming

Emotion Parameters

Each emotion maps to specific animation parameters:

celebratory:
  spring: {motion.spring.legacy.bouncy}
  duration-multiplier: 1.2
  exaggeration: expressive
  secondary-effects: particles, glow

professional:
  spring: {motion.spring.default.spatial}
  duration-multiplier: 1.0
  exaggeration: subtle
  secondary-effects: none

Selection Process

Step 1: Identify Context

What just happened?
├── Success → celebratory, delightful
├── Error → frustrated (brief)
├── Loading → anticipatory
└── Navigation → professional, welcoming

What should user feel?
├── Confident → trustworthy
├── Engaged → playful, energetic
├── Calm → calming
└── Focused → focused

Step 2: Check Brand Compatibility

Brand AttitudeCompatible EmotionsAvoid
Elegantcalming, trustworthy, professionalplayful, energetic
Playfulplayful, delightful, celebratoryprofessional, focused
Boldenergetic, celebratory, urgentcalming, mysterious
Friendlywelcoming, playful, calmingurgent, frustrated

Step 3: Apply Context Modifiers

From tokens/emotion.tokens.json:

ContextDurationExaggerationEffects
First visit+20%+10%+20%
Repeat user-10%-10%-10%
Reduced motion-50%0disabled
Low power-20%n/a-30%

Step 4: Blend if Needed

For complex scenarios, blend emotions:

// From emotion.tokens.json
"confident-celebration": {
  "blend": ["celebratory", "trustworthy"],
  "weights": [0.7, 0.3],
  "use-case": "Payment success"
}

Token Lookup

Load Token

import emotions from 'tokens/emotion.tokens.json';

const params = emotions.emotions.celebratory.parameters;
const spring = params['spring-ref']; // "{motion.spring.legacy.bouncy}"

Resolve References

Spring refs use W3C DTCG format:

{motion.spring.legacy.bouncy} → tokens/spring.tokens.json → motion.spring.legacy.bouncy

Reduced Motion Mapping

EmotionStandardReduced Motion
celebratorybounce + particlesfade + success icon
playfulspring + wobblestandard transition
energeticfast + trailquick fade
frustratedshakestatic error state

Related Skills

  • Dependencies: emotion-mapping, easing, duration
  • Commonly used with: animation-recipes, component-animations
  • See also: accessibility (for reduced motion implementation)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.