RoadieRoadie
  • Home
  • Foundations
  • Tokens
  • Components
  • Charts
  • Widgets
  • Appearance
HomeFoundationsComponents
Appearance

Tokens

  • Reference

    • All tokens
  • Color

    • Color scales
    • Intents
    • Data visualisation
    • Emphasis and states
  • Type, shape and depth

    • Typography
    • Shape and layout
    • Elevation and layering
  • Motion and utilities

    • Motion
    • Component utilities

Motion

GuidanceMotion·View 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.

Open in all tokens

Durations

18

  • 0ms
  • 50ms
  • 100ms
  • 150ms
  • 200ms
  • 300ms
  • 400ms
  • 600ms
  • 1800ms
  • 2400ms
  • var(--duration-instant) → 0ms
  • var(--duration-fastest) → 50ms
  • var(--duration-fast) → 100ms
  • var(--duration-normal) → 150ms
  • var(--duration-moderate) → 200ms
  • var(--duration-slow) → 300ms
  • var(--duration-slower) → 400ms
  • var(--duration-slowest) → 600ms

Easings

5

  • cubic-bezier(0.4, 0, 0.2, 1)
  • cubic-bezier(0, 0, 0.2, 1)
  • cubic-bezier(0.4, 0, 1, 1)
  • linear( 0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%, 0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 85.9%, 1 )
  • linear( 0, 0.012 1.7%, 0.044 3.3%, 0.092 5%, 0.223 8.3%, 0.607 16.7%, 0.744 20%, 0.859 23.3%, 0.949 26.7%, 1.015 30%, 1.073 35%, 1.094 40%, 1.085 46.7%, 1.008 66.7%, 0.991 81.7%, 1 )

Transitions

1

  • background-color var(--duration-moderate) var(--ease-standard), border-color var(--duration-moderate) var(--ease-standard), color var(--duration-moderate) var(--ease-standard), box-shadow var(--duration-moderate) var(--ease-standard), outline-width var(--duration-normal) var(--ease-standard), outline-color var(--duration-normal) var(--ease-standard), transform var(--duration-normal) var(--ease-spring)

Stagger

1

  • 30ms

Animations

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.

Enter and exit transitions

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.

  • ToggleOpen

    Put on a <details>, or a Base UI collapsible panel, so its content opens and closes by height.

Keyframes

11

The keyframes the animation classes run.

Previous page← Elevation and layeringNext pageComponent utilities →