emil-design-eng

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

Updated Sep 3, 2024
One-click install
npx skills add https://github.com/eminboydak/duckTerm --skill emil-design-eng-eminboydak
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/eminboydak/duckTerm/tree/main/.agents/skills/emil-design-eng
Command: npx skills add https://github.com/eminboydak/duckTerm --skill emil-design-eng-eminboydak

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Interfaces often feel sluggish or unpolished because of subtle animation mistakes: wrong easing curves, excessive durations, scale-from-zero entrances, and non-interruptible keyframes. This Skill encodes Emil Kowalski's design engineering philosophy to help you diagnose and fix these issues in UI code. ## 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. - UI Code Review with Before/After Tables: Reviews component code and outputs structured markdown tables showing concrete fixes for transitions, transforms, and transform-origins. - Component Interaction Patterns: Provides implementation guidance for buttons, popovers, tooltips, drawers, toasts, drag gestures, and stagger animations using CSS transitions, springs, clip-path, and Framer Motion. - Use Case: Paste a dropdown component with transition: all 300ms ease-in and receive a table of fixes: switch to ease-out with a custom cubic-bezier curve, reduce duration to 150-250ms, and set transform-origin to the trigger. ## Quick Start Review my Svelte dropdown component's animation code and suggest improvements to its easing, duration, and transform-origin.

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) press feedback on buttons. Custom cubic-bezier curves like cubic-bezier(0.23, 1, 0.32, 1) feel stronger than built-in CSS easings.

What easing should I use for dropdown and popover animations?

Use ease-out for entering elements since it starts fast and feels responsive. Never use ease-in for UI animations because the slow start makes interfaces feel sluggish. Keep dropdown durations between 150-250ms.

Should I use CSS transitions or Framer Motion for animations?

Use CSS transitions for predetermined animations since they run off the main thread and stay smooth under load. Use Framer Motion springs for interruptible gestures, but note that x/y shorthand props are not hardware-accelerated; use full transform strings instead.

Why does my popover animation look wrong when opening?

The default transform-origin: center makes popovers scale from the middle instead of their trigger. Set transform-origin to the trigger location, and never animate from scale(0); start from scale(0.95) with opacity 0 instead.

When should I not animate a UI element at all?

Skip animation for actions performed 100+ times daily, such as keyboard shortcuts and command palette toggles. Animation on keyboard-initiated actions makes them feel slow and disconnected from user input.

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.