design-motion-principles

Builds and audits UI animations using context-weighted motion design philosophies.

4|Updated May 16, 2026
One-click install
npx skills add https://github.com/reason-machines/design-skills --skill design-motion-principles-reason-machines
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: design-motion-principles
Source: https://github.com/reason-machines/design-skills/tree/main/skills/design-motion-principles
Command: npx skills add https://github.com/reason-machines/design-skills --skill design-motion-principles-reason-machines

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Teams struggle to decide when and how to animate UI elements, often shipping inconsistent, excessive, or AI-generated-looking motion that hurts usability and accessibility. ## Core Features & Use Cases - Create Mode: Generates animated components (modals, toasts, dropdowns) in React with Framer Motion or vanilla CSS, with easing, duration, and reduced-motion support matched to your project type. - Audit Mode: Scans a codebase for motion gaps and anti-patterns (pulsing indicators, hover-scale-everything, stagger spam, blur entrances), then outputs a branded HTML report or terminal markdown report. - Context-Aware Lens Weighting: Weights three philosophies — Emil Kowalski (restraint), Jakub Krehel (polish), Jhey Tompkins (playful) — based on whether the project is a dashboard, kids app, or marketing site. - Use Case: Ask it to audit a SaaS dashboard; it flags a modal missing AnimatePresence exit animations and hover-scale on table rows, then delivers a severity-ranked report with fixes. ## Quick Start Ask the assistant to audit the motion design in this project and report any animation quality issues.

Frequently Asked Questions about design-motion-principles

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add enter and exit animations to a React modal?▼

Wrap the conditional modal in AnimatePresence and use Framer Motion initial, animate, and exit props with opacity and scale. A duration around 200ms with cubic-bezier(0.16, 1, 0.3, 1) easing gives a fast, polished result.

How do I audit animations in my codebase for quality issues?▼

Run the audit mode, which scans for motion gaps and anti-patterns like pulsing indicators, hover-scale on non-pressable elements, and excessive stagger. It outputs an HTML report by default or terminal markdown with the --terminal flag.

What are common AI-generated animation anti-patterns?▼

Common AI slop patterns include pulsing loading indicators everywhere, hover-scale on every element, stagger delays over 50ms, blur-based entrances, bouncy springs on destructive actions, and animating static page headers on mount.

Does Framer Motion support reduced motion accessibility?▼

Yes. Use the useReducedMotion hook to set transition duration to zero when the user prefers reduced motion. In CSS, wrap animations in a @media (prefers-reduced-motion: reduce) block that collapses durations.

Which CSS properties are safe to animate for performance?▼

Animate only transform and opacity, which are GPU-accelerated. Animating width, height, or top/left triggers layout reflow. Use will-change only during the animation and remove it afterward.

When should I avoid adding animation to a component?▼

Avoid animation on high-frequency utility interactions, destructive actions, and static content that renders on page load. The Emil Kowalski lens asks whether the element should animate at all before choosing an easing or duration.