Zoom
v1.0.1Updated 21 Jul 2026Scales its child from 0 to full size while fading it in — the most assertive of the transition wrappers, built to pull the eye. Use it where the appearance itself is the message, such as a success tick or a badge landing on a card. For a calmer in-place entrance reach for Grow, which only scales from 0.95.
Preview
Live · 3 stories▸Why this is recommendedzoomtransitionanimationscale+4
Zoom — demo.
- ✓Popping a success checkmark in after a form submits
- ✓Landing a count or status badge onto a card
- ✓Emphasising a newly added item in a list
- ✓Revealing an avatar or icon with a playful entrance
- Scale 0 -> 1 with an opacity fade
- Configurable duration / delay / easing per instance
- unmountOnExit removes the child from the DOM after exit
- Respects prefers-reduced-motion (snaps, no animation)
- data-state attribute for debugging
- Zero dependencies beyond React
- ✕Subtle or frequent UI changes (use Fade or Grow)
- ✕Large content blocks, where a full 0 -> 1 scale feels jarring
- ✕Page-level route transitions
Install
Ask your agent, or call the MCP tool directly. The resolved bundle is written into your project.
Usage
Tick variants in the left menu — each adds a tab with that variant’s real story source, the same code the preview above renders.
Props
inWhether the child is shown; drives the transition
yesdurationDuration in ms. Default 200
—delayDelay in ms before the transition starts. Default 0
—easingTiming function. Default 'ease-out'
—unmountOnExitRemove the child from the DOM after exit. Default false
—classNameExtra classes merged onto the wrapper element
—styleExtra inline styles; transition-driven properties take precedence
—refRef to the wrapper element (React 19 ref-as-prop)
—childrenContent to zoom
yes