emil-design-eng

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

1|Updated Jul 8, 2026
One-click install
npx skills add https://github.com/fayazara/bangalore.fyi --skill emil-design-eng-fayazara
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/fayazara/bangalore.fyi/tree/main/.agents/skills/emil-design-eng
Command: npx skills add https://github.com/fayazara/bangalore.fyi --skill emil-design-eng-fayazara

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? UI code often ships with subtle animation mistakes—ease-in curves, scale(0) entrances, transition: all, missing press feedback—that compound into interfaces feeling sluggish and unpolished. This Skill applies Emil Kowalski's design engineering philosophy to catch and fix those details. ## Core Features & Use Cases - Animation Decision Framework: Determines whether an element should animate at all, which easing curve to use, and how long it should run based on interaction frequency and purpose. - Structured UI Review: Audits UI code against a checklist (transition: all, ease-in usage, transform-origin on popovers, keyboard-triggered animations) and outputs a Before/After/Why markdown table. - Component Interaction Patterns: Provides concrete CSS and Motion recipes for buttons, popovers, tooltips, drawers, toasts, drag gestures, springs, clip-path reveals, and stagger animations. - Use Case: Paste a React dropdown component and receive a table of fixes—switching ease-in to a custom ease-out curve, setting transform-origin to the trigger, and reducing duration to under 250ms. ## Quick Start Ask the assistant to review your UI component's animation code and suggest improvements based on design engineering principles.

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 instead of ease-in, keep durations under 300ms, and add transform: scale(0.97) on :active for press feedback. Custom cubic-bezier curves like cubic-bezier(0.23, 1, 0.32, 1) feel stronger than built-in CSS easings.

When should I use spring animations instead of CSS transitions?▼

Use springs for drag interactions with momentum, interruptible gestures, and elements that should feel alive. Use CSS transitions for predetermined UI animations since they run off the main thread and stay smooth under load.

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 var(--radix-popover-content-transform-origin) for Radix UI or var(--transform-origin) for Base UI. Modals are the exception and stay centered.

Should I animate keyboard-triggered actions like command palettes?▼

No. Actions repeated hundreds of times daily, like command palette toggles or keyboard shortcuts, should have no animation. Animation makes frequent actions feel slow and disconnected from user input.

Why do Framer Motion animations drop frames during page load?▼

Framer Motion's shorthand x/y/scale props run on requestAnimationFrame on the main thread, so they drop frames when the browser is busy. Use the full transform string like transform: translateX(100px) for hardware acceleration, or switch to CSS animations.

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.