Communitygithub.com

motion

Use ao adicionar, revisar ou corrigir animações e transições em uma interface web — feedback de hover e pressionamento, modais, dropdowns, toasts, revelações de página e scroll, molas, easing e durações. Decide se algo deve animar ou não e como, com suporte a movimento reduzido.

O que é motion?

O **Motion** é uma skill de IA especializada em animações e transições para interfaces de usuário web. Ela fornece diretrizes claras e baseadas em frequência de uso para decidir **se** um elemento deve animar e **como** fazê-lo, garantindo que as animações sirvam para explicar mudanças ou confirmar entradas do usuário — nunca como mera decoração. A skill define regras práticas de easing (curvas cúbicas-bezier), duração (ex: pressionamento entre 100-160ms, modais até 400ms), e propriedades permitidas (apenas `transform` e `opacity`), além de padrões para botões, tooltips, listas escalonadas e molas (springs). Ela cobre desde transições CSS simples até bibliotecas JS como Motion/Framer ou React Spring quando necessário. O suporte a `prefers-reduced-motion` é obrigatório, com um bloco CSS que reduz drasticamente as durações sem remover mudanças de opacidade ou cor. Ideal para desenvolvedores que usam editores como Cursor, Claude Code ou Codex, a skill pode ser usada tanto na criação de novas animações quanto na revisão de código existente, usando um formato de tabela padronizado (`| Antes | Depois | Motivo |`) para comunicar problemas de forma clara e objetiva.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/F0rger123/CLAUDE-DESIGN-GOD-MODE/tree/main/skills/motion

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que motion faz?

Motion explica mudanças e confirma entrada do usuário. Se não faz nenhum dos dois, é decoração e precisa de justificativa.

1. Deve animar?

Com que frequência o usuário vêDecisão
100+ vezes ao dia (atalhos, alternância de paleta, digitação)Nunca animar
Dezenas de vezes (hover, navegação em lista, abas)Pouco ou nada (cor/opacidade abaixo de 150ms)
Ocasionalmente (modal, gaveta, toast, dropdown)Transição padrão
Raramente (onboarding, sucesso, herói da primeira visita)Espaço para encanto

Nunca animar ações acionadas por teclado.

2. Easing

  • Entrando ou saindo: ease-out forte cubic-bezier(.23, 1, .32, 1).
  • Movendo na tela: ease-in-out cubic-bezier(.77, 0, .175, 1).
  • Gavetas/painéis: cubic-bezier(.32, .72, 0, 1).
  • Cor/hover: ease. Movimento constante (marquee, progresso): linear.
  • Nunca use ease-in para UI; parece lento no momento em que o usuário está observando.

3. Duração

Pressionamento 100-160ms · tooltip 125-200ms · dropdown 150-250ms · modal/gaveta 200-400ms · herói de marketing até 800ms. Saídas ~20% mais rápidas que entradas. Movimento de UI deve ficar abaixo de 300ms.

4. Regras de execução

  • Animar apenas transform e opacity. Nunca width, height, top, left ou transition: all.
  • Nada aparece a partir de scale(0); comece em scale(.95) + opacity: 0.
  • Popovers e menus escalonam a partir do gatilho (transform-origin no gatilho). Modais permanecem centralizados.
  • Botões: :active { transform: scale(.97) } com transição de 120ms.
  • Tooltips: atrasar o primeiro (~400ms); adjacentes abrem instantaneamente.
  • Listas escalonadas: 30-50ms por item, limite total abaixo de 400ms.
  • Revelações de scroll: no máximo uma por página, distância pequena (8-16px), executar uma vez. Não em toda seção.
  • Molas (Motion/Framer, React Spring) para arrasto, gestos e movimento interrompível: { type: "spring", duration: .4, bounce: .15 }. Mantenha bounce entre 0.1 e 0.3, apenas em superfícies lúdicas.
  • Prefira transições CSS e @starting-style para entrada/saída simples; a View Transitions API para mudanças de página/estado; uma biblioteca JS apenas quando gestos ou sequências forem necessários.

5. Movimento reduzido (obrigatório)

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

Mantenha alterações de opacidade e cor de estado; remova movimento, parallax e tremor.

Formato de revisão

Ao revisar código de motion, responda com uma tabela: | Antes | Depois | Motivo |, uma linha por problema.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas