emil-design-eng

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

Updated Aug 9, 2026
One-click install
npx skills add https://github.com/jwinar/carpet_gato --skill emil-design-eng-jwinar
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/jwinar/carpet_gato/tree/main/.claude/skills/emil-kowalski-design/emil-design-eng
Command: npx skills add https://github.com/jwinar/carpet_gato --skill emil-design-eng-jwinar

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 review and fix UI code so interactions feel responsive and natural. ## 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 Code Review: Produces a mandatory Before/After/Why markdown table identifying issues like transition: all, ease-in on UI elements, missing :active press states, and incorrect transform-origin on popovers. - Component & Gesture Guidance: Covers buttons, tooltips, drawers, drag-to-dismiss with velocity thresholds, stagger animations, reduced-motion accessibility, and performance rules (transform/opacity only, hardware acceleration). - 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 under 250ms, and setting transform-origin to the trigger. ## Quick Start Ask the assistant to review your UI component's animation code and list the issues in a Before/After table.

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 for entering elements, keep UI animations 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.

What easing curve should I use for dropdowns and modals?▼

Use a strong custom ease-out like cubic-bezier(0.23, 1, 0.32, 1) for entering elements such as dropdowns. For on-screen movement use ease-in-out cubic-bezier(0.77, 0, 0.175, 1), and never use ease-in for UI.

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

Use CSS transitions for predetermined animations since they run off the main thread and stay smooth under load. Use Framer Motion springs for interruptible gestures, but note its x/y shorthand props are not hardware-accelerated.

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 transform-origin to the trigger location, and never animate from scale(0); start from scale(0.95) with opacity 0.

When should I not animate a UI element at all?▼

Skip animation for actions repeated hundreds of times daily, such as keyboard shortcuts and command palette toggles. Frequent animations make interfaces feel slow; reserve animation for occasional or rare interactions.

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.