playfulness-fun — Claude Code skill: playful animations
A skill for animations that entertain: exaggerated bounces, wiggles and springy easing. Useful for games, onboarding and empty states.
npx skills add dylantarre/animation-principles --skill playfulness-fun -a claude-codeWhat playfulness-fun does
The skill spells out how to build motion with personality: generous squash and stretch (25–40%), oversized wind-ups before an action, and plenty of secondary movement like wiggles and sparkles. Everything travels along arcs. Nothing moves in a straight line. A bounce should feel like a beach ball.
Inside you get a timing table and a set of CSS curves. Bounce suggests 400–600ms with spring(1, 60, 8), wiggle 300–400ms with ease-in-out, pop 150–250ms with ease-out-back. For elastic motion there are custom properties --play-bounce, --play-elastic, --play-wobble plus ready @keyframes for wiggle and boing.
The skill installs into Claude, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode. Most platforms use npx skills add; GitHub Copilot goes through gh skill install. If your project already has a design system with tight timing rules, these exaggerated values will fight it, so plan to reconcile the two before shipping.
What it helps with
- liven up an empty state screen
- animate a like or follow reaction
- add a character to an onboarding tour
- build a bounce for a game button
- hide an easter egg in the UI
Example prompts for the agent
- Build a bounce animation for the like button using the playfulness-fun skill
- Add a wiggle to the icon on hover, use the curves from playfulness-fun
- Liven up the empty state with a pop and sparkles, as playfulness-fun suggests
How to install playfulness-fun
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill playfulness-fun -a claude-code2Manually: put the files in place
~/.claude/skills/playfulness-fun/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/playfulness-fun/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill playfulness-fun -a codex2Manually: put the files in place
.agents/skills/playfulness-fun/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill playfulness-fun -a cursor2Manually: put the files in place
.cursor/skills/playfulness-fun/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles playfulness-fun2Manually: put the files in place
.github/skills/playfulness-fun/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill playfulness-fun -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/06-by-emotional-outcome/playfulness-funManually: put the files in place
.devin/skills/playfulness-fun/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill playfulness-fun -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 playfulness-fun
How do I install playfulness-fun in Claude?
Run npx skills add dylantarre/animation-principles --skill playfulness-fun -a claude-code. The skill file lands at ~/.claude/skills/playfulness-fun/SKILL.md.
What does playfulness-fun do?
It sets rules for playful motion: exaggerated squash and stretch, long wind-ups, arcs instead of straight lines, and abundant secondary action. It ships a timing table plus CSS curves and @keyframes.
Which platforms does the skill support?
Claude, Codex, Cursor, GitHub Copilot, Gemini CLI and OpenCode. Each has its own install command, for example gh skill install dylantarre/animation-principles playfulness-fun for GitHub Copilot.
Source text
SKILL.md · MIT
---
name: playfulness-fun
description: Use when creating animations that entertain, engage with humor, or create lighthearted interactive experiences.
---
# Playfulness & Fun Animation
Create animations that entertain, surprise, and make interactions genuinely enjoyable.
## Emotional Goal
Playfulness invites interaction through unexpected, whimsical motion. Fun comes from animations that have personality, respond expressively, and make users smile.
## Disney Principles for Playfulness
### Squash & Stretch
Generous, exaggerated (25-40%). Rubbery, cartoon physics. Objects should feel alive and reactive. Bounce like a beach ball.
### Anticipation
Exaggerated wind-ups (150-250ms). Comic timing—big preparation for big payoff. Elements "think" before acting.
### Staging
Theatrical presentation. Clear setup and punchline. Give playful moments room to breathe and be noticed.
### Straight Ahead Action
Embrace spontaneity. Wobbly paths, unpredictable bounces. Characters and elements with minds of their own.
### Follow Through & Overlapping Action
Extensive, bouncy follow-through. Overshoots, wobbles, and settling. Like a cartoon character skidding to a stop.
### Slow In & Slow Out
Asymmetric with overshoot. Quick starts, bouncy landings. `cubic-bezier(0.68, -0.55, 0.265, 1.55)` for elastic effect.
### Arc
Exaggerated, bouncy curves. High arcs for jumps. Squiggly paths for personality. Nothing moves in straight lines.
### Secondary Action
Abundant! Wiggles, sparkles, expressions. Elements react to each other. The whole interface feels alive.
### Timing
Varied and expressive (100-500ms). Quick snaps, slow anticipation. Comic timing with beats and pauses.
### Exaggeration
High (30-50%). Push movements to cartoon levels. Impossible physics that feel emotionally true.
### Solid Drawing
Maintain appeal through deformation. Stretched elements stay charming. Volume shifts for effect.
### Appeal
Round, friendly shapes. Bright, saturated colors. Big eyes, expressive forms. Character in everything.
## Timing Recommendations
| Element | Duration | Easing |
|---------|----------|--------|
| Bounce | 400-600ms | `spring(1, 60, 8)` |
| Wiggle | 300-400ms | `ease-in-out` |
| Pop | 150-250ms | `ease-out-back` |
| Squash | 100-150ms | `ease-out` |
## CSS Easing
```css
--play-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
--play-elastic: cubic-bezier(0.34, 1.56, 0.64, 1);
--play-wobble: cubic-bezier(0.45, 0.05, 0.55, 0.95);
```
## Fun Animations
```css
@keyframes wiggle {
0%, 100% { transform: rotate(0deg); }
25% { transform: rotate(-5deg); }
75% { transform: rotate(5deg); }
}
@keyframes boing {
0% { transform: scale(1); }
30% { transform: scale(1.25, 0.75); }
50% { transform: scale(0.85, 1.15); }
70% { transform: scale(1.05, 0.95); }
100% { transform: scale(1); }
}
```
## When to Use
- Games and gamification
- Children's interfaces
- Social media reactions
- Onboarding tutorials
- Empty states
- Easter eggs
- Casual apps
- Entertainment platforms
© dylantarre · MIT · dylantarre/animation-principles