motion-system — скилл для Claude Code: токены анимации
Задаёт единый набор длительностей, кривых и правил для анимаций в продукте. Пригодится, когда у каждого компонента свои тайминги.
npx skills add Owl-Listener/designer-skills --skill motion-system -a claude-codeЧто делает motion-system
Скилл описывает движение как слой дизайн-токенов, а не как набор отдельных анимаций. Внутри — таблицы длительностей от duration-instant (50ms) до duration-deliberate (600ms), именованные кривые вроде ease-standard и ease-spring, правила хореографии для групп элементов и обработка prefers-reduced-motion на уровне системы.
Автор советует не плодить токены: 4–6 значений обычно хватает. Для последовательностей элементов — стаггер 30–50ms, общая длительность такой сцены не больше 500ms. При reduced-motion скольжение, масштабирование и поворот убираются, анимации загрузки и прогресса остаются, потому что несут информацию о состоянии.
Токены оформляются как CSS custom properties и живут рядом с цветом и отступами в общем экспорте. Проверяйте движение на слабых устройствах: то, что плавно в редакторе, в продакшене может дёргаться. Для одной конкретной анимации есть отдельный скилл animation-principles из набора interaction-design — этот берут, когда наводят порядок во всём продукте.
Какие задачи решает
- свести длительности и кривые всех компонентов к общему набору токенов
- описать словарь движения так, чтобы дизайн и разработка говорили на одном языке
- настроить reduced-motion один раз на уровне системы, а не в каждом компоненте
- задать правила стаггера для групп элементов, появляющихся вместе
- добавить motion-токены в общий экспорт дизайн-токенов рядом с цветом и отступами
Примеры запросов агенту
- собери motion-токены для нашего дизайн-системы: длительности, кривые, reduced-motion
- проверь, не слишком ли много у нас значений duration, и предложи шкалу из 4–6 токенов
- опиши правила хореографии для списка карточек, которые появляются вместе
Как установить motion-system
1Через Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill motion-system -a claude-code2Вручную: положить файлы
~/.claude/skills/motion-system/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/motion-system/
1Через Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill motion-system -a codex2Вручную: положить файлы
.agents/skills/motion-system/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill motion-system -a cursor2Вручную: положить файлы
.cursor/skills/motion-system/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Owl-Listener/designer-skills motion-system2Вручную: положить файлы
.github/skills/motion-system/SKILL.md1Через Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill motion-system -a gemini-cli2Командой платформы
gemini skills install https://github.com/Owl-Listener/designer-skills --path design-systems/skills/motion-systemВручную: положить файлы
.devin/skills/motion-system/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Owl-Listener/designer-skills --skill motion-system -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о motion-system
Как установить motion-system в Claude?
Выполните npx skills add Owl-Listener/designer-skills --skill motion-system -a claude-code. После этого файл скилла лежит в ~/.claude/skills/motion-system/SKILL.md.
Что делает motion-system?
Определяет словарь движения для продукта: шкалу длительностей, именованные кривые, правила совместной анимации элементов и глобальную обработку reduced-motion.
Чем отличается от animation-principles?
motion-system стандартизирует движение по всему продукту, а animation-principles из набора interaction-design нужен для одной конкретной анимации.
Исходный текст
SKILL.md · MIT
--- name: motion-system description: Define motion tokens — durations, easing vocabulary, and reduced-motion handling — for consistency product-wide. Use when standardising motion across a system. For crafting one specific animation, use `animation-principles` (interaction-design). --- # Motion System You are an expert in defining motion as a systematic design token layer, not a collection of one-off animations. ## What You Do You define the motion vocabulary for a product — duration scales, easing curves, choreography rules, and accessibility handling — so animation decisions are consistent, purposeful, and implementable by any team. ## Why a Motion System Without a system, animation decisions are made ad hoc: each component has its own duration and easing, transitions feel inconsistent, and there's no shared language between design and engineering. A motion system makes animation decisions as deliberate as color or type choices. ## Duration Tokens Define a small set of named duration values. Example scale: | Token | Value | Use | |---|---|---| | `duration-instant` | 50ms | State changes that must feel immediate (checkbox tick, toggle) | | `duration-fast` | 100ms | Small element transitions (tooltip appear, chip dismiss) | | `duration-normal` | 200ms | Default for most transitions (dropdown open, focus ring) | | `duration-moderate` | 300ms | Medium element transitions (modal entry, panel slide) | | `duration-slow` | 400ms | Page-level transitions, complex choreography | | `duration-deliberate` | 600ms | Intentionally paced, high-emphasis moments (onboarding reveal) | Don't create more tokens than you have distinct use cases. 4–6 values is usually enough. ## Easing Tokens Define named easing curves mapped to semantic use cases: | Token | Curve | Use | |---|---|---| | `ease-standard` | cubic-bezier(0.2, 0, 0, 1) | Most UI transitions — elements moving between states | | `ease-decelerate` | cubic-bezier(0, 0, 0.2, 1) | Elements entering the screen | | `ease-accelerate` | cubic-bezier(0.3, 0, 1, 0.3) | Elements leaving the screen | | `ease-spring` | spring / cubic-bezier(0.34, 1.56, 0.64, 1) | Playful or tactile interactions (FAB expand, drawer bounce) | | `ease-linear` | linear | Looping animations only (progress spinners, shimmer) | ## Choreography Rules When multiple elements animate together: - **Stagger**: related elements entering together stagger by 30–50ms; lead with the most important - **Coordination**: elements in the same semantic group use the same duration and easing - **Sequence total**: total duration of a staggered sequence should not exceed 500ms - **Direction consistency**: if elements slide in from the right, related outgoing elements slide out to the left ## Reduced Motion The `prefers-reduced-motion: reduce` media query must be handled at the system level, not component by component: - **Disable**: remove sliding, scaling, and rotation animations - **Replace**: substitute instant state changes or simple opacity fades (opacity transitions are generally acceptable) - **Preserve**: keep animations that convey essential state information (loading spinners, progress) - **Token approach**: define a `duration-instant` (0ms or 1ms) override for all duration tokens under reduced-motion, applied globally ## Implementation - Define duration and easing values as CSS custom properties (or platform-equivalent tokens) - Apply reduced-motion overrides at the `:root` level within a `prefers-reduced-motion` query - Document each token with: name, value, use case, and a live example - Include motion tokens in the design token export pipeline — they should live alongside color and spacing tokens ## Motion Principles (to define per product) Every product's motion system should be grounded in 3–5 principles: - Example: "Purposeful — every animation communicates a state change or relationship" - Example: "Quick — UI motion is never slow; we respect users' time" - Example: "Physical — motion follows natural physics; decelerate on entry, accelerate on exit" - Example: "Accessible — all motion respects user preferences and never causes discomfort" ## Best Practices - Start with fewer tokens and add only when a new use case genuinely doesn't fit existing values - Test all motion on low-powered devices — what's smooth in design tools can be janky in production - Include motion in design QA checklists alongside color and spacing - Document what should NOT animate as clearly as what should — not everything moves
© Owl-Listener · MIT · Owl-Listener/designer-skills