emil-design-eng

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

4|Updated Jul 13, 2024
One-click install
npx skills add https://github.com/PunGrumpy/og-tester --skill emil-design-eng-pungrumpy
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: emil-design-eng
Source: https://github.com/PunGrumpy/og-tester/tree/main/.agents/skills/emil-design-eng
Command: npx skills add https://github.com/PunGrumpy/og-tester --skill emil-design-eng-pungrumpy

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 a markdown table showing problematic patterns, corrected code, and the reasoning behind each fix. - Concrete Implementation Patterns: Covers springs, clip-path animations, gesture velocity-based dismissal, popover transform origins, stagger delays, and performance rules like animating only transform and opacity. - Use Case: Paste a dropdown component with transition: all 300ms ease-in and receive a corrected version using a custom ease-out curve at 200ms with origin-aware scaling. ## Quick Start Ask the assistant to review your button, popover, or toast component code for animation and interaction 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 instead of ease-in, keep durations under 300ms, and add scale(0.97) press feedback on buttons. Ease-out starts moving immediately, which makes the interface feel faster at the same duration.

What easing curve should I use for dropdown animations?

Use a strong custom ease-out like cubic-bezier(0.23, 1, 0.32, 1) for elements entering the screen. Built-in CSS easings are too weak, and ease-in makes dropdowns feel sluggish by delaying initial movement.

Should I use CSS transitions or keyframes for toast notifications?

Use CSS transitions for rapidly triggered elements like toasts because they can be interrupted and retargeted mid-animation. Keyframes restart from zero when retriggered, causing visible jumps.

Why does Framer Motion drop frames during page load?

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

When should I not animate a UI element?

Never animate keyboard-initiated actions or elements seen 100+ times per day, such as command palette toggles. Frequent animations make repeated actions feel slow and disconnected from user input.

How do I handle animations for users with reduced motion preferences?

Wrap movement animations in a prefers-reduced-motion media query and keep only opacity and color transitions. Reduced motion means fewer and gentler animations, not zero animation.