Communitygithub.com

benjatestaferri7/motion-reel

Sites e vídeos renderizados em código, com estética de motion designer: tipografia cinética, cortes de cor sem margem e shaders WebGL2 estilo risografia.

O que é motion-reel?

Esta skill capacita agentes de IA (como Claude Code, Cursor ou Codex) a produzirem websites e vídeos curtos com a estética de um motion designer profissional: cortes de cor chapada, tipografia pesada e condensada, cantos de HUD mono, animações cinéticas sincronizadas com batida e shaders 3D que simulam impressão risográfica via WebGL2. A skill diferencia claramente duas abordagens — 'Swiss Kinetic' para projetos 2D com tipografia e cor, e 'Riso Shader' para peças táteis e 3D —, oferecendo também um modo híbrido. A paleta de cores é gerada dinamicamente por um script Node (`palette.mjs`), que mapeia tokens como `ink`, `bone`, `action` e `machine` para evitar cores fixas. O fluxo de trabalho é altamente estruturado: começa com uma entrevista para definir estilo e paleta, depois constrói uma tabela de cenas com ritmo canônico e, por fim, gera código ou assets de vídeo (template de reel) seguindo regras rígidas de animação (transform/opacity, `prefers-reduced-motion`, pausa de canvas fora da tela). A skill também inclui QA automatizado com captura de screenshots em 1440px e 390px, verificação de overflow e console, e relatórios de limitações. É ideal para landings promocionais, reels de portfólio ou clipes de lançamento, mas não para dashboards, sites de documentação ou apps focados em formulários.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add benjatestaferri7/motion-reel

Perguntar na sua IA favorita

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

Documentação

Contrato de Ativação

Use para sites/landings (qualquer stack) ou vídeos renderizados em código (showreel, promocional, clipe de lançamento) na linguagem visual de um motion designer: cortes de cor chapada sem margem, tipografia pesada e condensada em caixa alta, cantos de HUD mono, movimento cinético sincronizado com batida ou shaders 3D estilo risografia via WebGL2. Não use para dashboards, sites de documentação ou apps focados em formulários.

Regras Rígidas

  • Todos os caminhos abaixo são relativos à pasta desta skill (SKILL_DIR); execute ferramentas como node "$SKILL_DIR/assets/palette/palette.mjs" ….
  • Responda no idioma do usuário; escreva o conteúdo do site/vídeo no idioma do projeto.
  • Conclua a entrevista (intake) ANTES do design ou código. Nunca hardcode cores hex: a cor vem dos tokens de função do palette.mjs (ink, bone, action, machine, on-*, hud-on-*).
  • Texto sobre um campo usa on-<campo>; nunca renderize uma combinação forbiddenPairs como texto/fundo.
  • Um movimento marcante (signature move) por cena; alterne cenas intensas e suaves; nunca coloque 3 campos com a mesma função em sequência; poses-chave duram ≥1 batida; use uma única família de easing.
  • Web: anime transform/opacity; respeite prefers-reduced-motion (estados finais estáticos, sem loops, sem pins); pause canvases fora da tela; use pin apenas com viewport ≥1024px; sem overflow em 375px.
  • Nunca invente depoimentos, métricas ou clientes; mantenha o conteúdo existente.
  • Rejeite a lista anti-slop (references/design-system.md §8).

Portões de Decisão

SituaçãoAção
Baseado em tipografia, cortes de cor chapadaSwiss Kinetic: design-system.md, assets/web, assets/video
3D, tátil, estilo pôster/impressãoRiso Shader: shader-print.md, assets/shader/
AmbosHíbrido: campo de shader atrás de tipografia cinética sobre áreas chapadas (tokens on-*)
Cor da marca conhecida`palette.mjs --brand "#HEX" --format css
Preset--list (mostra nome, tags, amostras) → --preset <nome>
Me surpreendaInfira setor/mood do README, conteúdo, CSS ou palavras do usuário → --surprise --mood "<tags>" --seed <n>; explique o motivo; um novo sorteio via --exclude <nome>
Sitereferences/web-techniques.md; adapte assets/web/* para a stack
VídeoCopie assets/video/reel-template/; references/video-pipeline.md
Site + vídeoVídeo primeiro como storyboard, depois site a partir das mesmas cenas

Passos de Execução

  1. Detecte o output (site/vídeo/ambos) e a stack; leia o conteúdo existente e os assets da marca.
  2. Entrevista (intake), UMA pergunta por turno: estilo (Swiss Kinetic / Riso Shader / Híbrido / Me surpreenda), depois paleta (Cor da marca / Preset / Me surpreenda).
  3. Fontes vindas do fontPairing do preset ou de design-system.md §2. BPM: prefira 120 (quadros inteiros por batida em 30 e 60fps; 144/150 em 60fps); outros tempos arredondam batidas para quadros.
  4. Escreva uma tabela de cenas # | cena | função do campo | movimento marcante | batidas usando o ritmo canônico (§7).
  5. Construa a partir dos assets correspondentes.
  6. QA: web → assets/qa/qa-screenshots.js (1440 + 390, overflow, console), julgue apenas após animações estabilizarem; vídeo → quadros de teste, render completo, ffprobe, folha de contato.
  7. Relate resultados e o que não pôde ser verificado (ex.: áudio nunca é escutado).

Contrato de Saída

Retorne: paleta (+ motivo da surpresa) e resumo de contraste, tabela de cenas, arquivos criados/modificados, caminhos das evidências de QA, limitações conhecidas.

Referências

  • references/design-system.md — funções, tipografia, temporização, easing, movimentos, ritmo, anti-slop.
  • references/palettes.md — entrevista, presets, formatos de tokens.
  • references/web-techniques.md — GSAP/Lenis/canvas, acessibilidade, performance.
  • references/video-pipeline.md — canvas determinístico → navegador headless → ffmpeg, áudio.
  • references/shader-print.md — ray tracing WebGL2, meio-tom com 3 tintas, desregistro.

Habilidades Relacionadas