Skip to Content

Motion

Motion no Pulso é funcional: confirma estado, orienta transição e reduz incerteza. Não use animação decorativa em superfícies de crise.

Durações

TokenValorUso
--motion-duration-fast120msHover, pressed, micro feedback
--motion-duration-default200msTransições padrão
--motion-duration-slow320msDialogs, sheets, mudanças amplas
--motion-haptic-light8msFeedback háptico leve em mobile

Easing

TokenValorUso
--motion-easingcubic-bezier(0.2, 0.9, 0.3, 1)UI geral
--motion-easing-emphasizedcubic-bezier(0.22, 1, 0.36, 1)Mudanças mais perceptíveis

Padrões

<button className="transition-colors duration-[var(--motion-duration-fast)] ease-[var(--motion-easing)]"> Reconhecer alerta </button>
<div className="animate-in fade-in duration-[var(--motion-duration-default)]"> Briefing atualizado </div>

Mobile v3

Gestos canônicos usam feedback previsível:

GestoFeedback
Swipe-to-ackhaptic light ao soltar
Pull-to-refreshhaptic médio ao soltar
Long-presshaptic light aos 300ms
Drag bottom-sheethaptic light ao trocar detent
Two-finger selecthaptic light por item

Redução de movimento

globals.css já reduz animações para 0.01ms quando prefers-reduced-motion: reduce está ativo. Não dependa de movimento como único sinal de estado.

Regras

  1. Transições de UI devem ficar até 320ms.
  2. Sem bounce em fluxo crítico.
  3. Loading só quando comunica espera real.
  4. Estado precisa estar legível mesmo com movimento reduzido.
Last updated on