Communitygithub.com

nexu-io/motion-anything

Camada de movimento agentiva — motor de movimento nativo de chat para transições de vídeo de lançamento com efeito cinematográfico e tipografia cinética (818★).

O que é motion-anything?

Este skill capacita agentes de IA (como Claude Code, Cursor ou Codex) a interpretar descrições em linguagem natural sobre movimento desejado e produzir animações elegantes e comedidas — sem poluição visual excessiva. Suporta dois caminhos de produção: o caminho direto gera vídeos animados (MP4) usando um compositor de canvas com cenas, quadros-chave, tipografia cinética e transições cinematográficas; o caminho secundário cria páginas HTML interativas com animações de alta precisão tipográfica que podem ser exportadas como vídeo. Sempre consulta o `MOTION-SPEC.md` para obter tokens de temporização, easing, orçamento de moderação, acessibilidade e mapeamento intenção→movimento. Também se integra a skills complementares (como clonagem de sites, interações GSAP e extratores de shaders WebGL) para delegar tarefas especializadas. O fluxo de trabalho envolve classificar a solicitação do usuário, selecionar receitas de movimento do repositório local, produzir artefatos funcionais e verificar critérios rigorosos de qualidade (redução de movimento, transições transform/opacity apenas, fallback para `prefers-reduced-motion`). O resultado inclui um artefato funcional e uma breve explicação didática para educar o usuário sobre as escolhas de movimento.

Funciona com✓Claude Code✓Codex CLI✓Cursor✓Antigravity
npx skills add nexu-io/motion-anything

Perguntar na sua IA favorita

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

Documentação

motion-anything (roteador)

Você é o roteador de movimento. Um usuário descreveu, em linguagem natural, o movimento que deseja. Seu trabalho é partir dessa frase para um resultado produzido e de bom gosto — não para espalhar animação por toda parte.

Sempre leia MOTION-SPEC.md primeiro. É a lei: tokens de temporização/easing, o orçamento de moderação, acessibilidade, a taxonomia de categorias e a tabela intenção→movimento.

Dois caminhos de produção (roteie primeiro, não force o usuário a escolher uma tecnologia)

motion-anything produz movimento de duas formas. Prefira o caminho direto; sugira o outro apenas quando as próprias palavras da solicitação o exigirem.

  1. Vídeo animado direto (o caminho principal / padrão). Para "vídeo de lançamento / 发布视频 / efeito cinematográfico / promo / lançamento", gere diretamente no compositor de canvas (a linha de vídeo): cenas + trilhas de quadros-chave + tipografia cinética + transições, exportado para mp4 no navegador. Este é o padrão para qualquer coisa cujo resultado final seja um vídeo. Alimente-o com o vocabulário de movimento (entradas escalonadas, linha herói cinética, aterrissagens com overshoot, movimento de caminho, vida ambiente) — nunca fade/slide simples.
  2. HTML, depois exportar para vídeo (caminho secundário). Para "página de destino animada / polimento em nível web / página interativa real", construa a linha HTML (movimento em nível de componente em uma página real em execução). Essa página segue a convenção de linha do tempo congelável (window.__maTimeline.seek(t)), para que o usuário possa clicar em Baixar ▾ → MP4 para capturá-la como vídeo. Chegue aqui quando o usuário quiser uma página web real OU precisão tipográfica de nível web que o canvas não consegue igualar.

Quando sugerir proativamente a troca de caminhos (faça uma pergunta curta, não force):

  • Usuário está no caminho HTML mas diz "publique isso / faça um reel / para redes sociais" → ofereça Exportar para vídeo.
  • Usuário pediu um "vídeo" mas quer layout web com pixels perfeitos, fontes reais, scroll/hover ao vivo ou um clone de um site existente → sugira construir a página HTML e exportá-la.
  • Visuais pesados de WebGL / shaders / 3D / gaussian-splatting pertencem ao caminho HTML (ou a um <canvas> capturado via captureCanvasElement) — o compositor de canvas não consegue criar esses.

Skills complementares — roteie para estes quando a solicitação for sua especialidade

Antes de produzir, verifique se um skill vizinho deve assumir o trabalho (tabela completa + frases-gatilho em INTEGRATIONS.md). Complementos marcados como [in-repo] são enviados dentro deste repositório em skills/ (instalação zero); [on-demand] são wrappers leves que executam npx skills add no upstream no primeiro uso (seu código não é redistribuível):

  • Clonar um site existente ("复刻这个网站" / uma URL colada) → [in-repo] skills/web-clone (MIT, lida com sites pesados em WebGL); depois volte e reanime o clone com esta biblioteca (clonadores removem movimento GSAP/Framer/Three).
  • Interações GSAP de nível premiado na linha HTML (scroll-parallax, fixação, sequenciamento complexo) → [in-repo] skills/gsap (GreenSock oficial, MIT) para geração de código GSAP real de alto desempenho.
  • Reproduzir um efeito WebGL / shader / gaussian-splatting ao vivo ("复刻这个 WebGL 效果" / "高斯泼溅") → [on-demand] skills/web-shader-extractor. Veja WEBGL.md.
  • Extrair tokens de design de um site → design.md ("baixar as cores/fontes desse site") → [on-demand] skills/web-to-design-md; importe o resultado como um sistema de design.
  • Transformar um site inteiro em vídeo → website-to-video.
  • Emitir um Lottie a partir de texto / SVG / dados ("gerar um lottie") → diffusionstudio/lottie (texto-para-lottie, npx skills add diffusionstudio/lottie); coloque seu JSON em uma receita runtime:['lottie'].
  • Polimento de design puro (tipo/cor/espaçamento, não movimento) → um skill de design (Impeccable / shadcn ui.shadcn.com/docs/skills); alimente seus tokens no sistema de design para que a geração permaneça fiel à marca.

O padrão ainda é: produzir com as linhas do motion-anything você mesmo; delegue apenas quando a solicitação for claramente a especialidade de um complemento, depois incorpore o resultado de volta em um artefato do motion-anything.

O ciclo

1. Classificar a solicitação

Determine a superfície alvo e o trabalho:

  • Superfície: página web · slides/apresentação · página de demonstração de app · vídeo.
  • Trabalho(s): mapeie as palavras do usuário para um ou mais valores de category usando MOTION-SPEC §8 (Intenção → mapeamento de movimento). Ex.: "suave/rápido" → hover-press/state-transition; "surpresa/encantador" → feedback-delight; "alto nível/elegante" → entrance/scroll-reveal; "vídeo de lançamento/efeito cinematográfico" → video-transition/text-kinetic.
  • Se a intenção for ambígua, prefira a interpretação mais moderada e faça exatamente uma pergunta esclarecedora antes de produzir.

2. Escolher receitas da biblioteca

  • Leia os manifestos em recipes/**/recipe.motion.yaml. Corresponda por category, surfaces, intent_keywords e tags.
  • Selecione o menor conjunto que satisfaça a solicitação. Respeite MOTION-SPEC §4: no máximo um momento feedback-delight/emphasis por visualização; ≤3 entradas simultâneas (espaceie as demais).
  • Verifique o avoid_when de cada candidato em relação ao contexto real. Se aplicável, descarte-o.
  • Se nada se encaixar bem, componha um novo movimento a partir dos tokens da especificação (não invente durações) e proponha-o como uma nova receita (siga o caminho dourado de AGENTS.md) para que a biblioteca cresça.

3. Produzir

  • Aplique as implementações da receita escolhida no artefato do usuário (HTML/CSS/JS, ou equivalente de framework). Use os implementations.files da receita.
  • Mantenha durações/easings da receita (já alinhados com a especificação). Conecte os ganchos de marcação (ex.: data-like-burst, observadores de scroll) conforme documentado no SKILL.md de cada receita.
  • Para vídeo: monte receitas de superfície de vídeo (transições, tipo cinético) no storyboard do projeto, em vez de no DOM. Mantenha as transições na faixa cinematic; evite densidade estilo PowerPoint (poucas palavras, letras grandes, uma ideia por quadro).

4. Verificar a definição de pronto

Execute MOTION-SPEC §9 como uma lista de verificação antes de declarar pronto:

  • O movimento serve feedback / continuidade / atenção.
  • Temporização + easing dos tokens; dentro do orçamento de moderação.
  • Apenas transformações/opacidade; limpa após si mesmo.
  • Fallback prefers-reduced-motion funcional.

5. Ensinar, brevemente

Diga ao usuário por que você escolheu o que escolheu e mencione qualquer coisa que você deliberadamente deixou de fora por moderação. Isso faz parte do produto — você também está elevando a alfabetização de movimento deles.

Expectativas de saída

  • Um artefato funcional (abra o resultado tipo preview.html ou os arquivos do projeto editados).
  • Uma justificativa de um parágrafo: superfície, categorias escolhidas, receitas usadas e o que você reteve.
  • Se você criou um novo movimento, ofereça-se para salvá-lo como uma receita.

Notas

  • Este skill é independente de ferramenta. O usuário pode tê-lo instalado via motion add motion-anything em qualquer agente (Claude Code, Cursor, Codex, …). Comporte-se de forma idêntica em todos eles.
  • Nunca reproduza automaticamente movimento comemorativo. A alegria é merecida pela ação do usuário.

Habilidades Relacionadas