GuidanceMotionView transitions
Press a preview to play it. Colour and opacity use the standard curves; transforms use --ease-spring. Under reduced motion every duration drops to near zero.
18
5
1
1
15
Play once when the class is applied. Press a preview to replay it.
Entrance: fade + slide-up + slight scale. Pair with origin-bottom (or any origin-*) to grow from a specific edge.
@deprecated use animate-fade-in, remove in v3
@deprecated no replacement, use motion-scale or motion-slide, remove in v3
@deprecated use animate-scale-in, remove in v3
@deprecated no replacement, use motion-scale or motion-slide, remove in v3
@deprecated use animate-pop-in, remove in v3
Loops while content is pending. prefers-reduced-motion cuts it to a single 0.01ms pass, which leaves the element at full opacity: a static tint.
A loading surface: a tint pulse under a highlight sweeping across it. background-attachment: fixed anchors the gradient to the viewport, so every element wearing this class shows the slice of one shared sweep that falls where it sits. A one-line placeholder and a full-width block then agree, which a per-element sweep cannot do: it would restart at each element's own edges and run at a different apparent speed on each. The cost is that the sweep paints rather than riding the compositor, since only background-position can express a shared gradient. The element's own fill (from emphasis-*) is the base; the gradient paints --sheen-shade over it everywhere the band is not and --sheen-highlight inside the band, so the band is the lighter of the two in both themes. Radius clips the background, so a circle stays a circle. Reduced motion drops the gradient and leaves the static tint.
Work of unknown length: a bar sweeping across a positioned parent that clips its overflow, such as a progress track. The sweep animates the logical inset, so it runs right to left under dir='rtl'. Reduced motion holds a full-width bar at a soft tint, since the global reset would otherwise park it off the end of the track.
One-shot attention cues. Replay by toggling the class.
A tap response: animate-pop at 600ms reads as a notification.
5
Driven by data-starting-style and data-ending-style. Press a preview to toggle it.
Scale + fade. Pair with origin-[var(--transform-origin)] (or any origin-*) to scale from a specific point.
Fade + slide — up on enter, down on exit.
Drawer surface — slides off its anchored edge and tracks Base UI's live swipe offset. transform, not translate: Base UI writes an inline transform mid-swipe, which must override the resting value, not compose. A surface held off its edge sets --drawer-float so it travels clear.
A toast in a Base UI toast viewport. Collapsed, the stack sits behind the frontmost toast, clamped to its height and peeking out away from the edge; fanned out while the viewport is hovered or focused. Enters, restacks and snaps back from a swipe on a lively spring; leaves quickly towards its edge or the way it was swiped. Pair with absolute bottom-0 origin-bottom, or with absolute top-0 origin-top and data-side='top' for a top viewport.
Put on a <details>, or a Base UI collapsible panel, so its content opens and closes by height.
11
The keyframes the animation classes run.