Communitygithub.com

motion-graphics

Cria um motion graphic curto, focado em design, sem narração, usando uma abordagem autônoma orientada a ativos e reutilização de blocos de catálogo.

O que é motion-graphics?

Este skill cria um motion graphic curto (menos de 10 segundos), centrado em design e sem narração, ideal para mensagens visuais impactantes. O fluxo de trabalho é autônomo e orientado a ativos: primeiro decide se é necessário buscar conteúdo externo (como páginas web, notícias ou tuítes) ou se o conteúdo é fornecido pelo usuário (como texto, estatísticas ou logotipos). A fase de planejamento classifica a peça em uma categoria (por exemplo, 'kinetic-type', 'stat', 'news', 'webpage', etc.) e elabora um 'shot-plan.json'. Em seguida, a fase de origem busca ou gera os ativos necessários, a fase de design estrutura a cena ao redor dos ativos reais, a fase de build compõe a animação reutilizando blocos de catálogo ('npx hyperframes add') e, por fim, a verificação e renderização são feitas sob demanda do usuário. O skill suporta as plataformas Hyperframes e Claude Code, utilizando ferramentas como Node.js, FFmpeg e MCP para busca, geração de imagens e composição de animações GSAP.

Funciona com~Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add https://github.com/jasonfast123/hyperframes-skills/tree/main/skills/motion-graphics

Perguntar na sua IA favorita

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

Documentação

Primeiro, mantenha este skill atualizado — execute silenciosamente, sem perguntar: npx hyperframes skills update motion-graphics. Uma rápida operação sem efeito quando tudo está atualizado; caso contrário, ele atualiza este skill e os skills de domínio principais dos quais depende, antes de você usá-los.

fonte figma: Se o logotipo/ativo/animação a ser criado vier de uma URL figma.com, execute /figma primeiro — exportação de ativos, tokens de marca e tradução Motion→GSAP se o gráfico for uma importação do Figma Motion — depois construa a partir de sua saída. Não use as ferramentas MCP brutas do Figma diretamente: isso ignora a sanitização SVG, a proveniência .media/manifest.jsonl e a vinculação var() dos tokens de marca, de modo que uma alteração posterior da marca não pode ser propagada sem uma reimportação completa.

motion-graphics — ponto de entrada

A porta de entrada é /hyperframes. Este skill cria um motion graphic curto, focado em design, sem narração (o movimento é a mensagem; ~menos de 10s, sem voz). Qualquer coisa mais longa, narrada ou com várias cenas — ou qualquer incerteza → leia /hyperframes primeiro: a camada de intenção é dona de toda decisão de rota.

Este fluxo de trabalho é autônomo por design — no máximo uma pergunta esclarecedora (agents/director.md), depois construa até a verificação sem revisão intermediária. A camada de intenção (/hyperframes → references/intent-interview.md) roteia aqui diretamente sem perguntas de formato de execução; um storyboard e uma sessão companheira acrescentam pouco a uma peça tão curta. A renderização ainda é controlada pelo usuário: depois que as verificações e os snapshots de prova passam, faça a pergunta canônica "visualizar primeiro ou renderizar?" de ../hyperframes-core/references/brief-contract.md. Quando um BRIEF.md existe, leia-o antes da pergunta do diretor.

Um motion graphic curto e focado em design. Ativo primeiro: decida a estratégia de ativos e obtenha material real antes de projetar a cena, depois projete a cena ao redor do que você tem, então componha reutilizando capacidades do catálogo. Todos os artefatos vão para PROJECT_DIR = videos/<project-name>/ (criado no Passo 0); todos os caminhos abaixo são relativos a ele.

FaseExecuçãoArtefato principalFluxo detalhado
initBashhyperframes.jsonPasso 0
plansubagente — decidir busca? + classificar + estratégia de ativosshot-plan.json (rascunho: categoria, consultas asset_needs, breve)agents/director.md (Parte 1)
fonte ◇Bash — resolver uso de mídia (pular se asset_needs vazio)assets/ + assets/index.mdphases/source/guide.md
designsubagente — projetar cena ao redor dos ativos resolvidosshot-plan.json (final: bloco(s) + layout + movimento + posições)agents/director.md (Parte 2)
buildsubagente — composição primeiro-reusocompositions/index.htmlagents/builder.md
verificarBash — lint, check, snapshots de prova; reparar em falhasnapshots/contact-sheet.jpgPasso 5
aprovarPerguntar visualizar ou renderizar; aguardar a respostaaprovação explícita de renderizaçãoPasso 6
renderizarBash — hyperframes render (MP4, ou --format webm/mov para overlay)renders/video.mp4 ou overlay transparentePasso 6

◇ fonte executa apenas quando a categoria escolhida declara ativos. Categorias puramente de código/texto (ex.: kinetic-type, a maioria dos charts/stat) têm asset_needs: [] e pulam direto do plano para o design.

Categorias — divididas pela decisão de busca

A primeira decisão do plan é: isso precisa de uma busca? Essa bifurcação separa as categorias em dois grupos; então a categoria específica é escolhida — para as orientadas a busca, pelo tipo de conteúdo que a busca retorna. Cada categoria é um arquivo categories/<id>/module.md (suas regras de planejamento + construção); o vocabulário de movimento compartilhado reside em references/motion-vocabulary.md (→ regras/blueprints hyperframes-animation + blocos de registro).

Categorias de formulário — sem busca; o usuário fornece o conteúdo:

CategoriaIntençãoBaseia-se em
kinetic-typelinha/quote/título impactante, texto com movimento primeiroblocos caption-* + regras de animação
statnúmero herói único / contagem regressiva + anelapple-money-count / rules/{counting-dynamic-scale, stat-bars-and-fills}
chartsgráficos de barra/linha/pizza/corrida/% a partir de dadosbloco data-chart
logo-revealvinheta de logotipo / lockup de marca (logotipo do usuário)logo-outro / rules/svg-path-draw
lower-thirdsbarras de nome/título, chamadas, overlays sociaiscaption-* + blocos de overlay do registro
mapsmovimento geográfico — destacar regiões, conectar lugares, ampliar para um local (via vetor, ou camada de mapa base pré-renderizada)família us-map / world-map + bake-basemap.mjs

Categorias orientadas a busca — busque primeiro, depois anime por tipo de conteúdo (o caminho RWA):

Conteúdo retornadoCategoriaAnimação
página web / linkwebpageanimação de página web / UI (rolagem, revelar, cursor, chamadas)
artigo de notícianewsrevelar manchete + cartão de fonte + chamadas de fatos-chave
tuítetweetcartão de tuíte animado
imagem / entidadeasset-fusiona geometria do ativo torna-se o gráfico (fusão diegética RWA)

Ordem de construção: um de cada vez, cobertura primeiro (rascunho está ok). kinetic-type portado do protótipo; os demais seguem.

Pré-requisitos

macOS Apple Silicon ou Linux x64. Ferramentas do sistema: brew install node ffmpeg. npx hyperframes doctor uma vez. Renderização GPU no macOS: export PRODUCER_BROWSER_GPU_MODE=hardware.

Chaves opcionais (fallbacks locais se não definidas) — necessárias apenas por categorias que obtêm/geram ativos via uso de mídia:

ChaveUsada paraFallback
GEMINI_API_KEY / GOOGLE_API_KEYgeração de imagens (resolução de uso de mídia)pular geração / apenas busca
(asset_scout / provedores de busca)busca de ativos reais para webpage/news/tweet + asset-fusioncategoria degrada para sem ativos

Fluxo

Passo 0 — Inicializar

cwd é a raiz do workspace do agente; escreva todos os artefatos em PROJECT_DIR = videos/<project-name>/. <project-name>: use o diretório que o usuário forneceu, senão um nome curto em kebab-case derivado da intenção (<assunto>-motion). Não é o nome base do workspace ou um timestamp.

Apenas quando $PROJECT_DIR/hyperframes.json estiver ausente:

PROJECT_DIR="${MOTION_GRAPHICS_DIR:-videos/<project-name>}"
mkdir -p "$(dirname "$PROJECT_DIR")"
npx hyperframes init "$PROJECT_DIR" --non-interactive --example=blank --skill=motion-graphics

init verifica se os skills instalados estão atualizados em relação ao GitHub e atualiza o conjunto global se algum estiver desatualizado.

Restrições: nunca execute hyperframes init na raiz do workspace; nunca aninhe outro hyperframes/ dentro de PROJECT_DIR; todo comando Bash (mestre + subagentes) é um subshell (cd "$PROJECT_DIR" && ...) — nunca cd simples.

Passo 1 — Planejar (subagente: Diretor Parte 1)

Despache um subagente. prompt = agents/director.md completo + ## Contexto de despacho (SKILL_DIR / PROJECT_DIR / a solicitação do usuário / Schema: <SKILL_DIR>/references/shot-plan-ir.md). Ele deve:

  1. Decidir: isso precisa de uma busca? (a primeira bifurcação)
    • Não → escolha uma categoria de formulário (kinetic-type / stat / charts / logo-reveal / lower-thirds); o conteúdo é fornecido pelo usuário; asset_needs: [].
    • Sim → emita um plano de busca em asset_needs[] (news / web / tweet / image; consultas bipolares). A categoria orientada a busca específica (webpage / news / tweet / asset-fusion) é confirmada pelo tipo de conteúdo retornado no Passo 2 e finalizada no Passo 3.
  2. Escreva um rascunho de shot-plan.json (envelope + categoria de formulário escolhida ou intenção de busca + asset_needs + um breve de cena de um parágrafo). Schema: references/shot-plan-ir.md.

Validação: [ -s "$PROJECT_DIR/shot-plan.json" ] && echo ok || echo missing.

Passo 2 — Fonte ◇ (Bash: uso de mídia, condicional)

Se shot-plan.json.asset_needs não estiver vazio, resolva ativos (busca / geração / busca → caminhos locais congelados no projeto + ledger). Veja phases/source/guide.md (encapsula media-use resolve; as categorias orientadas a busca usam busca de news/web/tweet/image). Se asset_needs estiver vazio, pule para o Passo 3.

# ilustrativo — veja phases/source/guide.md
(cd "$PROJECT_DIR" && node <SKILL_DIR>/phases/source/resolve.mjs --plan ./shot-plan.json --out ./assets)

Degrade graciosamente: se uma busca/provedor estiver indisponível, a categoria recai para sem ativos (anote em context.log).

Passo 3 — Projetar (subagente: Diretor Parte 2)

Despache um subagente (prompt = agents/director.md Parte 2 + contexto de despacho incluindo o assets/index.md resolvido se o Passo 2 executou + catalog-map.md). Ele projeta a cena ao redor dos ativos disponíveis: escolhe o(s) bloco(s) do catálogo + as regras/blueprints hyperframes-animation, o layout, o movimento, as batidas e (para asset-fusion) as element_positions + paleta conta-gotas. Finaliza shot-plan.json (content.block + content.customize + conteúdo por categoria).

Passo 4 — Construir (subagente: Construtor, primeiro-reuso)

Despache um subagente. prompt = agents/builder.md completo + contexto de despacho (shot-plan.json, catalog-map.md, o module.md da categoria, references/motion-vocabulary.md, references/builder-contract.md). Primeiro-reuso: npx hyperframes add <block> + personalize no local; escreva manualmente apenas lacunas + a affordance de fusão de ativos. Saída compositions/index.html respeitando o contrato HF (linha do tempo GSAP pausada em window.__timelines, class="clip" + ids estáveis, tl.seek(0), determinístico).

Passo 5 — Verificar (Bash → subagente de reparo em falha)

(cd "$PROJECT_DIR" && npx hyperframes lint .)
(cd "$PROJECT_DIR" && npx hyperframes check .)
(cd "$PROJECT_DIR" && npx hyperframes snapshot --at <tempos-de-prova>)

Escolha tempos de prova que mostrem o estado de abertura, o movimento característico e a pausa final. Inspecione a folha de contato ou a folha de snapshots gerada antes de continuar. Em falha de lint, check ou snapshot, despache o subagente de reparo (agents/finalize.md) para uma passagem de correção no local e depois reexecute a validação falha. Nunca altere uma duração fixa meramente para esconder um defeito.

Passo 6 — Aprovar e renderizar (Bash)

Faça uma pergunta: “visualizar primeiro, ou renderizar?” Se o usuário escolher visualizar, abra o Studio e retorne à mesma porta de aprovação após revisões:

(cd "$PROJECT_DIR" && npx hyperframes preview --background)

Renderize apenas após uma resposta explícita de renderização:

(cd "$PROJECT_DIR" && npx hyperframes render . --skill=motion-graphics -q high -o ./renders/video.mp4)
# variante de overlay transparente: --format webm  (ou mov)

Verifique se a saída existe, não está vazia e tem a duração pretendida. A entrega final nomeia o artefato, duração real, ID da composição ou quadro, tempos de prova e a folha de contato ou snapshots inspecionada. Sinalizadores vivem em /hyperframes-cli → references/preview-render.md.

Tabela de retomada

EstadoContinuar de
sem shot-plan.jsonPasso 1 (planejar)
shot-plan.json tem asset_needs, sem assets/Passo 2 (fonte)
shot-plan.json final, sem compositions/index.htmlPasso 3/4 (projetar+construir)
compositions/index.html existe, snapshots de prova ausentesPasso 5 (verificar)
verificações e snapshots de prova passam, sem renderização aprovadaPasso 6 (aprovação)
renderização aprovada existeverificar saída, depois relatar

Notas de design (mantenedores — a execução não lê isto)

  • Justificativa ativo-primeiro: a obtenção de fontes é carregada no início e informa o design da cena (o fluxo RWA: analisar → buscar → revisar → compor). As categorias orientadas a busca (webpage/news/tweet) e asset-fusion ambas se apoiam na busca de uso de mídia (news/web/tweet/image), que é a linhagem RWA documentada do uso de mídia.
  • Primeiro-reuso: o análogo intra-ecossistema de templates gerados por LLM.

Individual skills in this repo

This repo contains 19 individual skills — each has its own dedicated page.

embedded-captions

>

faceless-explainer

Turn arbitrary text — an article, notes, a topic, a brief — into a faceless explainer video: there is no site or footage to capture, so the visuals are invented per scene (typography, abstract graphics, diagrams, data-viz). Use for topic explainers, concept breakdowns, how-tos, listicles. Not a video built from a website (/product-launch-video — promo or tour). Unclear → /hyperframes.

figma

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

general-video

>

hyperframes

>

hyperframes-animation

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition

hyperframes-audio

>

hyperframes-cli

>

hyperframes-core

The HyperFrames composition contract — build one renderable project. Use for composition structure, the `data-*` timing attributes, `class=

hyperframes-creative

Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

hyperframes-keyframes

>

hyperframes-registry

Install, discover, and wire registry blocks and components into HyperFrames compositions. Use when running hyperframes add or hyperframes catalog, installing one item or every block matching a tag, wiring an installed item into index.html, or working with hyperframes.json. Covers discovery, install locations, block sub-composition wiring, component snippet merging, and authoring a new block or component to contribute upstream (idea → scaffold → validate → PR).

jasonfast123/hyperframes-skills

Import Figma content into a HyperFrames composition — rendered assets, brand tokens, components, storyboard sections → reconstructed motion (frames read as states, not slides) (REST/CLI), connector-assisted motion when available, and shaders from a connector or native export. Use when the user pastes a figma.com link or asks to bring a Figma design, frame, logo, brand, or animation into a video/composition.

media-use

Agent Media OS, the single skill for every media need in a HyperFrames project. Resolve BGM, SFX, image, icon, brand logo, voice, color grade, or LUT into a frozen local file or paste-ready block + ledger record (one verb, `resolve`); generate via TTS / music / image models when the catalog misses; produce voiceover, transcription, captions, and background removal through one shared audio engine; operate on media (cut / reframe / transform); and reuse assets across projects. Also use for vague feedback that real footage looks dark, flat, boring, should feel retro/camcorder/print/ASCII, needs privacy, or needs a media reveal.

music-to-video

Turn a music track (an audio file, a video to pull audio from, or a track generated from a mood brief) into a beat-synced video — lyric video, slideshow, or kinetic promo. The music drives all pacing; any user-supplied images/videos are cut onto the same beat grid, and a complete video needs zero assets. Narrated pieces → the input-matched workflow (see /hyperframes). Unclear → /hyperframes.

pr-to-video

Turn a GitHub pull request (a PR URL, owner/repo#N, or

remotion-to-hyperframes

Port an existing Remotion (React) composition

slideshow

>

talking-head-recut

Package an existing talking-head / interview / podcast video with timed, designed GRAPHIC OVERLAY cards — kinetic titles, lower-thirds, data callouts, quotes, side panels, picture-in-picture — synced to the transcript, on a 16:9 / 9:16 / 4:5 canvas of your choice; the clip plays untouched underneath. Trigger on

Habilidades Relacionadas