emil-design-eng

Reviews and improves UI animations, CSS transitions, and component interactions using design engineering principles.

Updated Jul 14, 2026
One-click install
npx skills add https://github.com/quanthubbr/tron-claude-config --skill emil-design-eng-quanthubbr
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/quanthubbr/tron-claude-config/tree/main/managed/skills/emilkowalski/emil-design-eng
Command: npx skills add https://github.com/quanthubbr/tron-claude-config --skill emil-design-eng-quanthubbr

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? UI code often ships with sluggish animations, wrong easing curves, and unresponsive components that make interfaces feel cheap. This Skill encodes Emil Kowalski's design engineering philosophy to review and fix animation, transition, and interaction details in frontend code. ## Core Features & Use Cases - Animation Decision Framework: Determines whether an element should animate at all, which easing curve to use, and how fast it should run based on usage frequency and purpose. - Structured UI Code Review: Outputs Before/After/Why markdown tables flagging issues like transition: all, scale(0) entries, ease-in on UI elements, and missing :active states. - Component Interaction Patterns: Provides concrete CSS and Framer Motion patterns for popovers, tooltips, drawers, toasts, drag gestures, springs, and clip-path animations. - Use Case: Paste a React dropdown component and receive a table of fixes: replacing ease-in with a custom cubic-bezier(0.23, 1, 0.32, 1) ease-out, shortening duration to 200ms, and setting transform-origin to the trigger. ## Quick Start Ask the assistant to review your UI component's animation and transition code using Emil Kowalski's design engineering principles.

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 curves for entering elements, keep UI durations under 300ms, and replace built-in easings with custom cubic-bezier curves like cubic-bezier(0.23, 1, 0.32, 1). Avoid ease-in, which delays initial movement and feels sluggish.

What easing should I use for dropdown and modal animations?▼

Dropdowns and selects should use ease-out at 150-250ms since they enter the screen. Modals and drawers can run 200-500ms with ease-out or an iOS-like drawer curve cubic-bezier(0.32, 0.72, 0, 1). Never use ease-in for UI elements.

Should I use CSS transitions or Framer Motion for 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 motion, but note its x/y shorthand props are not hardware-accelerated.

Why does my popover animation look wrong when scaling in?▼

Popovers default to transform-origin: center, which makes them scale from the middle instead of their trigger. Set transform-origin to the trigger location, 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 seen 100+ times per day, especially keyboard-initiated ones like command palettes. Animation on high-frequency actions makes the interface feel slow and disconnected from user input.

How do I handle animations for users with reduced motion preferences?▼

Wrap movement animations in a prefers-reduced-motion media query and remove transform-based motion while keeping opacity and color transitions. In React, use useReducedMotion to conditionally disable positional animation values.