PluginBench
Skill
Review
Audit score 70

emilkowal-animations

pproenca/dot-skills

Emil Kowalski's animation best practices for React, CSS, and Framer Motion.

What is emilkowal-animations?

A comprehensive guide with 58 rules across 8 categories for building performant, accessible animations in web interfaces. Use when implementing transitions, easing, gestures, toasts, drawers, or any motion-based UI.

  • Provides 58 prioritized animation rules organized by impact (easing, timing, property selection, transforms, interactions, strategy, accessibility, Tailwind v4)
  • Covers easing selection with custom curves, spring configurations, and context-aware choices
  • Defines critical timing constraints (300ms max for UI, 500ms for drawers, asymmetric press/release)
  • Guides property selection for performance (transform and opacity only, hardware acceleration, will-change)
  • Documents interaction patterns including interruptible animations, momentum-based dismissal, and gesture handling
  • Includes accessibility best practices (prefers-reduced-motion, opacity fallbacks, gentle motion retention)

How to install emilkowal-animations

npx skills add https://github.com/pproenca/dot-skills --skill emilkowal-animations
Claude Code
Cursor
Windsurf
Cline

How to use emilkowal-animations

  1. 1.Reference the rule categories by priority when starting an animation task
  2. 2.Look up the specific rule prefix (ease-, timing-, props-, transform-, interact-, strategy-, polish-, tw-) matching your need
  3. 3.Apply the rule to your implementation (CSS, React, Framer Motion, or Tailwind v4)
  4. 4.For Tailwind v4 projects, use the tw- category rules to express principles with proper utilities
  5. 5.Test animations in slow motion and review with fresh eyes before shipping
  6. 6.Verify accessibility with prefers-reduced-motion and pointer media queries

Use cases

Good for
  • Implementing toast notifications or drawer components with proper easing and timing
  • Optimizing button press feedback with scale transforms and asymmetric timing
  • Building gesture-based interactions (swipe, drag) with momentum and damping
  • Choosing between CSS, Framer Motion, or Tailwind v4 for animation implementation
  • Reviewing animations for performance, accessibility, and purposefulness before shipping
Who it's for
  • React developers building interactive UI components
  • Frontend engineers optimizing animation performance
  • Designers and developers implementing gesture-based interactions
  • Teams using Framer Motion, Sonner, or Vaul libraries
  • Projects adopting Tailwind CSS v4 with animation utilities

emilkowal-animations FAQ

When should I use this skill?

Use it when writing, reviewing, or implementing animations in React, CSS, or Framer Motion, especially for transitions, easing, gestures, toasts, drawers, or any motion-based UI.

What are the most critical rules to follow?

Easing selection (use ease-out by default, custom curves over built-in CSS) and timing (keep UI animations under 300ms, use 500ms for drawers) are marked CRITICAL and have the highest impact.

Does this cover Tailwind CSS animations?

Yes. Category 8 provides Tailwind v4-specific utilities (tw- prefix) to express the animation principles, but the raw CSS and Framer Motion rules remain the source of truth.

How do I handle animations for users with prefers-reduced-motion?

Respect prefers-reduced-motion by using opacity fallbacks, the useReducedMotion hook in Framer Motion, and keeping gentle animations rather than removing all motion.

What properties should I animate for best performance?

Animate only transform and opacity, use hardware acceleration when the main thread is busy, and avoid animating CSS variables during drag operations.

Full instructions (SKILL.md)

Source of truth, from pproenca/dot-skills.


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

PriorityCategoryImpactPrefix
1Easing SelectionCRITICALease-
2Timing & DurationCRITICALtiming-
3Property SelectionHIGHprops-
4Transform TechniquesHIGHtransform-
5Interaction PatternsMEDIUM-HIGHinteract-
6Strategic AnimationMEDIUMstrategy-
7Accessibility & PolishMEDIUMpolish-
8Tailwind v4 UtilitiesMEDIUMtw-

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

ValueUsage
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-outStandard UI transition
300msMaximum duration for UI animations
500msDrawer animation duration
0.11 px/msVelocity threshold for momentum dismiss
100pxScroll-reveal viewport threshold
14pxToast stack offset

Duration by Element

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

ElementDuration
Button press feedback100–160ms
Tooltips, small popovers125–200ms
Dropdowns, selects150–250ms
Modals, drawers200–500ms
Marketing / explanatoryCan be longer

Reference Files

FileDescription
references/_sections.mdCategory definitions and ordering
assets/templates/_template.mdTemplate for new rules
metadata.jsonVersion and reference information

Related skills

More from pproenca/dot-skills and the wider catalog.

zod logo

zod

pproenca/dot-skills

Zod schema validation best practices for type safety, parsing, and error handling.

3.8k installsAudited
clean-architecture logo

clean-architecture

pproenca/dot-skills

Clean Architecture principles and best practices for designing maintainable, testable software systems.

1.7k installs
react-hook-form logo

react-hook-form

pproenca/dot-skills

Performance optimization guide for React Hook Form client-side forms with 45 rules across 8 categories.

1.5k installs
vitest logo

vitest

pproenca/dot-skills

Vitest testing framework patterns for test setup, async testing, mocking with vi.*, snapshots, and test performance (formerly test-vitest). This skill should be used when writing or debugging Vitest tests. This skill does NOT cover TDD methodology (use test-tdd skill), API mocking with MSW (use test-msw skill), or Jest-specific APIs.

1.1k installsAudited
nuqs logo

nuqs

pproenca/dot-skills

nuqs (type-safe URL query state) best practices for Next.js and other React frameworks. This skill should be used when writing, reviewing, or refactoring code that uses nuqs for URL state management. Triggers on tasks involving useQueryState, useQueryStates, search params, URL state, query parameters, nuqs parsers, limitUrlUpdates, Standard Schema, NuqsAdapter, or Next.js routing with state.

1.1k installsAudited
code-simplifier logo

code-simplifier

pproenca/dot-skills

Code simplification skill for improving clarity, consistency, and maintainability while preserving exact behavior. Use when simplifying code, reducing complexity, cleaning up recent changes, applying refactoring patterns, or improving readability. Triggers on tasks involving code cleanup, simplification, refactoring, or readability improvements.

1.0k installs