emil-design-eng

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

Updated Jul 30, 2026
One-click install
npx skills add https://github.com/mrestrepoj10/re-hear --skill emil-design-eng-mrestrepoj10
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/mrestrepoj10/re-hear/tree/main/.agents/skills/emil-design-eng
Command: npx skills add https://github.com/mrestrepoj10/re-hear --skill emil-design-eng-mrestrepoj10

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 those details in UI code. ## Core Features & Use Cases - Animation Decision Framework: Decide whether an element should animate at all based on usage frequency, then choose the right easing curve, duration, and technique (CSS transitions, springs, WAAPI). - Structured UI Reviews: Get Before/After/Why markdown tables identifying issues like transition: all, ease-in on UI elements, missing :active press states, and incorrect transform-origin on popovers. - Component Craft Guidance: Apply patterns for buttons, tooltips, drawers, toasts, drag gestures, stagger animations, and accessibility (prefers-reduced-motion, touch hover gating). - 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 Review my dropdown component's animation code and suggest improvements to make it feel more responsive.

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 animate only transform and opacity. Adding a subtle scale(0.97) on :active gives instant press feedback that makes the interface feel responsive.

What easing curve should I use for dropdowns and modals?

Use ease-out for elements entering the screen, such as cubic-bezier(0.23, 1, 0.32, 1). Avoid ease-in, which delays initial movement and feels sluggish. For drawers, an iOS-like curve cubic-bezier(0.32, 0.72, 0, 1) works well.

When should I use springs instead of CSS transitions?

Use springs for drag interactions with momentum, interruptible gestures, and elements that should feel alive, since springs maintain velocity when interrupted. Use CSS transitions for predetermined UI state changes that need to run off the main thread.

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.

Why should popovers not scale from center?

Popovers are anchored to a trigger, so scaling from center looks disconnected. Set transform-origin to the trigger location, for example via var(--transform-origin). Modals are the exception and should stay centered.

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.