micro-interactions · dylantarre — Claude Code skill for animating small UI details
A skill that tells your coding agent how to animate buttons, toggles, checkboxes, loading indicators and notification badges.
npx skills add dylantarre/animation-principles --skill micro-interactions -a claude-codeWhat micro-interactions does
The skill maps Disney's 12 animation principles onto small interface feedback moments. It ships a quick-reference table pairing each principle with an implementation, a breakdown of every principle, and ready CSS patterns for button states, a toggle switch and a checkbox. Your agent pulls timings and curves from there: 100–300ms for most interactions, ease-out for responsiveness, spring for toggles.
There is a timing reference covering hover, click, toggle, checkbox, focus ring, tooltip show and hide, badge update and form error. The best-practices list is blunt: every interactive element needs feedback, disabled states get no animation and reduced opacity, and functionality must not depend on animation.
One rule stands out — respect prefers-reduced-motion. If your project ignores it, this is a reason to check. The skill also suggests starting values like scaleY: 0.95 on press or a 3–5px error shake, framed as advice rather than hard limits.
What it helps with
- pick a duration and easing curve for a button press
- build a toggle with a springy overshoot
- draw a checkmark stroke inside a checkbox
- show a form error without a jarring jump
- make an icon react to its parent state change
Example prompts for the agent
- animate the button states: hover, active, disabled
- build a toggle switch with a spring transition and slight overshoot
- add a checkmark draw animation and respect prefers-reduced-motion
How to install micro-interactions
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill micro-interactions -a claude-code2Manually: put the files in place
~/.claude/skills/micro-interactions/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/micro-interactions/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill micro-interactions -a codex2Manually: put the files in place
.agents/skills/micro-interactions/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill micro-interactions -a cursor2Manually: put the files in place
.cursor/skills/micro-interactions/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles micro-interactions2Manually: put the files in place
.github/skills/micro-interactions/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill micro-interactions -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/01-by-domain/micro-interactionsManually: put the files in place
.devin/skills/micro-interactions/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill micro-interactions -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 micro-interactions
How do I install micro-interactions in Claude?
Run npx skills add dylantarre/animation-principles --skill micro-interactions -a claude-code. The skill file then lives at ~/.claude/skills/micro-interactions/SKILL.md.
What does micro-interactions do?
It guides your agent through small UI feedback: button states, toggles, form validation, loading indicators, notification badges. It contains animation principles, CSS patterns and a timing table.
Does the skill cover accessibility?
Yes. The best practices include respecting prefers-reduced-motion and testing the interface with animation turned off.
Source text
SKILL.md · MIT
---
name: micro-interactions
description: Use when designing small UI feedback moments like button states, toggles, form validation, loading indicators, or notification badges.
---
# Micro-interaction Animation
Apply Disney's 12 animation principles to small UI feedback moments and interface details.
## Quick Reference
| Principle | Micro-interaction Implementation |
|-----------|--------------------------------|
| Squash & Stretch | Button press compression, toggle bounce |
| Anticipation | Hover state hints, pre-click feedback |
| Staging | Focus attention on active element |
| Straight Ahead / Pose to Pose | Progress vs state changes |
| Follow Through / Overlapping | Ripple effects, settling motion |
| Slow In / Slow Out | Snappy but smooth transitions |
| Arc | Toggle switches, circular menus |
| Secondary Action | Icons respond to parent state |
| Timing | 100-300ms for most interactions |
| Exaggeration | Clear but not distracting |
| Solid Drawing | Consistent transform behavior |
| Appeal | Delightful, purposeful feedback |
## Principle Applications
**Squash & Stretch**: Buttons compress slightly on press (scaleY: 0.95). Toggle thumbs squash when hitting bounds. Notification badges bounce on update. Keep subtle—this is UI, not cartoon.
**Anticipation**: Hover states prepare for click. Buttons lift/grow slightly before press animation. Draggable items elevate on grab start. Loading spinners wind up before spinning.
**Staging**: Active form field clearly distinguished. Error states demand attention. Success confirmations are unmistakable. One interaction feedback at a time.
**Straight Ahead vs Pose to Pose**: Progress indicators animate continuously (straight ahead). Checkboxes snap between states (pose to pose). Combine: loading indicator ends with state-change snap.
**Follow Through & Overlapping**: Ripple effects expand past tap point. Toggle switches overshoot then settle. Checkmarks draw with slight delay after box fills. Menu items stagger in.
**Slow In / Slow Out**: Quick ease-out for responsive feel. 100ms with ease-out feels instant. Avoid linear—looks broken. Snappy entrance, gentle settling.
**Arc**: Toggle switches travel in slight arc. Circular action buttons expand radially. Dropdown carets rotate smoothly. Menu items can follow curved path.
**Secondary Action**: Icon changes color as button state changes. Badge count updates with parent notification. Helper text appears as input focuses. Shadow responds to elevation.
**Timing**: Immediate feedback: 50-100ms. Standard transitions: 100-200ms. Complex micro-interactions: 200-300ms. Anything longer feels sluggish for small UI.
**Exaggeration**: Enough to notice, not enough to distract. Error shakes: 3-5px, not 20px. Success scales: 1.05-1.1, not 1.5. Subtle but unmistakable.
**Solid Drawing**: Transform origin matters—buttons scale from center, tooltips from pointer. Consistent behavior across similar elements. Maintain visual integrity during animation.
**Appeal**: Micro-interactions add personality without overwhelming. Users should feel the interface is responsive and alive. Small delights build into overall experience quality.
## Component Patterns
### Button States
```css
.button {
transition: transform 100ms ease-out,
box-shadow 100ms ease-out;
}
.button:hover {
transform: translateY(-1px);
box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.button:active {
transform: translateY(0) scale(0.98);
box-shadow: 0 1px 2px rgba(0,0,0,0.1);
}
```
### Toggle Switch
```css
.toggle-thumb {
transition: transform 200ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.toggle-thumb.active {
transform: translateX(20px);
}
```
### Checkbox
```css
.checkmark {
stroke-dasharray: 20;
stroke-dashoffset: 20;
transition: stroke-dashoffset 200ms ease-out 50ms;
}
.checkbox:checked + .checkmark {
stroke-dashoffset: 0;
}
```
## Timing Reference
| Interaction | Duration | Easing |
|-------------|----------|--------|
| Hover | 100ms | ease-out |
| Click/tap | 100ms | ease-out |
| Toggle | 150-200ms | spring/elastic |
| Checkbox | 150ms | ease-out |
| Focus ring | 100ms | ease-out |
| Tooltip show | 150ms | ease-out |
| Tooltip hide | 100ms | ease-in |
| Badge update | 200ms | elastic |
| Form error | 200ms | ease-out |
## Best Practices
1. Every interactive element needs feedback
2. Disabled states: no animation, reduced opacity
3. Group related feedback together
4. Don't animate on every change—filter unnecessary updates
5. Test without animation—functionality shouldn't depend on it
6. Respect `prefers-reduced-motion`
© dylantarre · MIT · dylantarre/animation-principles
Similar skills
Everything for Frontend and UI →micro-interactions by other authors comes first.