ワンクリックで
crit-motion
Use when evaluating animation, transitions, micro-interactions, and motion design in a user interface.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when evaluating animation, transitions, micro-interactions, and motion design in a user interface.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | crit-motion |
| description | Use when evaluating animation, transitions, micro-interactions, and motion design in a user interface. |
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.
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 toneRead every locked facet's winning option file. Motion applies to all prior structure and visual decisions. Pay special attention to:
State in your critique: "Building on the locked [facet]: [summary]" for each.
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.
Every option must define a duration scale. Timing is the most impactful motion variable -- too fast feels jarring, too slow feels sluggish.
| 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. |
Define named tokens for the scale, matching the locked spacing token pattern:
duration-micro: 100ms
duration-fast: 200ms
duration-standard: 300ms
duration-emphasis: 500ms
duration-dramatic: 800ms
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.
Easing determines how motion accelerates and decelerates. It is the difference between natural and robotic motion.
| 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. |
Each option must define its easing tokens:
ease-enter: cubic-bezier(0, 0, 0.2, 1)
ease-exit: cubic-bezier(0.4, 0, 1, 1)
ease-move: cubic-bezier(0.4, 0, 0.2, 1)
ease-spring: cubic-bezier(0.2, 0.8, 0.2, 1.2)
ease-snappy: cubic-bezier(0.2, 0, 0, 1)
Show easing curves in each option HTML as animated demonstrations and as visual curve diagrams (plot the bezier on a small graph).
Define how common UI state changes are animated.
| 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. |
| 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.
Micro-interactions are small, single-purpose animations that provide feedback for user actions. They make the interface feel alive and responsive.
| 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) |
Evaluate scroll-based motion patterns when the product uses them.
| 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 |
will-change,
transform, and opacity only. Never animate layout properties (width, height, top, left)
on scroll.prefers-reduced-motion. Replace
with static layout when reduced motion is active.Every option MUST include a reduced motion alternative. This is not optional.
Respect the prefers-reduced-motion: reduce media query:
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after {
animation-duration: 0.01ms !important;
transition-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
}
}
Each option must include a toggle that demonstrates the reduced motion experience. Show side-by-side: standard motion and reduced motion for at least 3 key transitions.
Generate 2-4 motion options. Each must make a different bet about motion personality, duration scale, or animation density. Maximize variety.
Example option set for a productivity SaaS:
Each option HTML must include:
Use CSS animations and transitions within the option HTML. All demonstrations must be interactive -- the user clicks a button to trigger the animation and sees it live.
Refine survivors based on feedback. Common refinements:
When merging two options, create a new option file (e.g., option-ab.html) and state
what was taken from each in the rationale.
Score every option against these questions in your critique. Be specific -- cite which transitions, which durations, which curves.
When generating compare.html for this facet, follow all rules from crit-loop.md with
these additions:
When the user locks a motion option:
state.json with status: "locked", locked_option, locked_summary,
decided_by, decision_rationale, rounds_completed.locked_summary must capture: motion personality (minimal/smooth/playful), easing
approach (standard/spring), duration range (fastest to slowest token), and reduced motion
strategy.design-tokens.json
at the direction stage.Use these to inform option generation and critique. Apply them to the specific project.
| Pattern | When It Works | Watch Out For |
|---|---|---|
| No animation (instant everything) | Performance-critical, accessibility-first, enterprise tools | Feels dead; state changes can be disorienting without transition |
| Micro-interactions only | Productivity tools, daily-use apps, fast workflows | Lacks spatial communication; modal appears from nowhere |
| Full transition system | Consumer apps, onboarding-heavy, brand-forward products | Adds perceived latency; power users may find it slow |
| Spring physics | Playful brands, draggable interfaces, mobile-native feel | Complex to implement; can feel unprofessional in enterprise |
| Scroll-driven storytelling | Marketing sites, product tours, landing pages | Terrible for repeat visitors who want the content, not the show |
| GPU-only animations | Performance-constrained, mobile-first | Limited to transform and opacity; no height/width animation |
Use when starting a new design project, when context seems insufficient for design decisions, or when explicitly gathering requirements before visual design work.
Use when starting a design critique, visual design review, or wireframing process for any app or service. Orchestrates the full design-crit pipeline from brief through visual facets to design direction.
Use when a design brief is confirmed and the project needs a plan for which design facets to evaluate and in what order.
Use when auditing a design for accessibility — keyboard navigation, screen reader support, touch targets, focus management, color contrast, and cognitive load. Typically runs as the last facet to audit accumulated decisions.
Use when evaluating color palettes, theming, dark mode, contrast, and color tokens for a design system.
Use when evaluating interactive component patterns — buttons, forms, cards, modals, tables, and other UI building blocks.