Agent Skills: Emil Kowalski Animation Best Practices

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.

UncategorizedID: pproenca/dot-skills/emilkowal-animations

Install this agent skill to your local

pnpm dlx add-skill https://github.com/pproenca/dot-skills/tree/HEAD/skills/.experimental/emilkowal-animations

Skill Files

Browse the full folder contents for emilkowal-animations.

Download Skill

Loading file tree…

skills/.experimental/emilkowal-animations/SKILL.md

Skill Metadata

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 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)

2. Timing & Duration (CRITICAL)

3. Property Selection (HIGH)

4. Transform Techniques (HIGH)

5. Interaction Patterns (MEDIUM-HIGH)

6. Strategic Animation (MEDIUM)

7. Accessibility & Polish (MEDIUM)

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.

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 | Category definitions and ordering | | assets/templates/_template.md | Template for new rules | | metadata.json | Version and reference information |