motion-craft

Generate compositor-only web UI animations with WAAPI and FLIP.

110|14|Updated May 12, 2026
One-click install
npx skills add https://github.com/EliasOulkadi/shokunin --skill motion-craft-eliasoulkadi
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: motion-craft
Source: https://github.com/EliasOulkadi/shokunin/tree/main/.pack/skills/motion-craft
Command: npx skills add https://github.com/EliasOulkadi/shokunin --skill motion-craft-eliasoulkadi

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve?

Motion Craft solves the problem of designing UI animations that feel responsive and intentional while avoiding jank and accessibility regressions.

Core Features & Use Cases

  • Animation decisioning: Choose when NOT to animate, define the purpose of the motion, and select appropriate easing and timing to match the UX scenario (e.g., modals, toasts, drawers, hover, page transitions).
  • Implementation guidance: Prefer compositor-friendly techniques (transform/opacity), use WAAPI for interruptible motion, and apply Scroll-Driven Animations (ScrollTimeline/ViewTimeline) and FLIP for layout transitions.
  • Production guardrails: Enforce reduced-motion support via prefers-reduced-motion, prevent banned patterns (like transition: all, ease-in for entering UI, scale(0) entries), and require a review table format (Before | After | Why).

Quick Start

Ask the AI to design a 250ms drawer enter animation using WAAPI or CSS transitions with strong ease-out, only transform/opacity, and includes a prefers-reduced-motion fallback.

Frequently Asked Questions about motion-craft

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

FAQPage Schema
How do I create web animations that don't cause layout jank or accessibility regressions?

To create performant web animations, you must use compositor-only properties like transform and opacity. This avoids layout jank and ensures smooth perceived responsiveness without harming accessibility.

How do I build scroll-driven reveals using WAAPI and ViewTimeline?

Scroll-driven reveals use WAAPI with ScrollTimeline or ViewTimeline to tie animation progress directly to scroll position. This produces native, interruptible scroll-driven motion without relying on heavy scroll event listeners.

What is the FLIP technique for layout transitions and how does it work?

The FLIP technique animates layout changes by recording First and Last positions, inverting the transform, and playing the transition to the final state. This enables smooth, compositor-friendly layout transitions without triggering expensive browser recalculations.

How should I handle prefers-reduced-motion for UI animations?

Handling prefers-reduced-motion requires providing mandatory fallbacks that disable or simplify motion. Implement explicit enter and exit asymmetry with strong custom easing, and ensure all animations respect this accessibility setting.

Why should I avoid ease-in for entering UI elements like modals and toasts?

Using ease-in for entering UI elements creates perceived sluggishness because the motion accelerates away from the user. Strong ease-out timing is required for entering components to communicate immediate responsiveness and intentional purpose.

Can I use CSS transitions for interruptible motion or do I need WAAPI?

CSS transitions are generally not interruptible, whereas WAAPI is the standard for interruptible motion. Using WAAPI ensures animations can be halted and reversed smoothly across common component patterns like drawers and page transitions.