small-200-300ms — Claude Code skill: 200–300ms transitions
A skill that tells the agent how to build 200–300ms transitions: modal appearances, card expansions, navigation slides.
npx skills add dylantarre/animation-principles --skill small-200-300ms -a claude-codeWhat small-200-300ms does
This skill covers the duration range where users consciously notice motion. It walks through the Disney animation principles and marks which ones hold up at 200–300ms: squash & stretch, anticipation, staging, follow through, easing. Each gets a short verdict on whether it works here.
The practical half is CSS. Four transition recipes are listed — a plain ease-out at 250ms, a confident modal arrival via cubic-bezier(0.16, 1, 0.3, 1), a bouncy cubic-bezier(0.34, 1.56, 0.64, 1) at 280ms, and a restrained 220ms curve. Then an implementation pattern for .modal and .card-expand that pairs opacity with transform.
The skill also names what breaks in this range: complex character animation, long travel distances, multiple sequential stages. If something should feel instant, 200–300ms is too slow. Worth installing when you are reworking UI transitions and would rather the agent follow a stated timing than guess one.
What it helps with
- pick an easing curve for a modal appearing
- make a card expand without it snapping
- set up a navigation drawer slide
- give a button a bouncy motion that still looks tidy
- stagger a primary and secondary action inside one transition
Example prompts for the agent
- Make the modal appear over 250ms with cubic-bezier(0.16, 1, 0.3, 1)
- Rewrite the transition on .card-expand for the card expansion
- Pick a duration and easing for the navigation drawer slide
How to install small-200-300ms
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill small-200-300ms -a claude-code2Manually: put the files in place
~/.claude/skills/small-200-300ms/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/small-200-300ms/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill small-200-300ms -a codex2Manually: put the files in place
.agents/skills/small-200-300ms/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill small-200-300ms -a cursor2Manually: put the files in place
.cursor/skills/small-200-300ms/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles small-200-300ms2Manually: put the files in place
.github/skills/small-200-300ms/SKILL.md1Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill small-200-300ms -a gemini-cli2Platform CLI
gemini skills install https://github.com/dylantarre/animation-principles --path skills/10-by-time-scale/small-200-300msManually: put the files in place
.devin/skills/small-200-300ms/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill small-200-300ms -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 small-200-300ms
How do I install small-200-300ms in Claude?
Run npx skills add dylantarre/animation-principles --skill small-200-300ms -a claude-code. The skill lands at ~/.claude/skills/small-200-300ms/SKILL.md.
What does small-200-300ms do?
It describes 200–300ms transitions: which animation principles apply, which easing curves to use, and what the implementation pattern looks like for modals and expanding cards.
Which elements fit this duration range?
Modal dialogs, card expand and collapse, navigation drawer slides, tab content switches, filter panel toggles, thumbnail expansion, alert slides.
Source text
SKILL.md · MIT
---
name: small-200-300ms
description: Use when building small transitions between 200-300ms - modal appearances, card expansions, navigation transitions that users consciously perceive
---
# Small Transitions (200-300ms)
At 200-300ms, users **consciously perceive motion**. This duration bridges micro-interactions and full animations - ideal for UI state changes.
## Disney Principles at Small Duration
### Works Well
**Squash & Stretch**: Visible but restrained - 10-15% for playful interfaces, 5% for professional.
**Anticipation**: Brief wind-up works - 40-60ms preparation enhances 200ms main action.
**Staging**: Clear hierarchy - primary element leads, secondary follows by 50-100ms.
**Straight Ahead/Pose to Pose**: Pose to pose preferred - keyframes create polished motion.
**Follow Through**: Noticeable overshoot - 5-10% past target adds life.
**Slow In/Slow Out**: Full easing curves - both ease-in-out and custom beziers shine.
**Arcs**: Natural curves enhance - elements can travel on arcs rather than straight lines.
**Secondary Action**: One or two secondary actions - fade + scale, move + rotate.
**Timing**: 12-18 frames at 60fps. Smooth, deliberate motion.
**Exaggeration**: Moderate to pronounced - depends on brand personality.
**Solid Drawing**: Full transform combinations - translate, scale, rotate together.
**Appeal**: Conscious animation that builds brand character.
### Doesn't Work
- Feeling instant (too slow)
- Complex character animation
- Long travel distances
- Multiple sequential stages
## Easing Recommendations
```css
/* Standard smooth transition */
transition: all 250ms ease-out;
/* Modal/card appearance - confident arrival */
transition: all 250ms cubic-bezier(0.16, 1, 0.3, 1);
/* Bouncy personality */
transition: transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1);
/* Professional, subtle */
transition: all 220ms cubic-bezier(0.4, 0, 0.2, 1);
```
## Best Use Cases
- Modal dialogs appearing
- Card expand/collapse
- Navigation drawer slides
- Tab content transitions
- Filter panel toggles
- Image thumbnails expanding
- Alert/notification slides
## Implementation Pattern
```css
.modal {
opacity: 0;
transform: translateY(20px) scale(0.95);
transition: opacity 200ms ease-out,
transform 250ms cubic-bezier(0.16, 1, 0.3, 1);
}
.modal.open {
opacity: 1;
transform: translateY(0) scale(1);
}
.card-expand {
transition: all 280ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
```
## Key Insight
Small transitions are **seen and understood**. Users track the motion and their brain processes the spatial relationship. Use this to guide attention and communicate hierarchy.
© dylantarre · MIT · dylantarre/animation-principles