Skip to main content
VelinStyle v1.3.0
⌂ Home
  1. Docs
  2. Motion
  3. Motion tokens

Motion tokens 1.2.2

Duration and easing CSS variables for animations, transitions, and Web Component motion — stable in 1.2.0. Deutsch: Motion-Tokens

Maturity: Documented as stable in VelinStyle 1.2.0. Studio and the complete Utility Engine remain planned — shipping utilities are hand-authored under @layer utilities, not a full variant generator.

When to use

When not

Durations

TokenValueUse case
--velin-duration-instant50msTap feedback, hover state flip
--velin-duration-fast100msToggles, popovers
--velin-duration-normal200msDefault transitions
--velin-duration-slow300msModals, drawers
--velin-duration-slower500msSection reveals
--velin-duration-slowest800msSparkline area fade-in
--velin-duration-cinematic1200msHero reveals, sparkline draw-in

Easings

TokenCurveNotes
--velin-ease-defaultcubic-bezier(0.4, 0, 0.2, 1)Material-style smooth
--velin-ease-incubic-bezier(0.4, 0, 1, 1)Accelerate
--velin-ease-outcubic-bezier(0, 0, 0.2, 1)Decelerate
--velin-ease-in-outcubic-bezier(0.4, 0, 0.2, 1)Smooth start & end
--velin-ease-bouncecubic-bezier(0.34, 1.56, 0.64, 1)Subtle overshoot
--velin-ease-springcubic-bezier(0.34, 1.56, 0.64, 1.4)Strong overshoot, used by FLIP filter
--velin-ease-elasticcubic-bezier(0.68, -0.6, 0.32, 1.6)Anticipatory snap
--velin-ease-expo-outcubic-bezier(0.16, 1, 0.3, 1)Cinematic decel — sparkline & counters
--velin-ease-back-outcubic-bezier(0.34, 1.4, 0.64, 1)Soft overshoot for value bumps
--velin-ease-snappycubic-bezier(0.2, 0.8, 0.2, 1)Quick UI affordance, dropdowns

Usage

.card {
  transition: transform var(--velin-duration-slow) var(--velin-ease-expo-out);
}
.card:hover { transform: translateY(-4px); }

Reduced motion

The base reset honours prefers-reduced-motion: reduce by capping animation durations to 1ms and disabling all chart/filter motion globally. You don't need to gate token usage manually — utilities under Chart animation and Filter effects already include the override.

Runtime bridge

Attribute-driven motion (velin-reveal, stagger, smooth scroll) uses these tokens via CSS classes applied by @birdapi/velinstyle/motion. See Motion & attributes.