Communitygithub.com

motion-for-apple-platforms

Como as interfaces da Apple se movem — o vocabulário de molas do SwiftUI (.smooth, .snappy, .bouncy) e quando cada um se aplica, transições interrompíveis e orientadas por gestos, transições hero/continuidade entre telas, microinterações com emparelhamento tátil e respeito ao Reduce Motion. Use ao animar algo que deve parecer Apple-like, em qualquer plataforma: uma transição SwiftUI, uma animação CSS ou Framer Motion na web, uma apresentação de sheet ou modal, um pressionamento de botão, um estado de carregamento ou sucesso, ou quando uma UI está tecnicamente correta, mas parece rígida, flutuante ou lenta. Use também ao revisar movimentos que ultrapassam o alvo, quicam onde não deveriam ou não podem ser interrompidos no meio. Para as regras da Apple sobre *se* animar, use hig-guide; para cor, tipo e geometria de controles, use ui-kit-for-apple-platforms.

O que é motion-for-apple-platforms?

Este skill fornece um guia detalhado sobre como construir animações que se assemelham ao estilo de movimento das interfaces da Apple, indo além dos princípios gerais do HIG. Ele explica o vocabulário de molas do SwiftUI — `.smooth`, `.snappy`, `.bouncy` — e quando aplicar cada um, além de abordar transições interrompíveis, animações orientadas por gestos (como seguir o dedo e depois aplicar a mola), e a importância de usar duração como consequência física, não como entrada fixa. O recurso também cobre microinterações com feedback tátil e a obrigatoriedade de respeitar a preferência `Reduce Motion` (ou `prefers-reduced-motion` na web), substituindo movimento por cross-fade ou corte. É útil para desenvolvedores SwiftUI, web (CSS ou Framer Motion) e qualquer plataforma que queira um movimento com sensação Apple-like, diferenciando-se de skills como `hig-guide` (que decide *se* animar) e `ui-kit-for-apple-platforms` (que trata de valores visuais). Observações importantes: as porcentagens de bounce são caracterizações da API, não constantes publicadas; muitas informações são marcadas como `[observed]`, indicando inferência de comportamento de apps reais.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/doppe7gangar/hig/tree/main/.claude/skills/motion-for-apple-platforms

Perguntar na sua IA favorita

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

Documentação

Movimento Apple

O HIG cobre movimento como princípio e para por aí. Sua página de Movimento tem 92 linhas sobre se animar — propositalmente, opcionalmente, seguindo o gesto — e nem um parâmetro de mola. Tudo sobre como o movimento é realmente construído vive fora dela, e é por isso que isto existe.

ArquivoO que contém
references/motion-animation.mdO vocabulário de molas, durações, tipos de transição, interrompibilidade.
references/microinteractions-feedback.mdEstados de pressionamento, carregamento, feedback de sucesso e erro, emparelhamento tátil.
references/gestures-interaction.mdSwipe, arrastar, pinça, gestos de borda e como o movimento deve acompanhá-los.

De onde vem cada coisa

Vale ser direto sobre isso, porque as três fontes têm posições muito diferentes e misturá-las é como o conselho sobre movimento se torna folclore:

  • Princípios → hig-guide. "Adicione movimento propositalmente." "Torne o movimento opcional." "Busque movimento de feedback realista que siga os gestos e expectativas das pessoas." Estas são palavras da própria Apple, em Motion. Cite-as, não as paráfrases aqui.
  • Nomes de molas e seu comportamento → API do SwiftUI. .smooth, .snappy, .bouncy são API reais com padrões reais. As porcentagens de bounce em motion-animation.md são caracterizações delas, não constantes publicadas — trate-as como um ponto de partida que você ajusta, e não as cite como especificação da Apple.
  • Todo o resto → observação. Estas referências são adaptadas da coleção apple-design-skills licenciada sob MIT (aviso em LICENSE.txt) e são marcadas como [observed] onde o autor inferiu comportamento de aplicativos reais. Úteis, não autoritativas.

Nada aqui é medido como os valores de ui-kit-for-apple-platforms. Essa distinção é o ponto: movimento é a parte deste repositório com menos verdade absoluta.

Escolhendo uma mola

A única decisão que carrega a maior parte da sensação:

MolaBounceUse para
.smoothnenhumSheets, modais, transições de fundo — qualquer coisa que deve se estabilizar sem chamar atenção
.snappylevePressionamentos de botão, alternadores, seleções — o padrão para manipulação direta
.bouncyperceptívelPressionamentos de ícone, notificações que chegam, momentos que devem parecer recompensadores

Bounce é todo o sinal. Uma sheet que quica parece de brinquedo; um pressionamento de botão que não quica parece morto. Acertar esta única escolha faz mais do que ajustar durações.

O que separa o movimento Apple do movimento comum

  • Interrompível. Um gesto deve ser capaz de reverter ou redirecionar uma animação no meio do voo, em vez de enfileirar atrás dela. Qualquer coisa que termina antes de responder parece lenta, não importa quão rápida seja.
  • Segue o dedo, depois assume. Durante um arrasto, a superfície segue o gesto 1:1; a mola só assume na soltura, carregando a velocidade que o gesto tinha. Isto é o "movimento de feedback realista que segue os gestos e expectativas das pessoas" do HIG tornado concreto.
  • Duração é consequência, não entrada. Molas são especificadas por física e se estabilizam quando se estabilizam. Buscar um fixo de 300 ms geralmente significa buscar a ferramenta errada.
  • Posição e opacidade, não tamanho e cor. Mover e desvanecer leem como físico; escalar e recolorir leem como efeitos.

Reduce Motion não é opcional

hig-guide afirma claramente — "Torne o movimento opcional." Na web, isso é prefers-reduced-motion, e significa substituir o movimento, não meramente encurtá-lo: cross-fade em vez de slide, corte em vez de animar. O ios-components.css de ui-kit-for-apple-platforms já protege suas próprias transições dessa forma; faça o mesmo.

Limites

  • Valores — cor, tipo, geometria de controles, materiais — pertencem a ui-kit-for-apple-platforms, medidos do kit de interface da Apple. Não os repita aqui; um código hex em um arquivo de movimento é um código hex que ficará obsoleto em algum lugar onde ninguém olha.
  • Regras sobre se algo deve animar, qual apresentação usar, como layouts se adaptam — hig-guide, com as citações reais.
  • Este skill cobre como o movimento em si é construído.

Habilidades Relacionadas