Xzero UI
Pro library

motion recommendations

Motion audit and recommendations

Use the public xzero-ui MCP server at https://mcp.xzero.co.uk/mcp. The complete Free and Pro library is available through this service. No account, sign-in, token, or upstream fallback is required. If the service is unavailable, retry later; do not use upstream services.

Copy this checklist:

Motion audit:
- [ ] 1. Inventory table
- [ ] 2. Keep, change, or remove per row
- [ ] 3. Tokens assigned
- [ ] 4. Changes applied
- [ ] 5. Verification passes

1. Inventory

Find every animation: motion. components, animate(, AnimatePresence, layoutId, CSS transition and @keyframes. For each, record:

ElementTrigger (user, data, load, scroll)PropertiesTiming nowWhat it explains

Mark "remove" on any row where "what it explains" is empty.

2. Decide

Remove:

3. Assign tokens

InteractionTokenNotes
Press on a custom pressablespring.snappy, scale to about 0.97Xzero button already presses. Not on elements that anchor a popover or menu; answer those with color
Switch thumb, drawer edge, panel height, progressspring.smoothReports state, so no overshoot
Selected tab, segment, nav itemspring.morph with layoutIdText stays still; only the highlight moves
Label or value width changespring.morph on widthReserve space or animate it; never jump
Dialog, popover, menu enterduration.standard with ease.enter, short transform from the trigger edge
Exitduration.exit with ease.exitFaster than the entrance
Element moving while on screenduration.standard with ease.inOut
Color or opacity onlyduration.fast with ease.standardCSS: var(--duration-fast) var(--ease-standard)
Number changeCount with tabular numerals (animated-counter)Stable width
List add or removespring.smooth layoutClose the gap; do not re-stagger the list
Page entrancestagger.item, onceTotal under 0.4s
Playful moment (reaction, celebration)A spring with visible bounceOnly here

4. Apply

Change the code with motionTokens imports. Every change keeps a reduced motion branch (transition={reduce ? { duration: 0 } : …}) and animates transform and opacity. Keep animated elements mounted with stable keys.

5. Verify (feedback loop)

Test each changed interaction and fix until all pass:

Output

The inventory with keep, change, or remove per row, the code changes, and the verification results.