motion-principles

Provides timing, easing, and accessibility rules for UI animation across web and mobile platforms.

1|Updated Jul 19, 2026
One-click install
npx skills add https://github.com/leobbaroni/maestro --skill motion-principles-leobbaroni
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: motion-principles
Source: https://github.com/leobbaroni/maestro/tree/main/skills/maestro/library/genjutsu/_jutsu/motion-principles
Command: npx skills add https://github.com/leobbaroni/maestro --skill motion-principles-leobbaroni

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Choosing animation durations, easing curves, and enter/exit patterns is inconsistent across projects, and teams often ship janky or inaccessible motion. This Skill codifies motion design fundamentals so every animation follows proven timing, easing, and accessibility rules. ## Core Features & Use Cases - Timing and Easing Rules: Duration tables for micro-interactions, UI transitions, and page transitions, plus easing cheat sheets mapped to CSS, GSAP, Framer Motion, SwiftUI, and Compose. - Accessibility Enforcement: Mandatory prefers-reduced-motion handling with platform-specific APIs for web, SwiftUI, UIKit, and Compose. - Anti-Pattern Guards: Explicit "do not" rules covering layout-property animation, scale-to-zero, ease-in entries, and over-long durations, each with bad/good code pairs. - Use Case: When building a modal in React, load this Skill to get the correct spring config, an AnimatePresence enter/exit recipe, and the reduced-motion fallback in one pass. ## Quick Start Use the motion-principles skill to define the timing, easing, and reduced-motion behavior for the card entrance animation in my React app.

Frequently Asked Questions about motion-principles

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

FAQPage Schema
How do I choose the right animation duration for UI transitions?▼

Use 100-150ms for micro-interactions like hovers, 200-300ms for UI transitions like modals and drawers, and 300-500ms for page transitions. The more frequently an animation plays, the shorter and subtler it should be.

What easing should I use for element enter and exit animations?▼

Use ease-out or a spring for entering elements so they decelerate into place, and ease-in for exits so they accelerate away. Exits should always be shorter and more subtle than entries, often opacity-only.

How do I handle prefers-reduced-motion in CSS and JavaScript?▼

Use the @media (prefers-reduced-motion: reduce) query in CSS to collapse animation durations, or window.matchMedia('(prefers-reduced-motion: reduce)') in JavaScript to skip animations entirely. SwiftUI and Compose have equivalent environment APIs.

Why should I avoid animating width, height, top, and left?▼

Animating layout properties triggers a layout recalculation every frame, causing jank. Animate transform and opacity instead, since they are composite-only properties handled by the GPU.

GSAP vs Framer Motion for spring animations, which should I use?▼

Framer Motion has true spring physics via stiffness, damping, and mass parameters. GSAP approximates springs with elastic or back eases, or true physics through the paid InertiaPlugin. Choose based on your framework and licensing needs.