К основному содержанию
скилл CX Codex

emilkowal-animations — скилл для Claude Code: суть и установка

Набор из 58 правил веб-анимации на базе подходов Эмиля Ковальски для React и CSS. Помогает настроить кривые плавности, жесты и тайминги.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add pproenca/dot-skills --skill emilkowal-animations -a claude-code
Открыть на GitHub

Что делает emilkowal-animations

Скилл передаёт агенту 58 правил веб-анимации в 8 категориях, отсортированных по силе влияния. База опирается на курс animations.dev и код библиотек Sonner и Vaul. Агент подбирает кастомные кривые cubic-bezier вместо стандартных настроек CSS. Длительность переходов ограничена 300 миллисекундами.

Из соображений производительности анимировать разрешено только transform и opacity. Для кнопок при нажатии задаётся scale(0.97). Старт со scale(0) исключён. Скилл запрещает анимировать действия с клавиатуры, потому что интерфейс обязан отвечать немедленно. Ещё один раздел посвящён утилитам Tailwind CSS v4.

Какие задачи решает

  • подобрать кривые cubic-bezier и параметры пружин для переходов
  • настроить жест смахивания и точки фиксации в drawer-компонентах
  • добавить анимации с учётом prefers-reduced-motion
  • исключить перерисовку разметки при смене состояний элементов

Примеры запросов агенту

  • Настрой появление выпадающего меню через Framer Motion по правилам emilkowal-animations
  • Проверь CSS-переходы в модальном окне и исправь тайминги
  • Сделай анимацию смахивания для шторки на 500ms с физикой пружины

Как установить emilkowal-animations

1Через Skills CLI (Vercel)

npx skills add pproenca/dot-skills --skill emilkowal-animations -a claude-code

2Вручную: положить файлы

~/.claude/skills/emilkowal-animations/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/emilkowal-animations/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора45

vitest Скилл даёт ИИ-агенту 44 правила для написания, отладки и ускорения тестов на Vitest. Помогает настроить моки, изолировать окружение и разобрать нестабильные проверки. CX Codex +1 6 100установок react-hook-form Оптимизирует клиентские формы на React Hook Form 7.82.0 и защищает от лишних ререндеров при подписках на поля, валидации и интеграции UI-библиотек. CX Codex +1 3 000установок nuqs Скилл с 39 правилами по nuqs: типизированные парсеры, адаптеры, интеграция с Server Components и оптимизация обновлений URL. Пригодится, когда агент пишет или рефакторит код с URL-состоянием. CX Codex +1 2 300установок clean-architecture Скилл с 42 правилами из книги Роберта Мартина: подсказывает агенту, куда направлять зависимости и где проводить границы слоёв. CX Codex +1 2 000установок code-simplifier Скилл для ИИ-агентов: чистит недавно изменённый код, снижает вложенность и дублирование, сохраняя поведение программы. CX Codex +1 1 600установок expo-react-native-performance Набор из 42 правил оптимизации приложений на Expo и React Native. Помогает настроить запуск, списки на FlashList, анимации и рендеринг без ручного поиска узких мест. CX Codex +1 1 500установок framer-motion Скилл оптимизирует анимации Framer Motion в React: предотвращает лишние ререндеры, уменьшает размер бандла и настраивает переходы жестов или скролла. CX Codex +1 1 100установок msw Скилл с 45 правилами по MSW v2: настройка, хендлеры, интеграция с тестами, GraphQL. Пригодится, когда агент пишет или правит моки HTTP-запросов. CX Codex +1 842установок

Похожие

tailwindcss-animations JosiahSiegel Скилл по анимациям и переходам Tailwind CSS: встроенные утилиты, свои @keyframes, reduced-motion, Framer Motion. CX Codex +1 2 400установок review-animations emilkowalski Проверяет код интерфейсных анимаций по принципам Эмиля Ковальски. Помогает убрать дерганые переходы, медленный ease-in и лишнюю нагрузку на процессор. CX Codex +1 256 500установок improve-animations emilkowalski Скилл проводит ревизию анимаций в кодовой базе и составляет готовые планы доработок. Помогает найти неудачные тайминги и прыгающие элементы, не меняя код напрямую. CX Codex +1 224 200установок awwwards-animations DevMartinese Скилл для React-анимаций уровня Awwwards и FWA: скролл, кастомные курсоры, переходы страниц, генеративная графика. Пригодится, когда нужен плавный 60fps-скролл и сложные эффекты. CX Codex +1 2 900установок motion-dev-animations Motion Dev Standards Генерирует GPU-анимации на Motion.dev для React, Next.js, Svelte и Astro. Помогает настроить физику пружин, скролл-эффекты и жесты с учётом prefers-reduced-motion. CX Codex +1 594установок design-motion-principles kylezantos Создаёт и проверяет анимации интерфейса с учётом контекста продукта и частоты действий. Нужен для переходов, состояний наведения и микровзаимодействий. CX Codex +1 12 700установок

Рядом в теме «Фронтенд и UI»

Всё по теме «Фронтенд и UI» →

Вопросы о emilkowal-animations

Как установить emilkowal-animations в Claude Code?

Выполните команду npx skills add pproenca/dot-skills --skill emilkowal-animations -a claude-code. Файлы скилла запишутся в конфигурацию агента.

Что делает скилл emilkowal-animations?

Он предоставляет агенту 58 правил для создания анимаций в React, CSS и Framer Motion. Правила охватывают выбор кривых плавности, ограничение длительности до 300 мс и оптимизацию производительности.

Какие свойства разрешено анимировать по этим правилам?

Скилл требует анимировать только transform и opacity, чтобы браузер не тратил ресурсы на пересчёт макета. Для раскрытия блоков без сдвига соседних элементов предлагается использовать clip-path.

Исходный текст

SKILL.md · MIT
---
name: emilkowal-animations
description: Emil Kowalski's animation best practices for web interfaces. Use when writing, reviewing, or implementing animations in React, CSS, or Framer Motion. Triggers on tasks involving transitions, easing, gestures, toasts, drawers, or motion.
---

# Emil Kowalski Animation Best Practices

Comprehensive animation guide for web interfaces based on Emil Kowalski's teachings, open-source libraries (Sonner, Vaul), and his [animations.dev](https://animations.dev) course. Contains 58 rules across 8 categories, prioritized by impact.

## When to Apply

Reference these guidelines when:
- Adding animations to React components
- Choosing easing curves or timing values
- Implementing gesture-based interactions (swipe, drag)
- Building toast notifications or drawer components
- Optimizing animation performance
- Ensuring animation accessibility
- Expressing any of the above with Tailwind CSS v4 utilities (see the `tw-` category)

## Rule Categories by Priority

| Priority | Category | Impact | Prefix |
|----------|----------|--------|--------|
| 1 | Easing Selection | CRITICAL | `ease-` |
| 2 | Timing & Duration | CRITICAL | `timing-` |
| 3 | Property Selection | HIGH | `props-` |
| 4 | Transform Techniques | HIGH | `transform-` |
| 5 | Interaction Patterns | MEDIUM-HIGH | `interact-` |
| 6 | Strategic Animation | MEDIUM | `strategy-` |
| 7 | Accessibility & Polish | MEDIUM | `polish-` |
| 8 | Tailwind v4 Utilities | MEDIUM | `tw-` |

## Quick Reference

### 1. Easing Selection (CRITICAL)

- [`ease-out-default`](references/ease-out-default.md) - Use ease-out as your default easing
- [`ease-custom-curves`](references/ease-custom-curves.md) - Use custom cubic-bezier over built-in CSS
- [`ease-in-out-onscreen`](references/ease-in-out-onscreen.md) - Use ease-in-out for on-screen movement
- [`ease-spring-natural`](references/ease-spring-natural.md) - Use spring animations for natural motion
- [`ease-spring-config`](references/ease-spring-config.md) - Configure springs with duration and bounce
- [`ease-ios-drawer`](references/ease-ios-drawer.md) - Use iOS-style easing for drawer components
- [`ease-context-matters`](references/ease-context-matters.md) - Match easing to animation context

### 2. Timing & Duration (CRITICAL)

- [`timing-300ms-max`](references/timing-300ms-max.md) - Keep UI animations under 300ms
- [`timing-faster-better`](references/timing-faster-better.md) - Faster animations improve perceived performance
- [`timing-asymmetric`](references/timing-asymmetric.md) - Use asymmetric timing for press and release
- [`timing-tooltip-delay`](references/timing-tooltip-delay.md) - Delay initial tooltips, instant subsequent ones
- [`timing-drawer-500ms`](references/timing-drawer-500ms.md) - Use 500ms duration for drawer animations

### 3. Property Selection (HIGH)

- [`props-transform-opacity`](references/props-transform-opacity.md) - Animate only transform and opacity
- [`props-hardware-accelerated`](references/props-hardware-accelerated.md) - Use hardware-accelerated animations when main thread is busy
- [`props-will-change`](references/props-will-change.md) - Use will-change to prevent 1px shift
- [`props-avoid-css-variables`](references/props-avoid-css-variables.md) - Avoid CSS variables for drag animations
- [`props-clip-path-performant`](references/props-clip-path-performant.md) - Use clip-path for layout-free reveals

### 4. Transform Techniques (HIGH)

- [`transform-scale-097`](references/transform-scale-097.md) - Scale buttons to 0.97 on press
- [`transform-never-scale-zero`](references/transform-never-scale-zero.md) - Never animate from scale(0)
- [`transform-percentage-translate`](references/transform-percentage-translate.md) - Use percentage values for translateY
- [`transform-origin-aware`](references/transform-origin-aware.md) - Make animations origin-aware
- [`transform-scale-children`](references/transform-scale-children.md) - Scale transforms affect children
- [`transform-3d-preserve`](references/transform-3d-preserve.md) - Use preserve-3d for 3D transform effects
- [`transform-starting-style`](references/transform-starting-style.md) - Animate enter states with @starting-style

### 5. Interaction Patterns (MEDIUM-HIGH)

- [`interact-interruptible`](references/interact-interruptible.md) - Make animations interruptible
- [`interact-momentum-dismiss`](references/interact-momentum-dismiss.md) - Use momentum-based dismissal
- [`interact-damping`](references/interact-damping.md) - Damp drag at boundaries
- [`interact-scroll-drag-conflict`](references/interact-scroll-drag-conflict.md) - Resolve scroll and drag conflicts
- [`interact-snap-points`](references/interact-snap-points.md) - Implement velocity-aware snap points
- [`interact-friction-upward`](references/interact-friction-upward.md) - Allow upward drag with friction
- [`interact-pointer-capture`](references/interact-pointer-capture.md) - Use pointer capture for drag operations
- [`interact-multitouch`](references/interact-multitouch.md) - Ignore extra touch points during drag
- [`interact-touch-hover`](references/interact-touch-hover.md) - Gate hover animations behind a pointer media query

### 6. Strategic Animation (MEDIUM)

- [`strategy-keyboard-no-animate`](references/strategy-keyboard-no-animate.md) - Never animate keyboard-initiated actions
- [`strategy-frequency-matters`](references/strategy-frequency-matters.md) - Consider interaction frequency before animating
- [`strategy-purpose-required`](references/strategy-purpose-required.md) - Every animation must have a purpose
- [`strategy-feedback-immediate`](references/strategy-feedback-immediate.md) - Provide immediate feedback on all actions
- [`strategy-marketing-exception`](references/strategy-marketing-exception.md) - Marketing sites are the exception
- [`strategy-cohesion`](references/strategy-cohesion.md) - Match motion to the component's personality
- [`strategy-review-fresh-eyes`](references/strategy-review-fresh-eyes.md) - Review animations in slow motion and the next day

### 7. Accessibility & Polish (MEDIUM)

- [`polish-reduced-motion`](references/polish-reduced-motion.md) - Respect prefers-reduced-motion
- [`polish-opacity-fallback`](references/polish-opacity-fallback.md) - Use opacity as reduced motion fallback
- [`polish-framer-hook`](references/polish-framer-hook.md) - Use useReducedMotion hook in Framer Motion
- [`polish-dont-remove-all`](references/polish-dont-remove-all.md) - Keep gentle animation for reduced motion
- [`polish-blur-bridge`](references/polish-blur-bridge.md) - Use blur to bridge animation states
- [`polish-clip-path-tabs`](references/polish-clip-path-tabs.md) - Use clip-path for tab transitions
- [`polish-toast-stacking`](references/polish-toast-stacking.md) - Implement toast stacking with scale and offset
- [`polish-scroll-reveal`](references/polish-scroll-reveal.md) - Trigger scroll animations at appropriate threshold
- [`polish-hover-gap-fill`](references/polish-hover-gap-fill.md) - Fill gaps between hoverable elements
- [`polish-stagger-children`](references/polish-stagger-children.md) - Stagger child animations for orchestration

### 8. Tailwind v4 Utilities (MEDIUM)

Express the principles above with proper Tailwind CSS v4 utilities. Applies only to Tailwind v4 projects; the raw-CSS and Framer Motion rules above remain the source of truth.

- [`tw-ease-duration-defaults`](references/tw-ease-duration-defaults.md) - Set ease-out and a sub-300ms duration explicitly
- [`tw-custom-easing-theme`](references/tw-custom-easing-theme.md) - Register custom easing curves as @theme tokens
- [`tw-press-scale`](references/tw-press-scale.md) - Use active:scale-[0.97] for button press feedback
- [`tw-asymmetric-timing`](references/tw-asymmetric-timing.md) - Split press and release timing with active:duration
- [`tw-starting-enter`](references/tw-starting-enter.md) - Animate enter states with the starting: variant
- [`tw-reduced-motion`](references/tw-reduced-motion.md) - Gate movement behind motion-safe / motion-reduce
- [`tw-origin-aware`](references/tw-origin-aware.md) - Set transform-origin with origin-* utilities
- [`tw-will-change`](references/tw-will-change.md) - Scope will-change-transform to the active gesture

## Key Values Reference

| Value | Usage |
|-------|-------|
| `cubic-bezier(0.23, 1, 0.32, 1)` | Strong ease-out for UI interactions |
| `cubic-bezier(0.77, 0, 0.175, 1)` | Strong ease-in-out for on-screen movement |
| `cubic-bezier(0.32, 0.72, 0, 1)` | iOS-style drawer/sheet animation |
| `scale(0.97)` | Button press feedback |
| `scale(0.95)` | Minimum enter scale (never scale(0)) |
| `200ms ease-out` | Standard UI transition |
| `300ms` | Maximum duration for UI animations |
| `500ms` | Drawer animation duration |
| `0.11 px/ms` | Velocity threshold for momentum dismiss |
| `100px` | Scroll-reveal viewport threshold |
| `14px` | Toast stack offset |

## Duration by Element

Pick duration by how often the element is seen and how much it moves. Keep UI animations under 300ms.

| Element | Duration |
|---------|----------|
| Button press feedback | 100–160ms |
| Tooltips, small popovers | 125–200ms |
| Dropdowns, selects | 150–250ms |
| Modals, drawers | 200–500ms |
| Marketing / explanatory | Can be longer |

## Reference Files

| File | Description |
|------|-------------|
| [references/_sections.md](references/_sections.md) | Category definitions and ordering |
| [assets/templates/_template.md](assets/templates/_template.md) | Template for new rules |
| [metadata.json](metadata.json) | Version and reference information |

© pproenca · MIT · pproenca/dot-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой