Settling for good enough is not good enough.
Summary
A set of side-by-side motion exercises rather than an article to read through. Each one shows two versions of the same animation and asks you to pick the better one, write down the reason, then read Emil's breakdown. The exercises cover easing, entry animations, stagger, interruption handling, press feedback and how frequency should change what you do. The value is in the writing-down step, because putting the reason into words is what lets you spot the same problem next time. AI can already produce motion that works, so telling mediocre from right is the part that stays yours.
View full writingGoes well with
emil-design-eng
The design-engineering house style behind Sonner and Vaul.
Emil's main skill. Mostly animation, with the UI-polish and component judgement that surrounds it: what to build, how far to push it, and when to stop.
npx skills add https://github.com/emilkowalski/skills
review-animations
Reviews your motion strictly, against Emil's rules.
A production-critical pass over animation quality, timing and consistency in a diff. Pairs with improve-animations, which does the same for a whole codebase.
npx skills add https://github.com/emilkowalski/skills --skill review-animations
improve-animations
Audits every animation in a codebase and hands back prioritised plans.
Read-only on source. Surveys the motion you already ship and produces self-contained implementation plans any agent can execute, ordered by what actually matters.
npx skills add https://github.com/emilkowalski/skills --skill improve-animations