Communitygithub.com

reel-motion-graphics

Transforme um roteiro ou conceito em um reel explicativo 9:16 com a marca (tech de luxo, areia quente sobre preto próximo, glassmorfismo, CSS 3D, Bodoni + Instrument Sans) construído no HyperFrames, com a animação acima da dobra e a cabeça do apresentador abaixo.

O que é reel-motion-graphics?

Esta skill cria reels de motion graphics no estilo proprietário desenvolvido originalmente para o vídeo "Upcycling em 30 Segundos". Ela utiliza o HyperFrames como plataforma base e gera um projeto HyperFrames completo, um MP4 renderizado e um player de artefato ao vivo. O fluxo de trabalho começa com a leitura de um roteiro ou conceito, a partir do qual a skill planeja os beats visuais (cartão de título, 2 a 5 etapas e um fechamento opcional), produz um storyboard em `STORYBOARD.md` para aprovação do usuário e, em seguida, constrói o projeto seguindo regras rigorosas de marca. O template funcional `template/` serve como ponto de partida e referência de qualidade; a skill substitui seu conteúdo pelo novo roteiro preservando todas as regras de estilo. As regras da casa incluem uma grade de 4px, uma dobra equidistante entre animação e apresentador, uso exclusivo das fontes Bodoni e Instrument Sans com arquivos opsz18, um diagrama world contínuo ao longo de todos os beats, determinismo via GSAP timelines pausadas, e um conjunto de verificações (check, snapshot, measure-fold, audit-grid) antes da entrega final. Quando a biblioteca de primitivas não possui um gráfico adequado para um beat, a skill pausa e solicita ao usuário um link do catálogo HyperFrames, restiliza o componente importado para o padrão da marca e o adiciona à biblioteca para reutilização futura.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/jamesisbuilding/App-Building-Skills/tree/main/skills/reel-motion-graphics

Perguntar na sua IA favorita

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

Prévia

Do README da skill

Documentação

Reel motion graphics

Esta skill cria reels no estilo proprietário desenvolvido originalmente para "Upcycling em 30 Segundos". template/ é aquele reel como um projeto HyperFrames funcional, portanto uma cópia nova renderiza corretamente antes de você alterar qualquer coisa. Seu trabalho é substituir seu conteúdo pelo novo roteiro, mantendo todas as regras abaixo.

Carregue /hyperframes-core para o contrato de composição antes de escrever o HTML da composição. Carregue /hyperframes-animation apenas se precisar de um padrão de movimento que não esteja em references/primitives.md.

1. Leia o roteiro e planeje os beats

Obtenha ou deduza os itens a seguir, e pergunte apenas pelo que muda o filme:

  • O roteiro ou conceito. Obrigatório.
  • Imagem do apresentador (MP4) ou uma foto. Sem uma, mantenha a imagem placeholder do template.
  • Crédito da fonte para a sobrancelha do título, ex. ICLR 2023 · Author et al..
  • Duração alvo. Padrão 30s; 20–60s funciona.

Divida o roteiro em: um cartão de título (cerca de 4s), 2–5 etapas (4,5–6s cada), e um opcional resultado/fechamento (cerca de 5,5s). Para cada etapa escreva:

  • um título em palavras simples mais um acento itálico de 1–2 palavras ("Copie o MLP oito vezes"), com no máximo cerca de 22 caracteres para caber em 656px a 60px;
  • uma legenda: linha 1 é uma frase de no máximo cerca de 34 caracteres (Bodoni itálico 40px), e linha 2 é uma frase de suporte com no máximo cerca de 40 caracteres;
  • o movimento do diagrama a partir do vocabulário de primitivas (references/primitives.md → "Writing a new diagram").

Marque cerca de 2,5 palavras faladas por segundo se as legendas espelharem a narração. Escreva o plano em STORYBOARD.md no projeto (beat, intervalo de tempo, título, legenda, movimento visual), mostre ao usuário e construa após aprovação. Um roteiro curto já aprovado pelo usuário pode ir direto para a construção.

2. Scaffold

Esta skill vive no projeto Reel Creator (.claude/skills/reel-motion-graphics/). Execute comandos a partir da raiz do projeto e coloque cada novo reel em reels/<slug>/. Caminhos de script abaixo como scripts/solve-fold.py são relativos à pasta desta skill.

.claude/skills/reel-motion-graphics/scripts/new-reel.sh reels/<slug> [presenter.jpg|.mp4]

Para vídeo do apresentador, substitua o <img id="presenter"> em index.html por: <video id="presenter" class="clip" src="assets/presenter.mp4" data-start="0" data-duration="<D>" data-has-audio="true" playsinline></video> O CSS #presenter (cover, âncora 20%, abaixo de --fold) se aplica inalterado.

3. Construa: edite os dados primeiro, depois escreva o diagrama

ArquivoO que alterar
index.htmlRaiz e hosts data-start/data-duration para corresponder ao plano. Hosts: bg (todo), title (0–4), headings e diagram (4–fim), result (sua janela), captions (todo), presenter (todo).
compositions/title.htmlCrédito da sobrancelha, as duas linhas de exibição, as duas linhas de tese e o mini diagrama se a ideia não for "1 → muitos".
compositions/headings.htmlApenas o array STEPS (segundos relativos ao host). As barras e "Etapa n de N" são derivadas dele.
compositions/captions.htmlApenas o array CAPS (segundos globais). Entre cerca de 0,35s após o início de sua etapa e saia no final da etapa.
compositions/diagram.htmlReescreva o mundo para o novo assunto, usando as primitivas. Mantenha a estrutura lens/world/drift, o padrão token-clock e a recessão de fundo.
compositions/result.htmlRótulos de estatísticas, valores, contadores e linhas de metadados, ou exclua o host se o roteiro não tiver números.
compositions/bg.htmlGeralmente inalterado. Dimensione suas repetições yoyo para que terminem na duração da raiz.

Quando a biblioteca não tiver um gráfico adequado: peça um link HyperFrames

A biblioteca é references/primitives.md. Quando um beat precisar de um visual que nenhuma primitiva cubra (um tipo de gráfico, mapa, linha do tempo, comparação ou qualquer outra coisa não listada), não improvise um do zero. Pause e peça ao usuário um link:

"O beat 3 ('a receita triplicou desde 2021') precisa de um gráfico de crescimento e a biblioteca não tem um. Você pode enviar um link do catálogo HyperFrames para um gráfico que você goste? Vou restilizá-lo para a nossa marca."

Para ajudar na escolha, você pode listar 2–4 candidatos de npx --yes [email protected] catalog "<palavra-chave>", mas deixe o usuário escolher. Continue construindo os outros beats enquanto espera e deixe um placeholder identificado no intervalo.

Quando o link chegar:

  1. Instale-o. O nome do item do registro é o último segmento do caminho do link do catálogo. Execute npx --yes [email protected] add <nome> --no-clipboard --json a partir do projeto. Para um link que não seja do registro, leia a página ou fonte e reconstrua-o.
  2. Restilize-o para as regras da casa:
    • troque as cores pelos tokens da marca e os painéis por .glass;
    • use Bodoni e Instrument Sans com os arquivos opsz-18;
    • coloque cada valor de espaçamento na grade de 4px;
    • ajuste à coluna de conteúdo e zonas;
    • adicione os acentos sheen, gloss e drift;
    • remova qualquer coisa fora da marca, como preenchimentos planos brilhantes, outras fontes ou estilos de sombra projetada.
  3. Conecte-o como um host de sub-composição na faixa de gráficos, ou incorpore seu movimento em diagram.html quando tiver que compartilhar o mundo contínuo. Em seguida, verifique, tire snapshot e corrija como de costume.
  4. Adicione-o à biblioteca. Acrescente uma entrada em references/primitives.md sob "Restyled from HyperFrames": o nome, o link de origem, o que mostra e seus parâmetros principais. Copie o arquivo restilizado para template/compositions/library/ para que o próximo reel possa reutilizá-lo sem perguntar novamente.

4. Regras da casa (todo reel, sem exceções)

  1. Dobra equidistante. A dobra fica no meio do caminho entre o conteúdo de animação mais baixo (parte inferior da legenda, cerca de y 900) e o topo da cabeça do apresentador. Resolva com scripts/solve-fold.py <imagem do apresentador ou um quadro> 900 e defina --fold em brand.css (um múltiplo de 4). Verifique com scripts/measure-fold.py <snapshot> <fold>. Com vídeo, verifique um quadro onde a cabeça está mais alta.
  2. Grade de 4px. Todo padding, gap, deslocamento, tamanho e line-height é um múltiplo de 4. Contêineres preenchem uniformemente e dimensionam para seu conteúdo; nunca dê a um card uma altura fixa. Execute scripts/audit-grid.sh <projeto>; os únicos resíduos permitidos são bordas finas, raios de brilho e deslocamentos de movimento de tween.
  3. Serifa robusta. Use apenas os arquivos Bodoni *-opsz18.woff2 em fonts/. O tamanho óptico automático da fonte variável escolhe cortes finos de exibição que desaparecem após H.264 e redução de escala do telefone. Nunca volte ao arquivo variável ou à faixa 6..96 do Google.
  4. Zonas. App bar 0–175 (manter livre), animação 192–780, faixa de legenda 812–904, apresentador abaixo de --fold, coluna de conteúdo x 172–828 (livre do trilho direito). Legendas vivem em apenas uma faixa.
  5. Um mundo de diagrama contínuo. Elementos que persistem entre etapas vivem em diagram.html e se movem. Eles nunca reentram em um novo arquivo de cena.
  6. Determinismo. Use apenas timelines GSAP pausadas registradas em window.__timelines["<id>"]. Use rng() ou hh() com semente em vez de Math.random, e sem requestAnimationFrame, clocks ou rede. Contadores animados e partículas são funções puras do valor de um tween proxy.
  7. Autor seguro para lint.
    • Mire na própria raiz de uma sub-composição com document.querySelector('[data-composition-id="<id>"]:not([data-composition-src])'), nunca #root (várias raízes compartilham esse id uma vez montadas).
    • Prefixe ids de elementos com a composição (dg-, hd-, rs-, ti-).
    • Use um fromTo por par elemento-propriedade, depois to.
    • Nunca faça tween de letterSpacing, width, height, top ou left; use transformações e opacidade.
    • Espace rótulos únicos para que não se sobreponham em repouso.
  8. Aparência. Fundo preto próximo quente com luz flutuante e granulação; .glass para cada painel; brilho dourado em acentos; pequena deriva de câmera em cada pausa; segure cada estado finalizado por pelo menos 1s.

5. Verifique, depois entregue

Execute estes comandos a partir do diretório do projeto:

npx --yes [email protected] check
npx --yes [email protected] snapshot --at <o ponto médio de cada beat>
  • check deve passar com 0 erros. Revise quaisquer avisos.
  • Olhe a folha de contato. Recorte e amplie qualquer quadro denso: procure por sobreposições, texto cortado, tokens pousando fora do alvo e padding irregular.
  • Execute measure-fold.py e audit-grid.sh, e corrija qualquer coisa que sinalizarem.
  • Renderize com npx --yes [email protected] render; o resultado vai para renders/. Faça uma cópia para compartilhamento com menos de 30 MB para visualização em telefone: ffmpeg -i renders/<arquivo>.mp4 -c:v libx264 -crf 23 -preset slow -pix_fmt yuv420p -movflags +faststart renders/<slug>-share.mp4
  • Player ao vivo: a partir da raiz do projeto execute node viewer/build.mjs. Ele reconstrói o player ao vivo de cada reel (reel/ mais cada reels/<slug>/) e escreve o carrossel viewer/index.html, com uma cópia por reel em viewer/reels/. Publique viewer/index.html no artefato da biblioteca de reels https://claude.ai/artifact/Joet84qdr6Kb47vYZzc8YR, passando cada viewer/reels/*.html em files. O usuário prefere o player HTML ao vivo a um vídeo incorporado. Para um único reel sozinho, execute node build-preview.mjs em sua pasta para escrever dist/preview.html.
  • Informe o tempo de execução, o que foi verificado (quadros, gaps da dobra, auditoria) e qualquer coisa ainda não verificada.

Referência

  • references/primitives.md: cada bloco de construção visual, com o arquivo que o implementa.
  • template/: o reel completo do Upcycling. É o padrão de qualidade; compare o novo trabalho contra ele.

Individual skills in this repo

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

app-icon-design

Create, revise, and audit app icons using Apple's Human Interface Guidelines, with a clear visual identity and production-ready deliverables.

app-keyword-research

Validate an app idea against the App Store before building it. Turns the idea into search phrases, measures demand (App Store autocomplete) and competition (current top-10 apps) for each, ranks keywords by opportunity, and maps which apps own the market. Use when the user wants keyword research, ASO, "is there demand for…", "who are the competitors for…", "what should we call it / which keywords", or to validate or compare app ideas.

app-offer

Designs one opinionated "Grand Slam Offer" for any app idea, new or already shipped, by running Alex Hormozi's $100M Offers method adapted to app stores. It covers the market and niche, the commodity check, a value-equation audit, the problem inventory, delivery vehicles, the trimmed value stack, pricing and tiers, scarcity, urgency, bonuses, the guarantee, naming, the paywall per placement, the onboarding fast win, a test plan and a ship plan. It works within App Store and Google Play rules. For a shipped app it reads the code and notes first and produces a before/after. Use it when the user says "/app-offer", "run app-offer on <idea>", "make a grand slam offer for my app", "Hormozi my app", "price my app" or "design my paywall offer", or asks how to package, price, name, guarantee or paywall an app. It writes offer/grand-slam-offer.md (or ./<app-slug>-grand-slam-offer.md for a new idea).

brand-reference-pack

Build or refresh a shortform brand reference pack for any app from its real surfaces — website, App Store listing and reviews, socials, the live app (driven end to end on the simulator) and its code tokens — plus a status check of the upstream foundations (ICP, voice of customer, brand voice). Produces the context that content formats and design decisions are made from, as markdown, tokens.json and a PDF. Use for "build a brand pack for <app>", "refresh the brand pack", "capture the site/app/socials for shortform", "/brand-reference-pack".

deep-work

Timekeeper and scribe for the user's own timeboxed build session, default 90 min, also 1h / 1.5h / 2h (Orient, Build, Verify, Harden, Close, scaled to the block). Use when the user says "start a session", "deep work", "90 min block", "work block", or invokes /deep-work. Subcommands: status, park <note>, close, abort.

new-app-info

Builds the information pack Apple asks for when App Review replies "We need additional information to better understand the app". It covers all six required items: (1) a screen recording on a physical device, as a shot list the user records; (2) the app's purpose and target audience; (3) setup and main features, with any login credentials or sample files; (4) the external services the app uses; (5) regional differences; (6) regulated industry or protected third-party material. It also runs Apple's "Prevent common issues" checks. Every answer comes from the app's own code (accounts, user-generated content, in-app purchases, SDKs, locales, screen-capture blocking, data deletion). It reads the connected iPhone's iOS version and checks it is the latest. It ends by telling the user to paste the reply into App Review Information → Notes. Use it when the user pastes that App Review message, says "/new-app-info", "we got rejected, they want more info", "answer App Review", or "make the App Store review pack". It w...

Habilidades Relacionadas