Motion
Motion brings interfaces to life when used with purpose. Tessera UI’s motion system is minimal and functional, providing feedback without distraction.
Principles
Section titled “Principles”Duration Tokens
Section titled “Duration Tokens”Hover over each track to see the animation speed in action.
When to Use Each Duration
Section titled “When to Use Each Duration”| Duration | Token | Use Cases |
|---|---|---|
| 80ms | --ts-transition-micro | Checkbox tick, ripple start, instant-feel micro-feedback |
| 160ms | --ts-transition-fast | Button hover, toggle switch, focus ring, color changes |
| 240ms | --ts-transition-normal | Card hover elevation, component enter/exit |
| 360ms | --ts-transition-slow | Accordion expand, panel slide, tab transitions |
| 500ms | --ts-transition-x-slow | Page-level entrances, complex orchestrations |
Easing Curves
Section titled “Easing Curves”Each easing curve communicates a different motion quality. Hover over the cards to preview the curve.
Loading Animations
Section titled “Loading Animations”Persistent loading states use longer, looping durations.
Staggered Entrances
Section titled “Staggered Entrances”Lists and groups use a stagger interval to choreograph sequential entrance animations, creating a cascade effect.
Reduced Motion
Section titled “Reduced Motion”All animated Tessera UI components include targeted @media (prefers-reduced-motion: reduce) rules that reduce or eliminate motion for users with vestibular disorders. This is built into each component’s CSS — no consumer action required.
Accessibility first (WCAG SC 2.3.3) Rather than a blanket override, each component reduces only its own animations. This ensures motion-sensitive users get instant feedback while preserving essential visual cues like focus rings.
@media (prefers-reduced-motion: reduce) {
.button__native {
transition-duration: 0.01ms;
}
}Components with reduced-motion support
Section titled “Components with reduced-motion support”| Component | What is reduced |
|---|---|
| Button | Hover/active transitions, press scale effect, loading spinner |
| Dialog | Overlay fade-in, panel scale animation |
| Modal | Overlay fade-in, dialog scale animation |
| Drawer | Overlay fade-in, slide animations (all 4 placements) |
| Spinner | Rotation animation (near-instant) |
| Skeleton | Pulse and wave animations removed entirely |
| Progress | Fill transition, indeterminate slide animation |
| Toast | Slide-in entrance animation |
| Accordion | Header hover, chevron rotation, panel expand/collapse |