Emil Kowalski is a design engineer and educator who created the React components Sonner and Vaul and the Animations on the Web course. His current site says he is taking a break after work at Linear and Vercel.[1][2]
Start with You Don’t Need Animations →Career
Kowalski’s current homepage describes previous work at Linear and Vercel on the visual side of products and marketing surfaces. He now lists component libraries, animation teaching and AI-for-interface education among his projects. The move from a current Linear role to a break is explicit on the personal site; no departure date is given.[2]
Contributions
Why a notification should move smoothly when interrupted
Sonner is a React toast component, used to display brief notifications. Kowalski’s build account explains why he replaced keyframe animations with transitions: when another notification arrives mid-animation, the existing notifications can move toward new positions without jumping. He connects implementation choices to the experience of a component people may trigger repeatedly.[3]
A drawer that follows the gesture
Vaul adapts the mobile sheet interaction to the web on top of Radix’s accessible dialog primitive. His account covers drag-to-dismiss, momentum and the conflict between scrolling content and dragging its container. Updating an inherited CSS variable for every drag frame caused recalculation through the drawer’s children; applying the transform directly removed that source of lag.[4]
Ideas
In “You Don’t Need Animations,” Kowalski argues that frequently repeated and keyboard-driven interactions often work better without motion. His “Agents with Taste” essay translates design choices into concrete rules and examples that a coding agent can follow, including easing, duration and typography. The connection is practical judgment: explain what an interaction should accomplish before asking either a human or an agent to animate it.[5][6]
Tools, writing & talks
Writing, research & talks
Start here
You Don’t Need Animationsemilkowal.skiAn illustrated argument for choosing motion according to purpose, repetition and perceived responsiveness.
Start here before adding motion to an interface. The interactive comparisons require no framework knowledge and help explain when animation slows a repeated task.
Author[5]Emil Kowalski on a practical inversion of agent prompting: for outputs an LLM cannot reproduce exactly, such as a dithered logo or a ripped punched-card texture, have the agent build a slider-driven generator and pick the result yourself. Control stays with the human, iteration gets faster.
Catalog workOriginal sourceEmil Kowalski shipped an agent skill for animating React Native and Expo apps, covering gestures, sheets, haptics and screen transitions, built in collaboration with the Expo team.
Catalog workOriginal source- Why friction might actually be a thing we need:emilkowal.ski
Emil Kowalski argues that the cost of writing code was quietly doing a second job — filtering which ideas deserved to exist. AI removed that cost, and with it the forcing function for judgment, which is why so much vibe-coded output feels like it exists rather than was designed.
Catalog workOriginal source An argument for treating AI-generated open source libraries with suspicion: what made a dependency worth adopting was a person who shaped the API, wrote the docs, and knew why every line existed. Prompt-built libraries with generated READMEs now arrive daily and carry none of that signal.
Catalog workOriginal sourceEmil Kowalski on having a coding agent build several variants of a feature behind a switcher, with the chosen variant saved as a query parameter for easy sharing.
Catalog workOriginal sourceEmil Kowalski's trick: point Fable at someone's publicly shared writing and have it distill their expertise into a reusable skill to consult before doing that kind of work.
Catalog workOriginal sourceEmil Kowalski argues great AI-produced UI comes from taste, not secret prompts: people who know what a good interface looks like steer AI to it, and the quality bar rises as the work speeds up.
Catalog workOriginal source- Building a toast componentemilkowal.ski
The design and implementation story of Sonner, including interrupted stacking animations.
Author and component creator[3] - Building a drawer componentemilkowal.ski
An account of Vaul’s gesture behavior, performance and accessible dialog foundation.
Author and component creator[4] - Agents with Tasteemilkowal.ski
An explanation of turning interface-design judgment into explicit instructions and examples for coding agents.
Author[6]
Tools
- Skills for Design Engineersemilkowal.ski
Agent skills by Emil Kowalski that give coding agents design-engineering taste in animation easing, timing, and polish.
Catalog workOriginal source
Apps
- Animations on the Webanimations.dev
Kowalski’s course on practical web animation.
Creator[2][7]Original source