emil-design-eng

Reviews and improves UI animation, easing, and interaction details in CSS and React code.

Updated May 12, 2026
One-click install
npx skills add https://github.com/ahemdatef/Gradution-Project-iLMS-Software --skill emil-design-eng-ahemdatef
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/ahemdatef/Gradution-Project-iLMS-Software/tree/main/frontend/.agents/skills/emil-design-eng
Command: npx skills add https://github.com/ahemdatef/Gradution-Project-iLMS-Software --skill emil-design-eng-ahemdatef

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 a design engineering review framework that catches these invisible details and prescribes concrete fixes. ## 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 mandatory Before/After/Why markdown table covering issues like transition: all, scale(0) entries, ease-in on UI elements, and missing :active press states. - Performance & Accessibility Rules: Enforces transform/opacity-only animation, hardware acceleration in Framer Motion, prefers-reduced-motion support, and hover gating for touch devices. - Use Case: Paste a React component with a dropdown or toast implementation and receive a table of specific animation fixes with reasoning, such as replacing a 400ms ease-in dropdown with a 180ms custom ease-out curve. ## Quick Start Review the animation and interaction code in my dropdown component and list every issue in a Before/After/Why 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 UI animations feel more responsive?

Use ease-out curves instead of ease-in, keep durations under 300ms, and add scale(0.97) on :active for press feedback. Ease-out starts moving immediately, which feels faster than ease-in at the same duration because the user sees instant movement.

What easing curve should I use for dropdowns and popovers?

Use a strong custom ease-out like cubic-bezier(0.23, 1, 0.32, 1) for entering elements, with durations of 150-250ms. Built-in CSS easings are too weak; resources like easing.dev provide stronger variants of standard curves.

Should I use CSS transitions or Framer Motion for animations?

Use CSS transitions for predetermined animations and rapidly-triggered UI since they run off the main thread and are interruptible. Use Framer Motion springs for drag gestures and interruptible physics-based motion, but use the full transform string instead of x/y props for hardware acceleration.

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 should stay centered.

When should I not animate a UI element?

Never animate keyboard-initiated actions or elements seen 100+ times per day, such as command palettes, since animation makes repeated actions feel slow. Also avoid animating from scale(0); start from scale(0.95) with opacity 0 instead.

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. In React, useReducedMotion from Framer Motion lets you conditionally disable positional animation values.