TIBÉRIO LEMES · DESIGN SYSTEM

Motion system · Opção 2 aprovada

Movimento com intenção.

Uma camada de ritmo para a identidade editorial de Tibério: entrada suave, leitura confortável e respostas rápidas. A animação acompanha a mensagem e sai do caminho quando a pessoa prefere menos movimento.

Cabinet Grotesk + DM SansSem parallax ou scroll hijackingRedução de movimento respeitada

01 · Direção

Editorial, precisa, contida.

A página deve parecer composta, não animada para chamar atenção. Usar movimento para orientar a entrada, marcar hierarquia e confirmar uma interação.

01

Uma entrada clara

O hero revela título, apoio e ação uma vez, com deslocamento curto de 12px e intervalos pequenos.

02

Leitura sem pressa

Blocos entram quando chegam à tela. O movimento termina rápido e não mantém a pessoa esperando pelo conteúdo.

03

Resposta, não espetáculo

Botões e links respondem em 140–160ms. Cards mudam a hairline, sem subir, crescer ou projetar sombra.

02 · Tokens

Escala de movimento.

Os tempos diferenciam feedback de interface de revelação editorial. Os valores são limites de referência, não metas para animar todos os elementos.

TokenValorUsoCurva/alcance
--motion-fast140msSublinhado e foco de navegaçãoease-out
--motion-control160msInversão tonal do CTAease-out
--motion-card180msCor da borda do cardease-out
--motion-reveal460msRevelação ao rolarcubic-bezier(.22,.61,.36,1) · Y 12px
--motion-hero520msEntrada inicial do heroStagger 90ms; máximo 4 itens
--motion-orbit3.5s por direçãoDeriva visível da forma 3D, se ativadaIda e volta em 7s; percurso diagonal de 32px; giro de 28°; escala 0.96–1.06
Stagger recomendado: 70ms entre até 3 cartões. No hero: 90ms entre eyebrow, H1, texto e CTA. Não encadear animações em vários blocos visíveis na mesma tela.

03 · Biblioteca visual

Exemplos para experimentar.

Os botões reproduzem as amostras sob comando, sem iniciar animações automaticamente nesta página. Passe o cursor sobre CTA, link e card para ver o feedback de interface.

01 · Entrada do hero

Fade + subida de 12px · sequência de até 4 itens
Sobre Tibério Lemes Marketing, crescimento e tecnologia. Consultoria/advisory em primeiro plano; palestras e workshops como rota complementar. Conversar sobre consultoria

02 · Revelação de seção

Fade + Y 12px · uma vez por elemento
TEMA 01DireçãoContexto e decisão
TEMA 02CrescimentoMercado fitness
TEMA 03ExecuçãoProduto e tecnologia

03 · Resposta de controles

CTA 160ms · link 140ms · card 180ms
CTA ghost Link de palestra
AdvisoryHover troca só a cor da hairline.

Foco por teclado usa outline visível sem deslocar o componente.

04 · Deriva da órbita

7s ida e volta · percurso diagonal de 32px · giro de 28°
Com redução de movimento ativa no sistema, as amostras permanecem estáticas e os controles de reprodução ficam desativados. O conteúdo continua visível.

04 · Implementação

Regras prontas para CSS.

A entrada de conteúdo usa aprimoramento progressivo: sem JavaScript ou sem suporte a IntersectionObserver, tudo permanece visível. Não deixar texto ou CTA crítico invisível enquanto aguarda uma animação.

Tokens e estados de interação

:root {
  --motion-fast: 140ms;
  --motion-control: 160ms;
  --motion-card: 180ms;
  --motion-reveal: 460ms;
  --motion-hero: 520ms;
  --motion-stagger: 70ms;
  --motion-distance: 12px;
  --motion-orbit: 3.5s;
  --ease-micro: ease-out;
  --ease-editorial: cubic-bezier(.22, .61, .36, 1);
}

.button {
  transition: color var(--motion-control) var(--ease-micro),
              background-color var(--motion-control) var(--ease-micro),
              border-color var(--motion-control) var(--ease-micro);
}

.card { transition: border-color var(--motion-card) var(--ease-micro); }

@keyframes reveal-up {
  from { opacity: 0; transform: translateY(var(--motion-distance)); }
  to   { opacity: 1; transform: translateY(0); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

Revelação ao rolar com fallback visível

/* Só esconda alvos depois de confirmar suporte e preferência. */
if (
  !window.matchMedia('(prefers-reduced-motion: reduce)').matches &&
  'IntersectionObserver' in window
) {
  const targets = document.querySelectorAll('[data-reveal]');
  const observer = new IntersectionObserver((entries) => {
    entries.forEach((entry) => {
      if (entry.isIntersecting) {
        entry.target.classList.add('is-visible');
        observer.unobserve(entry.target);
      }
    });
  }, { threshold: 0.14, rootMargin: '0px 0px -40px 0px' });

  document.documentElement.classList.add('motion-ready');
  targets.forEach((target) => observer.observe(target));
}
/* O conteúdo começa visível. A classe só entra quando o observer está ativo. */
[data-reveal] { opacity: 1; transform: none; }
.motion-ready [data-reveal]:not(.is-visible) {
  opacity: 0;
  transform: translateY(var(--motion-distance));
}
.motion-ready [data-reveal].is-visible {
  opacity: 1;
  transform: translateY(0);
  transition: opacity var(--motion-reveal) var(--ease-editorial),
              transform var(--motion-reveal) var(--ease-editorial);
}
@media (prefers-reduced-motion: reduce) {
  .motion-ready [data-reveal] { opacity: 1; transform: none; }
}
No site final, aplicar data-reveal a títulos de seção ou grupos curtos. Revelar uma vez e remover o observer de cada alvo. Não atrasar a navegação, o H1 ou o CTA por scripts externos.

05 · Aplicação na página

Mapa por faixa.

A cadência mantém o ritmo da narrativa e dá pausas visuais. Várias faixas não precisam de movimento para funcionarem.

1 · Navegação e hero

Entrada única: eyebrow → H1 → texto → CTA. Órbita inicia o percurso diagonal de 32px depois da composição do texto; ida e volta em 7s.

2 · Território/advisory

Título e primeiro grupo de cards revelam uma vez; stagger de 70ms, até 3 itens.

3 · Como começa

Etapas numeradas revelam em sequência curta. Sem contadores ou progresso animado.

4 · Palestras/workshops

Texto e foto entram com o mesmo tempo, sem atrasar a compreensão do CTA.

5 · Experiência

Itens aparecem em uma revelação única; datas e fatos permanecem legíveis em estado estático.

6 · Portfólio

Cards mudam apenas a hairline no hover/foco. Sem zoom de screenshot ou deslocamento do card.

7 · Público e FAQ

FAQ usa abertura nativa de <details>; não animar altura nem mover conteúdo aberto.

8–9 · CTA e rodapé

CTA responde por inversão tonal. Rodapé fica estático; navegação recebe feedback de link.

Evitar: parallax, scroll hijacking, cursor-following, zoom de cards, contadores, texto digitado, autoplay de vídeo, pulso de CTA, flashes de gradiente e movimento contínuo em múltiplos elementos.