Communitygithub.com

thatrebeccarae/claude-marketing

Melhores práticas de produção de vídeo com Remotion — animações spring, padrões de interpolação, efeitos de desenho SVG, transições de cena, animações de gráficos, integração de áudio e renderização. Use ao criar vídeos programáticos com Remotion, conteúdo animado ou vídeos de marketing com código.

O que é claude-marketing?

Esta skill fornece diretrizes e padrões consolidados para a produção de vídeos programáticos com a biblioteca Remotion. Ela abrange desde animações spring (com presets para efeitos saltitantes, suaves, nítidos e escalonados) até padrões de interpolação para zoom de câmera, paralaxe e simulação de rolagem. A skill também inclui técnicas para animações de desenho SVG, transições de cena usando TransitionSeries, animações de gráficos (barras, linhas, pizza, contagem numérica) e integração de áudio, sempre com foco em desempenho e boas práticas. Suportada em qualquer plataforma que use Remotion (como Claude Code, Cursor, Codex), ela ensina a evitar anti-padrões como useEffect para animações ou CSS transitions, promovendo o uso de useCurrentFrame() e interpolate() para um controle frame a frame preciso e eficiente.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/thatrebeccarae/claude-marketing/tree/HEAD/skills/remotion-video

Perguntar na sua IA favorita

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

Documentação

Produção de Vídeo com Remotion

Melhores práticas para construir vídeos programáticos com Remotion — animações, transições, gráficos e renderização.

Instalação

git clone https://github.com/thatrebeccarae/claude-marketing.git && cp -r claude-marketing/skills/remotion-video ~/.claude/skills/

Capacidades Principais

  • Presets de animação spring (saltitante, suave, nítido, escalonado)
  • Padrões de interpolação (zoom de câmera, paralaxe, simulação de rolagem)
  • Animações de desenho SVG (traçado de caminho, revelação de traço)
  • Transições de cena via TransitionSeries
  • Camadas AbsoluteFill para composição
  • Animações de gráficos (crescimento de barras, desenho de linhas, revelação de pizza, números crescentes)
  • Integração e sincronização de áudio
  • Configuração de renderização

Presets Spring

Use spring() do Remotion para animações baseadas em física:

PresetConfiguraçãoCaso de Uso
Saltitantemass: 0.5, damping: 8, stiffness: 120Revelações divertidas, saltos de logotipo
Suavemass: 1, damping: 15, stiffness: 80Transições de UI, deslizamentos
Nítidomass: 0.8, damping: 20, stiffness: 200Interações rápidas, alternâncias
EscalonadoQualquer preset com deslocamento de quadro por itemRevelações de listas, animações de grade
import { spring, useCurrentFrame, useVideoConfig } from "remotion";

const frame = useCurrentFrame();
const { fps } = useVideoConfig();

const scale = spring({
  frame,
  fps,
  config: { mass: 0.5, damping: 8, stiffness: 120 },
});

Padrões de Interpolação

Zoom de Câmera

import { interpolate } from "remotion";

const zoom = interpolate(frame, [0, 30], [1, 1.5], {
  extrapolateRight: "clamp",
});

Camadas de Paralaxe

const bgX = interpolate(frame, [0, 100], [0, -50]);
const fgX = interpolate(frame, [0, 100], [0, -150]);

Simulação de Rolagem

const scrollY = interpolate(frame, [0, 90], [0, -800], {
  extrapolateRight: "clamp",
});

Desenho SVG

Anime strokeDashoffset para revelar caminhos SVG:

const pathLength = 500;
const draw = interpolate(frame, [0, 60], [pathLength, 0], {
  extrapolateRight: "clamp",
});

<path
  d="..."
  strokeDasharray={pathLength}
  strokeDashoffset={draw}
/>

Padrões de Animação de Gráficos

PadrãoTécnica
Crescimento de barraAnimar altura de 0 até o alvo, escalonar cada barra em 3-5 quadros
Desenho de linhaCaminho SVG com animação de strokeDashoffset
Revelação de pizza/rosquinhaAnimar parada de conic-gradient ou arco SVG
Números crescentesInterpolar de 0 até o alvo, Math.round() para exibição

Transições de Cena

import { TransitionSeries, linearTiming } from "@remotion/transitions";
import { fade } from "@remotion/transitions/fade";

<TransitionSeries>
  <TransitionSeries.Sequence durationInFrames={90}>
    <CenaUm />
  </TransitionSeries.Sequence>
  <TransitionSeries.Transition
    timing={linearTiming({ durationInFrames: 15 })}
    presentation={fade()}
  />
  <TransitionSeries.Sequence durationInFrames={90}>
    <CenaDois />
  </TransitionSeries.Sequence>
</TransitionSeries>

Regras de Desempenho

  1. Nada de useEffect para animações. Use useCurrentFrame() + interpolate().
  2. Memorize componentes estáticos. React.memo para tudo que não depende do quadro.
  3. Pré-carregue assets. staticFile() para locais, prefetch() para URLs remotas.
  4. Mantenha composições abaixo de 30s para iteração rápida de renderização durante o desenvolvimento.
  5. Teste na resolução alvo (1920x1080 ou 1080x1080) antes da renderização final.

Anti-Padrões

  • Nada de CSS transition ou animation — use interpolate() e spring() do Remotion
  • Nada de setTimeout ou setInterval — temporização baseada apenas em quadros
  • Nada de posicionamento absoluto em pixels para layouts responsivos — use AbsoluteFill + flex
  • Nada de objetos style inline recriados a cada quadro — extraia para constantes ou useMemo
  • Nada de áudio não controlado — sempre defina volume e startFrom explícitos

Para exemplos completos de código e modelos de composição, consulte REFERENCE.md.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Habilidades Relacionadas