FundamentosMovimento

Motion

O movimento no Velon deve parecer vivo, porém invisível. Aquilo que anima comunica mudanças de estado. Nunca deve chamar atenção para si mesmo às custas da mudança que está anunciando.

Essa contenção é Verdade: o movimento existe para orientar a pessoa usuária em direção ao que realmente mudou, nunca para distrair ou enfeitar o momento.

Tokens de duração

TokenValorUso
duration.instant100msFeedback de hover/press
duration.fast150msTooltips, fades simples
duration.base200msTransições padrão
duration.slow300msEntrada de dialog / drawer
duration.slower500msIntroduções de hero / marca

Easing

TokenValorUso
easing.standardcubic-bezier(0.4, 0, 0.2, 1)Padrão. maioria das transições
easing.deceleratecubic-bezier(0, 0, 0.2, 1)Entrada. o elemento aparece
easing.acceleratecubic-bezier(0.4, 0, 1, 1)Saída. o elemento desaparece

Introdução de marca

A animação de introdução do símbolo Velon (as arestas do tetraedro em wireframe sendo desenhadas, usada no hero deste site) leva cerca de 2s e usa cubic-bezier(0.65, 0, 0.35, 1) para o traçado do stroke. Uma curva um pouco mais dramática, apropriada para momentos de marca. Ela respeita prefers-reduced-motion.

import { VelonLogoIntro } from '@velon-finance/ui'
 
<VelonLogoIntro duration={2} strokeColor="#FFFFFF" />

O que evitar

  • Não use durações maiores que slower (500ms) para transições de UI. Depois de cerca de 500ms, o movimento deixa de parecer feedback e começa a parecer espera.
  • Não anime propriedades que causam layout (top, left, width, height). Use transform e opacity.
  • Não ignore prefers-reduced-motion. Os componentes deste sistema o respeitam; o código consumidor também deveria.