emil-design-eng

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

Updated Mar 18, 2026
One-click install
npx skills add https://github.com/pgoell/pgoell-claude-tools --skill emil-design-eng-pgoell
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/pgoell/pgoell-claude-tools/tree/main/plugins/frontend-design/skills/emil-design-eng
Command: npx skills add https://github.com/pgoell/pgoell-claude-tools --skill emil-design-eng-pgoell

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Interfaces often feel sluggish or unpolished because of subtle animation mistakes: wrong easing curves, excessive durations, incorrect transform origins, and non-interruptible keyframes. This Skill encodes Emil Kowalski's design engineering philosophy to catch and fix those invisible details in UI code. ## Core Features & Use Cases - Structured UI Reviews: Audits animation and interaction code against a checklist covering easing, duration, transform-origin, stagger, and press feedback, outputting a Before/After/Why markdown table. - Animation Decision Framework: Guides whether to animate at all, which easing curve to pick, how long it should run, and when to use springs versus CSS transitions. - Component-Level Guidance: Covers buttons, popovers, tooltips, gestures, clip-path patterns, performance rules, and reduced-motion accessibility via seven reference documents. - Use Case: Paste a dropdown component with transition: all 300ms ease-in and receive a table of concrete fixes, such as switching to ease-out at 150-250ms and setting the transform origin to the trigger. ## Quick Start Ask the assistant to review your React or CSS component's animations and interaction polish using the design engineering checklist.

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 durations under 300ms, and add press feedback like transform: scale(0.97) on :active. Avoid ease-in, which delays initial movement and makes interfaces feel sluggish.

When should I use CSS transitions versus keyframes?

Use CSS transitions for any UI that can be triggered rapidly or interrupted, since transitions retarget smoothly mid-animation. Keyframes restart from zero on interruption, so reserve them for predetermined, non-interactive sequences.

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 keep transform-origin: center.

Why do Framer Motion animations drop frames under load?

Framer Motion's x, y, and scale shorthand props run on the main thread via requestAnimationFrame. Use the full transform string like translateX(100px) for hardware acceleration, or switch to CSS animations which run off the main thread.

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

Gate motion behind the prefers-reduced-motion media query, removing transform-based movement while keeping opacity and color transitions that aid comprehension. Also gate hover effects behind (hover: hover) and (pointer: fine) to avoid false triggers on touch devices.