emil-design-eng

Reviews and improves UI animations, transitions, and component interactions using CSS and Framer Motion.

Updated Jul 20, 2026
One-click install
npx skills add https://github.com/yashmishra2006/LexWrite-Website --skill emil-design-eng-yashmishra2006
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/yashmishra2006/LexWrite-Website/tree/main/.agents/skills/emil-design-eng
Command: npx skills add https://github.com/yashmishra2006/LexWrite-Website --skill emil-design-eng-yashmishra2006

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Interfaces often feel sluggish or unpolished because of subtle animation mistakes: wrong easing curves, excessive durations, non-interruptible keyframes, and transforms that ignore trigger origins. This Skill applies Emil Kowalski's design engineering philosophy to diagnose and fix those details in UI code. ## Core Features & Use Cases - Animation Decision Framework: Determines whether an element should animate at all based on usage frequency, then selects the correct easing curve, duration, and technique (CSS transitions, springs, WAAPI). - Structured UI Review: Produces a mandatory Before/After/Why markdown table covering issues like transition: all, scale(0) entries, ease-in on UI elements, and missing :active press states. - Component & Gesture Guidance: Covers popover transform-origins, tooltip delay skipping, clip-path reveals, momentum-based drag dismissal, spring configuration, and hardware-acceleration pitfalls in Framer Motion. - Use Case: Paste a React dropdown component and receive a table of concrete fixes, such as replacing a 400ms ease-in transition with a 180ms custom ease-out curve and origin-aware scaling. ## Quick Start Review this dropdown component's animation code and suggest improvements to its easing, duration, and transform origin.

Frequently Asked Questions about emil-design-eng

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I make UI animations feel more responsive?

Use ease-out curves so movement starts immediately, keep durations under 300ms, and add transform: scale(0.97) on :active for press feedback. Avoid ease-in, which delays initial movement and makes interfaces feel sluggish.

When should I use springs instead of CSS transitions?

Use springs for drag interactions with momentum, interruptible gestures, and elements that should feel alive, since springs maintain velocity when interrupted. Use CSS transitions for predetermined, rapidly-triggered UI state changes.

Should popovers scale from center or from their trigger?

Popovers should scale from their trigger using transform-origin set to the trigger location, such as Radix UI's --radix-popover-content-transform-origin variable. Modals are the exception and should stay centered.

Why do Framer Motion animations drop frames under load?

Framer Motion's shorthand x/y/scale props run on the main thread via requestAnimationFrame, so they drop frames when the browser is busy. Use the full transform string like translateX(100px) or CSS animations for hardware acceleration.

How do I handle animations for users who prefer reduced motion?

Use the prefers-reduced-motion media query to remove transform-based movement while keeping opacity and color transitions that aid comprehension. Reduced motion means gentler animation, not zero animation.