emil-design-eng

Reviews UI code and applies animation, easing, and interaction design principles to CSS and React components.

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

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 Emil Kowalski's design engineering philosophy to review and improve UI code with concrete, opinionated fixes. ## Core Features & Use Cases - Structured UI Code Review: Produces Before/After/Why markdown tables identifying issues like transition: all, scale(0) entries, ease-in on UI elements, and missing :active press states. - Animation Decision Framework: Decides whether an element should animate at all based on usage frequency, then selects easing curves, durations (under 300ms for UI), and spring configurations. - Advanced CSS & Motion Techniques: Covers clip-path animations, gesture velocity-based dismissal, hardware-accelerated transforms, @starting-style entry animations, and reduced-motion accessibility. - Use Case: Paste a React dropdown component and receive a table of fixes: switching ease-in to a custom cubic-bezier(0.23, 1, 0.32, 1) ease-out, setting transform-origin to the trigger, and reducing duration from 400ms to 200ms. ## Quick Start Review my dropdown component's CSS animations and suggest improvements using the 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 CSS animations feel more responsive?▼

Use ease-out curves instead of ease-in, keep UI animations under 300ms, and specify exact properties rather than transition: all. Custom cubic-bezier curves like cubic-bezier(0.23, 1, 0.32, 1) feel stronger than built-in easings.

When should I use springs instead of duration-based animations?▼

Use springs for drag interactions with momentum, interruptible gestures, and elements that should feel alive. Springs maintain velocity when interrupted, while CSS keyframes restart from zero, making springs ideal for mid-gesture changes.

Should I animate elements triggered by keyboard shortcuts?▼

No. Keyboard-initiated actions repeat hundreds of times daily, and animation makes them feel slow and disconnected. Remove open/close animations entirely for high-frequency actions like command palettes.

Why does my Framer Motion animation drop frames under load?▼

Framer Motion's shorthand x/y/scale props run on the main thread via requestAnimationFrame. Use the full transform string like transform: translateX(100px) for hardware acceleration, or switch to CSS animations which run off the main thread.

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.