Individual skill
emilkowal-animations
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.
skills/.experimental/emilkowal-animations/SKILL.md
Source commit cf93c57cac89d6fc3e4194686000411567f5caf3
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 222
- Repository last updated
- Aug 15, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- writing Derived category
- engineering Derived category
- engineering-web Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 9,598 bytesSKILL.mdcore · 9,598 bytesSKILL.mdcore · 9,598 bytesassets/templates/_template.mddoc · 938 bytesmetadata.jsonasset · 1,693 bytesreferences/_sections.mddoc · 2,285 bytesreferences/ease-context-matters.mddoc · 1,196 bytesreferences/ease-custom-curves.mddoc · 1,400 bytesreferences/ease-in-out-onscreen.mddoc · 1,002 bytesreferences/ease-ios-drawer.mddoc · 952 bytesreferences/ease-out-default.mddoc · 1,362 bytesreferences/ease-spring-config.mddoc · 1,572 bytesreferences/ease-spring-natural.mddoc · 1,138 bytesreferences/interact-damping.mddoc · 1,069 bytesreferences/interact-friction-upward.mddoc · 1,036 bytesreferences/interact-interruptible.mddoc · 1,046 bytesreferences/interact-momentum-dismiss.mddoc · 1,072 bytesreferences/interact-multitouch.mddoc · 1,085 bytesreferences/interact-pointer-capture.mddoc · 1,142 bytesreferences/interact-scroll-drag-conflict.mddoc · 1,171 bytesreferences/interact-snap-points.mddoc · 1,224 bytesreferences/interact-touch-hover.mddoc · 941 bytesreferences/polish-blur-bridge.mddoc · 1,024 bytesreferences/polish-clip-path-tabs.mddoc · 1,187 bytesreferences/polish-dont-remove-all.mddoc · 1,261 bytesreferences/polish-framer-hook.mddoc · 1,107 bytesreferences/polish-hover-gap-fill.mddoc · 1,013 bytesreferences/polish-opacity-fallback.mddoc · 1,062 bytesreferences/polish-reduced-motion.mddoc · 926 bytesreferences/polish-scroll-reveal.mddoc · 1,143 bytesreferences/polish-stagger-children.mddoc · 1,262 bytesreferences/polish-toast-stacking.mddoc · 1,206 bytesreferences/props-avoid-css-variables.mddoc · 1,150 bytesreferences/props-clip-path-performant.mddoc · 1,103 bytesreferences/props-hardware-accelerated.mddoc · 1,181 bytesreferences/props-transform-opacity.mddoc · 1,108 bytesreferences/props-will-change.mddoc · 928 bytesreferences/strategy-cohesion.mddoc · 1,110 bytesreferences/strategy-feedback-immediate.mddoc · 1,133 bytesreferences/strategy-frequency-matters.mddoc · 1,255 bytesreferences/strategy-keyboard-no-animate.mddoc · 1,162 bytesreferences/strategy-marketing-exception.mddoc · 1,164 bytesreferences/strategy-purpose-required.mddoc · 1,237 bytesreferences/strategy-review-fresh-eyes.mddoc · 1,291 bytesreferences/timing-300ms-max.mddoc · 1,003 bytesreferences/timing-asymmetric.mddoc · 1,094 bytesreferences/timing-drawer-500ms.mddoc · 943 bytesreferences/timing-faster-better.mddoc · 1,000 bytesreferences/timing-tooltip-delay.mddoc · 1,121 bytesreferences/transform-3d-preserve.mddoc · 1,246 bytesreferences/transform-never-scale-zero.mddoc · 1,052 bytesreferences/transform-origin-aware.mddoc · 1,388 bytesreferences/transform-percentage-translate.mddoc · 976 bytesreferences/transform-scale-097.mddoc · 958 bytesreferences/transform-scale-children.mddoc · 1,297 bytesreferences/transform-starting-style.mddoc · 1,356 bytesreferences/tw-asymmetric-timing.mddoc · 1,448 bytesreferences/tw-custom-easing-theme.mddoc · 1,642 bytesreferences/tw-ease-duration-defaults.mddoc · 1,554 bytesreferences/tw-origin-aware.mddoc · 1,380 bytesreferences/tw-press-scale.mddoc · 1,401 bytesreferences/tw-reduced-motion.mddoc · 1,499 bytesreferences/tw-starting-enter.mddoc · 1,752 bytesreferences/tw-will-change.mddoc · 1,397 bytes
Read excerpt
# 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)