universal-timing — скилл для Claude Code: тайминги анимации
Скилл про тайминги анимации: правила, которые работают и на 50 мс, и на 5000 мс. Пригодится, когда нужно выбрать длительность и кривую, а не угадывать.
npx skills add dylantarre/animation-principles --skill universal-timing -a claude-codeЧто делает universal-timing
Скилл разбирает принципы анимации, которые не зависят от длительности. Squash & stretch масштабируется пропорционально: 5% на 100 мс, 30% на 2000 мс. Anticipation держит постоянную долю — 20–30% от основной фазы, сколько бы она ни длилась. Slow in/slow out нужен всегда, потому что линейное движение выглядит механически на любой скорости.
Внутри есть универсальные пропорции. Соотношение фаз anticipation : action : follow-through — 20% : 50% : 30%, для 500 мс это 100 мс, 250 мс и 150 мс. Задержка стаггера — 10–20% от длительности элемента: при 300 мс это 30–60 мс между элементами. Отдельно расписано, когда уместен ease-in: до 150 мс остаётся только ease-out, полный ease-in-out возможен от 400 мс. Даны готовые cubic-bezier для CSS.
Есть рамка выбора длительности по ощущению: мгновенно, быстро, стандартно, намеренно, драматично. Из ограничений — скилл ничего не считает за вас и не подставляет значения в код: он даёт правила и пропорции, а контекст проекта определяет длительность. Если в проекте уже есть дизайн-система с фиксированными токенами анимации, эти пропорции придётся согласовывать с ней вручную.
Какие задачи решает
- выбрать длительность анимации под нужное ощущение
- посчитать доли anticipation и follow-through от общего времени
- подобрать задержку стаггера для списка элементов
- понять, когда ease-in ещё не имеет смысла
- проверить анимацию на крайних скоростях
Примеры запросов агенту
- Подбери тайминги для появления карточки за 300 мс по принципам universal-timing
- Посчитай anticipation, action и follow-through для анимации длительностью 500 мс
- Какую кривую cubic-bezier взять для выезда панели за 120 мс?
Как установить universal-timing
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-timing -a claude-code2Вручную: положить файлы
~/.claude/skills/universal-timing/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/universal-timing/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-timing -a codex2Вручную: положить файлы
.agents/skills/universal-timing/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-timing -a cursor2Вручную: положить файлы
.cursor/skills/universal-timing/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install dylantarre/animation-principles universal-timing2Вручную: положить файлы
.github/skills/universal-timing/SKILL.md1Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-timing -a gemini-cli2Командой платформы
gemini skills install https://github.com/dylantarre/animation-principles --path skills/10-by-time-scale/universal-timingВручную: положить файлы
.devin/skills/universal-timing/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add dylantarre/animation-principles --skill universal-timing -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о universal-timing
Как установить universal-timing в Claude Code?
Выполните npx skills add dylantarre/animation-principles --skill universal-timing -a claude-code. Файл скилла окажется по пути ~/.claude/skills/universal-timing/SKILL.md.
Что делает universal-timing?
Описывает принципы анимации, которые не зависят от длительности, и даёт пропорции для фаз, стаггера и кривых. Помогает выбирать тайминги осознанно, а не на глаз.
С какими платформами работает скилл?
Кроме Claude есть установка для Codex, Cursor, GitHub Copilot, Gemini CLI и OpenCode. Для GitHub Copilot команда другая: gh skill install dylantarre/animation-principles universal-timing.
Исходный текст
SKILL.md · MIT
---
name: universal-timing
description: Use when learning animation timing fundamentals - principles that apply regardless of duration, the foundational rules that scale across all time ranges
---
# Universal Timing Principles
Some animation truths **transcend duration**. These principles work at 50ms and 5000ms. Master these to make good timing decisions at any scale.
## Disney Principles - Universal Application
### Always True
**Squash & Stretch**: Scale proportionally - 5% at 100ms, 30% at 2000ms. Never eliminate, always proportional.
**Anticipation**: Ratio stays constant - anticipation is 20-30% of main action duration, regardless of total time.
**Staging**: One clear focus - whether instant or cinematic, only one thing should demand primary attention.
**Straight Ahead/Pose to Pose**: Complexity matches duration - short = straight ahead, long = pose to pose.
**Follow Through**: Present at all durations - even 100ms can have micro-overshoot. Scale matches duration.
**Slow In/Slow Out**: Always ease - linear motion looks mechanical at every duration.
**Arcs**: Natural paths scale - short animations = subtle curves, long animations = sweeping arcs.
**Secondary Action**: Supports, never competes - true at 50ms and 5000ms.
**Timing**: Duration determines perception - same motion reads differently at different speeds.
**Exaggeration**: Match duration and importance - longer duration allows more exaggeration.
**Solid Drawing**: Transforms must match - consistency matters regardless of speed.
**Appeal**: The goal - animation should enhance, not impede, at any duration.
## Universal Ratios
### The Golden Ratio of Animation Timing
```
Anticipation : Action : Follow-through
20% : 50% : 30%
Example at 500ms:
Anticipation: 100ms
Main action: 250ms
Follow-through: 150ms
```
### Stagger Ratio
```
Optimal stagger delay: 10-20% of item duration
Item duration: 300ms
Stagger delay: 30-60ms between items
```
### Easing Intensity vs Duration
```
Duration < 150ms: ease-out only (no time for ease-in)
Duration 150-400ms: ease-out or custom
Duration 400ms+: full ease-in-out possible
```
## Easing That Works Everywhere
```css
/* Universal ease-out - works at any duration */
transition-timing-function: cubic-bezier(0.16, 1, 0.3, 1);
/* Universal natural motion */
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
/* Universal bounce - scale amplitude with duration */
transition-timing-function: cubic-bezier(0.34, 1.56, 0.64, 1);
```
## Universal Laws
1. **Shorter distances = shorter durations** - motion should feel proportional to space.
2. **Bigger elements move slower** - perceived weight requires more time.
3. **Enter fast, exit faster** - users care about what's arriving, not leaving.
4. **Context determines tolerance** - first visit allows longer animation than repeat use.
5. **Attention is finite** - compete for it wisely, regardless of duration.
6. **Physics provides intuition** - match real-world expectations at any speed.
7. **Easing is mandatory** - linear motion looks wrong at every duration.
8. **Test at extremes** - if it works at 2x and 0.5x, it's robust.
## Duration Selection Framework
```
What should the user feel?
├── Instant (< 100ms)
│ └── Confirmation, responsiveness
├── Quick (100-300ms)
│ └── Efficiency, polish
├── Standard (300-500ms)
│ └── Clarity, communication
├── Deliberate (500-1000ms)
│ └── Importance, attention
└── Dramatic (> 1000ms)
└── Story, emotion, memory
```
## Key Insight
Duration is a **design decision**. It communicates importance, guides attention, and shapes emotion. The Disney principles are tools - timing is how you wield them. Master the principles, then let context determine duration.
© dylantarre · MIT · dylantarre/animation-principles