emil-design-eng

Reviews and improves UI animation, easing, and interaction code using design engineering principles.

Updated Apr 9, 2026
One-click install
npx skills add https://github.com/ivaylo91/Shopping-Mobile-App --skill emil-design-eng-ivaylo91
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/ivaylo91/Shopping-Mobile-App/tree/main/.agents/skills/emil-design-eng
Command: npx skills add https://github.com/ivaylo91/Shopping-Mobile-App --skill emil-design-eng-ivaylo91

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Interfaces often feel sluggish or unpolished because of subtle animation mistakes: wrong easing curves, excessive durations, scale-from-zero entrances, and non-interruptible keyframes. This Skill encodes Emil Kowalski's design engineering philosophy to help you diagnose and fix these invisible details in UI code. ## Core Features & Use Cases - Animation Decision Framework: Determines whether an element should animate at all, which easing curve to use, and how long it should run based on interaction frequency and purpose. - Structured UI Code Review: Produces Before/After/Why markdown tables identifying issues like transition: all, ease-in on UI elements, missing :active states, and incorrect transform-origin on popovers. - Component-Level Guidance: Covers springs, clip-path animations, drag gestures with velocity-based dismissal, stagger timing, performance rules (transform/opacity only), and accessibility via prefers-reduced-motion. - Use Case: Paste a React or CSS component with a dropdown or toast animation and receive a table of concrete fixes with reasoning, such as replacing a 400ms ease-in transition with a 200ms custom ease-out curve. ## Quick Start Review my dropdown component's CSS animations and tell me what to fix to make it feel more responsive.

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 CSS animations feel more responsive?

Use ease-out or a strong custom cubic-bezier curve for entering elements, keep UI durations under 300ms, and specify exact transition properties instead of `transition: all`. Ease-out shows immediate movement, which makes the interface feel faster at the same duration.

What easing should I use for dropdown and popover animations?

Use ease-out for elements entering the screen, since ease-in delays initial movement and feels sluggish. Prefer custom curves like cubic-bezier(0.23, 1, 0.32, 1) over built-in CSS easings, and keep dropdown durations between 150-250ms.

Should I use CSS transitions or Framer Motion for UI animations?

Use CSS transitions for predetermined animations and rapidly triggered UI, since they run off the main thread and are interruptible. Use Framer Motion springs for drag gestures and interruptible physics-based motion, but use the full transform string rather than x/y shorthand for hardware acceleration.

Why does my popover animation look wrong when it opens?

The default `transform-origin: center` makes popovers scale from the middle instead of their trigger. Set it to the trigger location using Radix UI's `--radix-popover-content-transform-origin` variable, and start from scale(0.95) with opacity 0 rather than scale(0).

When should I not animate a UI element?

Skip animation for actions users trigger hundreds of times daily, such as keyboard shortcuts and command palettes, since animation makes them feel delayed. Also avoid animating keyboard-initiated actions entirely, and respect prefers-reduced-motion by removing movement while keeping opacity transitions.