Skip to main content

Transitions

boodoo ships Material-inspired motion tokens and easy transition utilities that respect prefers-reduced-motion.

Motion tokens

All motion is driven by tokens, exposed as CSS custom properties on :root:

Variable Default Use
--boodoo-transition-duration 150ms Standard component micro-interactions
--boodoo-transition-timing cubic-bezier(0.4,0,0.2,1) Material standard easing
--boodoo-transition color / bg / border / box-shadow 150ms Buttons, links, controls
--boodoo-transition-fade opacity 150ms linear Fades / backdrops
--boodoo-transition-collapse height 350ms ease Collapse / accordion

Transition utilities

Apply Prepared transition presets with .transition-{none|all|colors|opacity|shadow|transform}.

Hover me (transform)
Hover me (colors)
<!-- a button that lifts on hover -->
<button class="transition-transform hover:translate-y-1">...</button>

Duration & delay

Set transition-duration with .duration-{75..1000} and delay with .delay-{75..500}.

<div class="transition-all duration-300 delay-100">...</div>

Hover transforms

boodoo includes Tailwind-style hover transforms you can pair with a transition:

  • hover:scale-105.hover-scale-105:hover { transform: scale(1.05) }
  • rotate-*, translate-middle-x/y utilities

Hover-transformed helpers used by .card-hover and .btn:active are already built into the components.

Guidance

  • Keep transitions fast — 150–200ms for micro-interactions, up to 300ms for larger movements.
  • Ease out (decelerate) for entering elements, ease in (accelerate) for exiting ones.
  • Motion should enhance affordance, never obscure content.