emil-design-eng

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

Updated Aug 19, 2026
One-click install
npx skills add https://github.com/rithm84/Manor --skill emil-design-eng-rithm84
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/rithm84/Manor/tree/main/.agents/skills/emilkowalski-design/emil-design-eng
Command: npx skills add https://github.com/rithm84/Manor --skill emil-design-eng-rithm84

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 based on usage frequency, then selects the correct easing curve, duration, and technique (CSS transitions, springs, WAAPI, or clip-path). - Structured UI Code Review: Produces a mandatory Before/After/Why markdown table covering issues like transition: all, ease-in on UI elements, missing :active press states, and incorrect transform-origin on popovers. - Performance and Accessibility Guidance: Enforces GPU-friendly transform/opacity animations, hardware acceleration in Framer Motion, prefers-reduced-motion support, and touch-safe hover states. - Use Case: Paste a React dropdown component and receive a table of concrete fixes, such as replacing a 400ms ease-in transition with a 200ms custom ease-out curve and origin-aware scaling. ## Quick Start Ask the assistant to review your UI component's animation code and list what feels off with before-and-after fixes.

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 durations under 300ms, and add a subtle scale(0.97) press state on buttons. Custom cubic-bezier curves like cubic-bezier(0.23, 1, 0.32, 1) feel stronger than built-in CSS easings.

What easing should I use for dropdown and modal animations?

Use ease-out for elements entering the screen and ease-in-out for elements moving on screen. Never use ease-in for UI, since its slow start makes interfaces feel sluggish. Keep dropdowns at 150-250ms and modals at 200-500ms.

CSS transitions vs keyframes for UI animations?

Use CSS transitions for dynamic, rapidly triggered UI because they can be interrupted and retargeted mid-animation. Keyframes restart from zero on interruption, which causes visible jumps when toasts or toggles fire repeatedly.

Is Framer Motion hardware accelerated for x and y props?

No. Framer Motion's shorthand x, y, and scale props run on the main thread via requestAnimationFrame. For hardware acceleration, animate the full transform string such as transform: translateX(100px), or use CSS animations under heavy load.

When should I not animate a UI element?

Skip animation for actions repeated hundreds of times daily, such as keyboard shortcuts and command palettes, since animation makes them feel delayed. Reduce or remove animation for elements seen tens of times per day like hover effects.

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

Use the prefers-reduced-motion media query or a useReducedMotion hook to remove position and movement animations while keeping opacity and color transitions. Reduced motion means gentler animation, not zero animation.