Skip to main content
skill CX Codex

timing-calibration — Claude Code skill: fix animation timing

A skill that diagnoses animations that feel too fast, too slow or inconsistent, then hands back concrete durations and easing.

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

What timing-calibration does

The skill kicks in when animation speed feels off: too fast, too slow, or similar elements moving at different rates. It walks through Disney's principles one by one — timing, slow in and slow out, arcs, staging, secondary action — and pairs each with a diagnosis and a fix.

There is a duration scale: instant states 0–100ms, buttons and toggles 100–200ms, cards and modals 200–300ms, page transitions 300–400ms, complex reveals 400–600ms. For UI it advises staying under 1s. Easing gets its own section: ease-out for entrances, ease-in for exits, since linear timing reads as mechanical. A CSS pattern ships with variables like --duration-fast, --duration-normal, --duration-slow and cubic-bezier curves.

Worth testing against your own codebase. The checklist suggests speeding animations up by 30% and slowing them down by 30%, then comparing against platform conventions. If your project already defines duration tokens, the scale here may not match them — you will have to pick one source of truth.

What it helps with

  • work out why an animation drags or snaps too fast
  • align the speed of similar elements
  • pick a duration that matches element size and travel distance
  • swap linear timing for easing on entrances and exits
  • set a speed hierarchy between primary and secondary motion

Example prompts for the agent

  • the modal animation feels too slow, pick a duration for it
  • the button and the card move at different speeds, put them on one scale
  • the page transition looks mechanical, change the easing

How to install timing-calibration

1Skills CLI (Vercel)

npx skills add dylantarre/animation-principles --skill timing-calibration -a claude-code

2Manually: put the files in place

~/.claude/skills/timing-calibration/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/timing-calibration/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about timing-calibration

How do I install timing-calibration in Claude?

Run npx skills add dylantarre/animation-principles --skill timing-calibration -a claude-code. The skill file lands at ~/.claude/skills/timing-calibration/SKILL.md.

What does timing-calibration do?

It diagnoses animation speed problems against Disney's principles and returns specific durations and easing. It covers timing, slow in and slow out, arcs, staging and secondary action.

What durations does the skill recommend?

Micro-interactions 100–150ms, transitions 200–400ms, complex reveals 400–600ms. For UI it advises never exceeding 1s.

Source text

SKILL.md · MIT
---
name: timing-calibration
description: Use when animation speed feels wrong—too fast, too slow, or inconsistent
---

# Timing Calibration

Get animation speed right using Disney's timing principles.

## Problem Indicators
- "Too slow" or "too fast" feedback
- Animations feel inconsistent
- Similar actions have different speeds
- Users wait for animations
- Motion feels robotic or unnatural

## Diagnosis by Principle

### Timing
**Issue**: Duration doesn't match action type
**Fix**: Micro-interactions: 100-150ms. Transitions: 200-400ms. Complex reveals: 400-600ms. Never exceed 1s for UI.

### Slow In and Slow Out
**Issue**: Linear timing feels mechanical
**Fix**: Use easing. Ease-out for entrances (fast start, soft landing). Ease-in for exits (soft start, quick finish).

### Arcs
**Issue**: Straight-line motion at wrong speed
**Fix**: Curved paths need more time than straight paths. Increase duration for arc motion.

### Staging
**Issue**: Multiple speeds compete
**Fix**: Similar elements should animate at similar speeds. Create timing harmony.

### Secondary Action
**Issue**: Secondary animations at wrong relative speed
**Fix**: Secondary actions should be slightly slower than primary. Creates natural hierarchy.

## Timing Scale

| Category | Duration | Use For |
|----------|----------|---------|
| Instant | 0-100ms | Hover states, micro-feedback |
| Fast | 100-200ms | Buttons, toggles, small elements |
| Normal | 200-300ms | Cards, modals, most transitions |
| Slow | 300-400ms | Page transitions, large elements |
| Deliberate | 400-600ms | Complex reveals, onboarding |

## Quick Fixes

1. **Start with 200ms** - Adjust from there
2. **Larger elements = longer duration** - Size affects perceived speed
3. **Distance affects timing** - Longer travel = longer duration
4. **Create a timing scale** - Use 3-4 consistent values
5. **Test at 2x speed** - If too slow works, use it

## Troubleshooting Checklist

- [ ] Is duration under 400ms for most UI?
- [ ] Do similar elements have similar timing?
- [ ] Is easing applied (not linear)?
- [ ] Does larger movement have longer duration?
- [ ] Test: Speed up by 30%—still readable?
- [ ] Test: Slow down by 30%—feels sluggish?
- [ ] Are users waiting for animations?
- [ ] Compare to platform conventions (iOS/Android/Web)

## Code Pattern

```css
:root {
  /* Timing scale */
  --duration-instant: 50ms;
  --duration-fast: 150ms;
  --duration-normal: 250ms;
  --duration-slow: 350ms;
  --duration-deliberate: 500ms;

  /* Easing */
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
}

/* Size-aware timing */
.small-element { transition-duration: var(--duration-fast); }
.medium-element { transition-duration: var(--duration-normal); }
.large-element { transition-duration: var(--duration-slow); }
```

© dylantarre · MIT · dylantarre/animation-principles

Similar skills

Everything for Frontend and UI →

From the same set86

exaggeration-mastery A skill that helps you decide how far to push motion past realism so key moments land on screen. CX Codex +1 502installs brand-strategist Turns the 12 animation principles into brand decisions: timing, easing, how much stretch fits your character. Useful when motion has to match the rest of the identity. CX Codex +1 503installs exit-animations A skill that tells the agent how to animate elements leaving the screen: closing modals, dismissing notifications, removing list items. CX Codex +1 500installs Animation Principles - Expert A skill for animators who already know the classic principles and want to break them deliberately: anti-squash, omitted anticipation, broken arcs. CX Codex +1 499installs Animation Principles - Teaching Others Walks you through teaching the 12 animation principles to students, mentees or teammates: what to show first and where they usually get stuck. CX Codex +1 495installs user-feedback-clarity A skill that helps your coding agent work out why users miss interface feedback and what to change. CX Codex +1 496installs power-confidence A skill that spells out how to animate strength and authority: heavy movement, sudden stops, almost no bounce. Useful for hero sections and premium product showcases. CX Codex +1 495installs universal-patterns Sets baseline durations, easing curves and the 12 animation principles for any motion in an interface. Useful when your agent writes CSS transitions and guesses the timing wrong. CX Codex +1 493installs

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