emil-design-eng

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

1|Updated Aug 6, 2026
One-click install
npx skills add https://github.com/luce12/agent-dev-workflow --skill emil-design-eng-luce12
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/luce12/agent-dev-workflow/tree/main/toolkits/emil-design-eng
Command: npx skills add https://github.com/luce12/agent-dev-workflow --skill emil-design-eng-luce12

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? UI code often ships with subtle animation and interaction flaws—sluggish easing, wrong transform origins, non-interruptible keyframes—that make interfaces feel unpolished. This Skill encodes Emil Kowalski's design engineering philosophy to review and fix those details. ## Core Features & Use Cases - Animation Decision Framework: Decides 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 press states. - Concrete Implementation Patterns: Covers springs, clip-path reveals, gesture velocity dismissal, @starting-style entry animations, and hardware-accelerated transforms. - Use Case: Paste a dropdown or toast component and get a table of fixes—correct easing curves, sub-300ms durations, origin-aware popover scaling, and interruptible CSS transitions. ## Quick Start Review my dropdown component's CSS animations and suggest improvements using the design engineering skill.

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 UI animations under 300ms, and add transform: scale(0.97) on :active for press feedback. Avoid ease-in, which delays initial movement and feels 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 and modals. Built-in CSS easings are too weak; resources like easing.dev offer stronger variants.

Should I use CSS transitions or keyframes for dynamic UI?▼

Use CSS transitions for rapidly triggered, interruptible UI like toasts and toggles because they retarget smoothly mid-animation. Keyframes restart from zero on interruption, causing visible jumps.

Does Framer Motion hardware-accelerate x and y props?▼

No. Framer Motion's shorthand x, y, and scale props run via requestAnimationFrame on the main thread and can drop frames under load. Use the full transform string like transform: "translateX(100px)" for hardware acceleration.

When should I not animate a UI element?▼

Never animate keyboard-initiated actions or elements seen 100+ times daily, such as command palettes. Frequent animations make interfaces feel slow; remove or drastically reduce them for high-frequency interactions.

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

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