Web InnoventixPrompts

Spec the micro-interactions and motion for a UI

Free

Turn any component or flow into a build-ready micro-interaction and motion spec — properties, durations, easing, transform-origin, spring physics, and reduced-motion fallbacks an engineer can ship without guessing.

A concrete, implementation-ready motion specification for a UI element — every interaction mapped to properties, timing, easing, origin, and fallbacks — that an engineer can build without asking follow-up questions.

Your details

saved for every prompt

This prompt

You are a senior design engineer who specializes in interface motion and micro-interactions — the kind who has shipped animation systems people describe as buttery, and who knows when *not* to animate.

Your task: write a complete, build-ready motion specification for the UI below, detailed enough that a mid-level engineer could implement it without asking a single follow-up question, and honest enough to flag any interaction that should stay instant instead of animated.

## The UI to spec
Interface element or flow:
"""
{{ui_element_or_flow}}
"""

Current behavior or problem (or "greenfield — nothing built yet"):
"""
{{current_state}}
"""

Context:
- Product: {{product}}
- Primary users: {{audience}}
- Desired motion personality: {{motion_personality}}
- Implementation environment: {{tech_stack}}

## How to work through it
1. Inventory every distinct state change and interaction the element has — enter, exit, hover, press/tap, focus, drag/swipe, loading, success, error, and any list reorder or stack reflow.
2. For each one, decide whether it should animate at all. Actions that must feel instant (focus rings, keyboard-driven changes, anything on a critical path) should not be dressed up with motion.
3. For the interactions that do animate, choose the exact properties to move, the from→to values, the duration, and the easing (or spring settings).
4. Set a transform-origin for every overlay, popover, dropdown, or tooltip so it grows from the element that triggered it, not from its own center.
5. Decide where a spring (interruptible, gesture-friendly) beats a fixed-duration tween — especially for anything a user can re-trigger or drag mid-animation.
6. Specify a prefers-reduced-motion fallback for each animated interaction (usually opacity-only, no movement).
7. Call out orchestration for groups: stagger, sequencing, and how siblings reflow when one item is added or removed.

## Output format
- **Motion principles** — 2 to 3 sentences describing the intended feel and the rules that hold across the whole element.
- **Interaction table** with columns: Interaction | Animate? | Properties | From → To | Duration | Easing / spring | Transform-origin | Notes.
- **Reduced motion** — the fallback behavior when prefers-reduced-motion is set.
- **Leave it instant** — interactions that should NOT animate, each with a one-line reason.
- **Watch-outs** — performance, jank, unmount timing, and interruption risks to check during implementation.

## Constraints
- Animate `transform` and `opacity` first; avoid animating `width`, `height`, `top`, `left`, or `margin`, which force layout and drop frames. If a size or position must change, note that it needs a transform-based (FLIP / layout) technique.
- Keep micro-interaction durations roughly in the 120–300ms range; reserve 300–450ms for large surfaces like full-screen sheets, and never let a micro-interaction run past ~500ms.
- Use ease-out (decelerate) for elements entering the screen, ease-in for elements leaving, and ease-in-out for elements moving between two on-screen positions. Avoid linear except for continuous loops like spinners.
- Enter with a small offset — a few pixels of translate or a scale from ~0.96, plus opacity — rather than scaling up from zero.
- Give concrete numbers everywhere. Replace any vague phrase like "smooth transition" with real values.
- If the framework's animation API is unfamiliar, spec the values in neutral terms (property, from→to, duration, easing) rather than guessing API names.
- Do not invent motion to fill the table — if an interaction is better instant, put it under "Leave it instant" and explain why.

6 fields still empty — the {{like_this}} slots fill in as you type.

See it in action

What this prompt produces with example details filled in:

**Motion principles**
Toasts should feel like they belong to the corner they live in: arriving with a quick, decelerating slide that catches the eye without startling, and leaving quietly so they never compete with the next action. Nothing in the stack should ever teleport — when one toast leaves, the others glide into place. Motion is fast and confident, matching a "snappy & responsive" feel.

**Interaction table**

| Interaction | Animate? | Properties | From → To | Duration | Easing / spring | Transform-origin | Notes |
|---|---|---|---|---|---|---|---|
| Toast enter | Yes | opacity, translateY | opacity 0→1, y 16px→0 | 240ms | ease-out `cubic-bezier(0.16, 1, 0.3, 1)` | bottom edge | Optional gentle overshoot via spring (stiffness ~500, damping ~35) |
| Toast exit | Yes | opacity, translateX | opacity 1→0, x 0→100% | 180ms | ease-in | — | Slide out toward the screen edge it sits on; must finish before unmount |
| Stack reflow (sibling removed) | Yes | translateY (transform, not layout) | shifts up by removed height | spring | stiffness ~400, damping ~40 | — | Use FLIP / layout animation so siblings glide, never jump |
| Swipe-to-dismiss | Yes | translateX tracks finger | follows drag; release → spring | spring, interruptible | stiffness ~500, damping ~45 | — | Past ~40% width or a fast flick → dismiss; otherwise spring back to 0 |
| Action button press | Yes | scale | 1 → 0.96 | 120ms | ease-out | center | Returns to 1 on pointer-up |
| Hover (pause auto-dismiss) | No | — | — | — | — | — | Pausing the timer is state, not motion — keep it instant |

**Reduced motion**
When `prefers-reduced-motion: reduce` is set, drop all translate/scale and cross-fade instead: enter and exit become opacity 0↔1 over 150ms. Disable the swipe overshoot and the spring reflow — snap siblings to their new position after the fade. Swipe-to-dismiss still tracks the finger (it is direct manipulation, not decorative motion).

**Leave it instant**
- Timer pause on hover — feedback must be immediate, and there is nothing to move.
- Focus ring on keyboard navigation — accessibility affordances should never lag.
- Close on Escape — a deliberate dismissal should feel as fast as the keypress.

**Watch-outs**
- Animate `transform`/`opacity` only. Reflowing the stack via `top`/`height` will jank — use a transform-based layout animation (Framer Motion `layout`).
- Make sure the exit animation completes before the node unmounts (`AnimatePresence`), or toasts will pop out with no transition.
- If three or more toasts arrive at once, stagger enters by ~60ms rather than firing them simultaneously, so the corner reads as a sequence, not a flash.
- Keep the swipe spring interruptible: a user grabbing a toast mid-enter should take over the drag without a hitch or reset.

Tips

Best for: Handing engineers a build-ready animation spec instead of a vague 'make it smoother', Fixing UI that feels janky, instant, or unpolished, Designing motion for overlays, toasts, modals, dropdowns, and bottom sheets, Establishing a consistent motion language across a design system
micro-interactionsanimationmotion designui animationinteraction designeasingframer motiondesign engineeringreduced motion

Built by Web Innoventix

Want the work done, not just prompted? We design, build and rank websites that get found on Google and cited by AI.

Get a free quote

More prompts

Browse all →
Design & UX

Turn a rough UI idea into a build-ready design prompt

Turn a vague UI idea into a precise, generation-ready design prompt — a one-line vibe, a named-colour design system, and a numbered page structure — that v0, Stitch, Lovable, or Claude can render into a polished first screen on the first try.

4 fieldsdesignui-design
Design & UX

Design critique that returns prioritised fixes

Get a senior product-design critique of any screen — specific, located, severity-ranked usability fixes tied to real heuristics, not vague praise.

4 fieldsdesignux
Design & UX

Design a first-run onboarding flow to your product's aha moment

A ready-to-paste ChatGPT prompt that interviews you about your product, then designs a first-run app onboarding flow that walks new users to their aha moment — delivered as a build-ready spec.

Paste & goonboardingux design
Design & UX

Plan your product's information architecture and sitemap

A paste-and-go ChatGPT prompt that interviews you about your product and users, then delivers a full information architecture and sitemap — navigation model, page hierarchy, URL scheme, and key user flows.

Paste & goinformation architecturesitemap
Design & UX

Interview a user and turn it into a UX research brief

A paste-and-go ChatGPT prompt that runs a professional UX discovery interview one question at a time, then synthesizes your answers into a structured, shareable UX research brief.

Paste & gouser-researchuser-interview
Design & UX

Generate a design token system with light and dark palettes

A paste-and-go ChatGPT prompt that briefly interviews you, then generates a complete light and dark design token system — primitives, semantic tokens, and WCAG-checked contrast — ready to export as CSS variables, DTCG JSON, or a Tailwind config.

Paste & godesign tokensdesign system
Chat with us