emil-design-eng

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

3|Updated Apr 20, 2026
One-click install
npx skills add https://github.com/langgenius/due-date-hq-jwl --skill emil-design-eng-langgenius
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/langgenius/due-date-hq-jwl/tree/main/.claude/skills/emil-design-eng
Command: npx skills add https://github.com/langgenius/due-date-hq-jwl --skill emil-design-eng-langgenius

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Interfaces often feel sluggish or unpolished because of subtle animation mistakes: wrong easing curves, excessive durations, non-interruptible keyframes, and transforms that ignore real-world physics. This Skill encodes Emil Kowalski's design engineering philosophy to help you diagnose and fix those invisible details in UI code. ## Core Features & Use Cases - Animation Decision Framework: Decide 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 Code Review: Get Before/After/Why markdown tables that pinpoint issues like transition: all, scale(0) entries, ease-in on UI elements, and missing :active press states. - Concrete Implementation Patterns: Apply ready-made techniques for springs, clip-path reveals, gesture velocity dismissal, staggered entrances, @starting-style entry animations, and reduced-motion accessibility. - Use Case: Paste a dropdown or modal component and receive a table of fixes, such as replacing a 400ms ease-in transition with a 200ms custom ease-out curve and an origin-aware popover scale. ## Quick Start Ask the assistant to review your button, popover, or drawer component's CSS and animation code for polish and responsiveness issues.

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 for entering elements, keep UI animations under 300ms, and add transform: scale(0.97) on :active for press feedback. Avoid ease-in, which delays initial movement and makes interfaces feel sluggish.

What easing curve should I use for dropdowns and modals?

Use a strong custom ease-out like cubic-bezier(0.23, 1, 0.32, 1) for entering elements such as dropdowns. For on-screen movement use ease-in-out, and never use ease-in for UI animations since it starts slow.

Should I use CSS transitions or keyframes for UI animations?

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

Does Framer Motion hardware accelerate 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 like transform: translateX(100px) 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. Reduced motion means gentler animation, not zero animation.

When should I not animate a UI element at all?

Skip animation for actions repeated hundreds of times daily, such as keyboard shortcuts and command palette toggles. Frequent animation makes these interactions feel slow and disconnected from user input.