emil-design-eng

Reviews and improves UI animations, CSS transitions, and component interactions using design engineering principles.

Updated Jul 3, 2026
One-click install
npx skills add https://github.com/alex-jordan547/agent-setup --skill emil-design-eng-alex-jordan547
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/alex-jordan547/agent-setup/tree/main/archive/2026-09-10/emil-design-eng
Command: npx skills add https://github.com/alex-jordan547/agent-setup --skill emil-design-eng-alex-jordan547

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? UI code often ships with animations that feel sluggish, unnatural, or jarring — wrong easing curves, scale-from-zero entrances, keyboard actions that animate, and transitions that break under load. This Skill provides a systematic framework for reviewing and fixing these interaction details. ## 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). - Structured UI Review: Produces a Before/After/Why markdown table identifying issues like transition: all, ease-in on UI elements, missing :active states, and incorrect transform-origin on popovers. - Component Patterns: Covers concrete implementations for buttons, tooltips, drawers, toasts, drag gestures with momentum, clip-path reveals, and stagger animations. - Use Case: Paste a React component with a dropdown that feels slow, and receive a table of fixes — switching ease-in to a custom cubic-bezier(0.23, 1, 0.32, 1) ease-out, reducing duration from 400ms to 200ms, and setting the popover's transform-origin to its trigger. ## Quick Start Review the animation and interaction code in my dropdown component and suggest fixes in a Before/After table.

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 CSS animations feel more responsive?

Use ease-out or a custom cubic-bezier curve like cubic-bezier(0.23, 1, 0.32, 1) for entering elements, and keep UI animation durations under 300ms. Avoid ease-in, which delays initial movement and makes interfaces feel sluggish.

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, since springs maintain velocity when interrupted. Use CSS transitions for predetermined UI state changes that need to run off the main thread.

Why does my Framer Motion animation drop frames under load?

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

Should keyboard-triggered actions have animations?

No. Actions repeated hundreds of times daily, like command palette toggles, should never animate because animation makes them feel slow and disconnected. Raycast has no open or close animation for this reason.

How do I animate an element entering the DOM without JavaScript?

Use the CSS @starting-style rule to define the initial state, such as opacity 0 and translateY(100%), alongside a transition on the element. This replaces the React useEffect mounted-flag pattern where browser support allows.

What CSS properties are safe to animate for performance?

Only animate transform and opacity, which skip layout and paint and run on the GPU. Animating width, height, margin, or padding triggers all rendering steps, and changing CSS variables on a parent recalculates styles for all children.