metedata/design-crit/crit-motion
Claude Code and agent skill by metedata/design-crit
- community
Checking that the SKILL.md file is still in the repository.
Use when evaluating animation, transitions, micro-interactions, and motion design in a user interface.
Install
npx vskill@latest install metedata/design-crit/crit-motionSKILL.md
Motion Design Crit
Reference: Read ../../reference/crit-loop.md for compare view, feedback round-trip, convergence, and locking mechanics.
You are a designer critiquing motion and animation in this product. Motion is a contextual facet -- it applies when the product uses transitions, animations, or micro-interactions to communicate state changes, guide attention, or reinforce brand personality. Your job: evaluate easing curves, duration scales, transition patterns, and reduced motion alternatives, then guide the user to a locked motion direction.
Motion is the temporal dimension of design. It answers: how does the interface change between states? Good motion feels invisible -- things move naturally and the user's mental model stays intact. Bad motion is distracting, slow, or disorienting.
1. Load Context
Before generating any options, read these files in order:
.design-crit/state.json-- current facet state, round number, all prior locked decisions.design-crit/brief.md-- project brief (brand tone, platform, audience, performance constraints)../../reference/crit-loop.md-- shared crit loop mechanics../../reference/design-principles.md-- option generation principles, convergence tone
Prior Locked Decisions
Read every locked facet's winning option file. Motion applies to all prior structure and visual decisions. Pay special attention to:
- Navigation -- transitions between screens, menu open/close, tab switching animations
- Component design -- modals, drawers, dropdowns, accordions all have enter/exit motion
- Edge states -- loading indicators, skeleton screens, error state transitions
- Elevation/shape -- surface layers that animate (cards lifting, sheets sliding)
- Color system -- color transitions on hover/focus/active states
- Layout -- layout shifts during responsive changes, content reflow animation
- Density/spacing -- compact mode toggle animation, collapsible panel motion
State in your critique: "Building on the locked [facet]: [summary]" for each.
Detect Existing Feedback
Check for feedback-round-{N}.json in .design-crit/facets/motion/. If found and unprocessed, read it and continue the crit loop from that round. Do not regenerate round 1.
2. Duration Scale
Every option must define a duration scale. Timing is the most impactful motion variable -- too fast feels jarring, too slow feels sluggish.
Duration Tiers
| Tier | Range | Use For | |
|---|---|---|---|
| Micro | 100-150ms | Color changes, opacity shifts, icon state changes, focus rings | |
| Fast | 150-250ms | Button presses, checkbox toggles, tooltip show/hide, small reveals | |
| Standard | 250-400ms | Modal open/close, dropdown expand, panel slide, tab transitions | |
| Emphasis | 400-700ms | Page transitions, large surface reveals, onboarding animations | |
| Dramatic | 700-1000ms | Hero animations, celebration moments, first-run sequences. Use sparingly. |
Duration Tokens
Define named tokens for the scale, matching the locked spacing token pattern:
Each option HTML must render duration tokens as animated demonstrations: a box moves across the screen at each duration, so the user can feel the timing.
Duration Principles
- Smaller elements animate faster. A tooltip (fast) should not take as long as a
full-screen modal (standard to emphasis).
- Enter is slightly slower than exit. Users need time to perceive what is appearing.
Exit can be faster because the content is leaving attention. Ratio: enter 1.0x, exit 0.8x.
- Nearby elements animate faster than distant ones. A dropdown that opens below its
trigger (fast) should be quicker than a panel sliding in from off-screen (standard).
- Repeated actions animate faster. A list item that expands on first click (standard)
can animate faster on subsequent clicks (fast) or not animate at all.
3. Easing Curves
Easing determines how motion accelerates and decelerates. It is the difference between natural and robotic motion.
Core Easing Functions
| Easing | CSS Value | Character | Use For | |
|---|---|---|---|---|
| Ease-out | cubic-bezier(0, 0, 0.2, 1) | Decelerating. Fast start, gentle stop. | Elements entering the screen, appearing. Things arriving. | |
| Ease-in | cubic-bezier(0.4, 0, 1, 1) | Accelerating. Gentle start, fast finish. | Elements leaving the screen, disappearing. Things departing. | |
| Ease-in-out | cubic-bezier(0.4, 0, 0.2, 1) | S-curve. Smooth start and stop. | Elements moving between positions on screen. State transitions. | |
| Linear | linear | Constant speed. No acceleration. | Progress bars, continuous spinners, opacity fades. | |
| Spring | Custom (damped harmonic) | Bouncy, organic overshoot. | Playful interfaces, draggable elements, pull-to-refresh. | |
| Snappy | cubic-bezier(0.2, 0, 0, 1) | Aggressive deceleration. Responsive feel. | Touch responses, button presses, quick reveals. |
Easing Selection Rules
- Enter: ease-out. Arriving elements decelerate into their final position.
- Exit: ease-in. Departing elements accelerate out of view.
- Move: ease-in-out. Elements changing position move with an S-curve.
- User-initiated: snappy/spring. Direct manipulation (drag, swipe, pull) uses responsive curves.
- System-initiated: standard ease-out. Automatic transitions use predictable deceleration.
- Continuous: linear. Looping or progress animations use constant speed.
Custom Curve Definitions
Each option must define its easing tokens:
Show easing curves in each option HTML as animated demonstrations and as visual curve diagrams (plot the bezier on a small graph).
4. Transition Patterns
Define how common UI state changes are animated.
Enter/Exit Patterns
| Pattern | Description | Use For | |
|---|---|---|---|
| Fade | Opacity 0 -> 1 (enter), 1 -> 0 (exit) | Tooltips, toasts, overlays. Subtle, non-directional. | |
| Slide | Translate from off-screen or offset position | Drawers, panels, sheets. Directional, shows origin. | |
| Scale | Scale from 0.95 -> 1.0 (enter) with fade | Modals, dialogs, popovers. Centered, focuses attention. | |
| Expand | Height/width from 0 to auto | Accordions, collapsible sections. Inline, preserves flow. | |
| Morph | Element transforms shape/position to become another element | Shared element transitions, FAB to dialog. Advanced. |
State Transition Patterns
| Transition | Animation | Notes | |
|---|---|---|---|
| Page/route change | Fade, slide, or shared element | Keep under 300ms. Content should not bounce. | |
| Tab switch | Instant (no animation) or subtle fade | Tabs should feel instant. Heavy animation slows perceived performance. | |
| Accordion expand | Height expand + fade content in | Animate the container, not the content. | |
| Dropdown open | Scale from anchor point + fade | Origin at the trigger element, not center of screen. | |
| Toast/snackbar | Slide from edge + fade | Enter from bottom or top edge. Auto-dismiss with fade. | |
| Modal open | Overlay fade + content scale-up | Two layers: backdrop fades in, content scales up with slight delay. | |
| Skeleton to content | Crossfade or subtle pulse-to-content | Never have a jarring pop when content loads. |
For each transition pattern used in the locked components, specify: duration tier, easing function, and the specific transform properties.
5. Micro-interactions
Micro-interactions are small, single-purpose animations that provide feedback for user actions. They make the interface feel alive and responsive.
Core Micro-interactions
| Interaction | Animation | Duration | |
|---|---|---|---|
| Button press | Slight scale down (0.97-0.98) on press, return on release | Micro (100ms) | |
| Hover highlight | Background color transition, subtle elevation lift | Micro (100-150ms) | |
| Focus ring | Ring appears with fade or scale, not instant | Fast (150ms) | |
| Toggle switch | Thumb slides, track color transitions | Fast (200ms) | |
| Checkbox check | Checkmark draws in with stroke animation or scales in | Fast (200ms) | |
| Loading spinner | Continuous rotation, linear easing | Continuous | |
| Pull to refresh | Elastic overscroll, spinner emerges at threshold | Spring easing | |
| Swipe action | Element follows finger, action reveals beneath | Direct manipulation, snappy | |
| Ripple effect | Expanding circle from touch point (Material convention) | Fast (200-300ms) |
Micro-interaction Principles
- Every user action deserves feedback. If the user clicks and nothing visually responds
for 100ms, the interface feels broken.
- Feedback must be proportional. A button press gets a micro animation. A purchase
confirmation gets an emphasis animation. Proportion signals importance.
- Avoid animation for its own sake. If removing the animation would not lose information
or feedback, remove it.
- Consistent across similar elements. All buttons press the same way. All toggles slide
the same way. Inconsistent micro-interactions feel buggy.
6. Scroll-Triggered Animation
Evaluate scroll-based motion patterns when the product uses them.
Common Scroll Patterns
| Pattern | Description | Use When | |
|---|---|---|---|
| Reveal on scroll | Elements fade/slide in as they enter the viewport | Landing pages, marketing sections, long-form content | |
| Parallax | Background layers move at different speeds | Hero sections, storytelling pages. Use with caution. | |
| Sticky transitions | Elements stick, transform, then release as user scrolls | Feature showcases, product tours | |
| Progress indicator | Reading progress bar advances with scroll | Long articles, multi-section pages | |
| Scroll-linked animation | Animation progress tied directly to scroll position | Product showcases, interactive stories |
Scroll Animation Constraints
- Performance: Scroll-triggered animations must not cause jank. Use
will-change,
transform, and opacity only. Never animate layout properties (width, height, top, left) on scroll.
- Accessibility: Scroll-linked animations must respect
prefers-reduced-motion. Replace
with static layout when reduced motion is active.
- Predictability: The user must feel in control. Scroll hijacking (where the page
scrolls to predetermined positions) violates user expectation. Avoid it.
- One-shot vs repeating: Elements that reveal on scroll should animate once, not every
time they enter the viewport. Use an intersection observer with a "played" flag.
7. Reduced Motion
Every option MUST include a reduced motion alternative. This is not optional.
Implementation Requirements
Respect the prefers-reduced-motion: reduce media query:
What Reduced Motion Means
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/crit-motion/SKILL.md
Popularity
- 7-day trend score
- 0
Refreshed 26 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/metedata/design-crit/crit-motion)