MÓDULO 2.8 Trilha 2 · Recursos

🎬 Intro & Outro

Aberturas que prendem a atenção e encerramentos que convertem: os 9 templates desta categoria cobrem desde countdowns dramáticos até cards de inscrição animados para YouTube e redes sociais.

8
Tópicos
40
Minutos
Int
Nível
9
Templates

Conteúdo detalhado

1

🗺️ Visão geral — intros, outros e lower-thirds

Intros e outros são os primeiros e últimos frames que o espectador vê. Um intro fraco perde visualizações nos primeiros 5 segundos. Um outro sem call-to-action perde inscrições e cliques. Esses templates resolvem os dois lados.

INTRO conteúdo principal OUTRO cinematic-title countdown · chapter end-card · credits subscribe · quote lower-third flutua sobre o conteúdo principal

🎯 Conceito central

Todos esses templates usam o mesmo padrão: spring() para entradas com física natural + interpolate() para saídas suaves. A diferença está no quê anima — texto, sublinhas, anéis, partículas.

Hook de entrada
Os primeiros 5s determinam retenção
Lower-third
Overlay sobre conteúdo durante o vídeo
CTA final
Outro = conversão: inscreva-se / clique
Chapter title
Divide conteúdo longo em capítulos
2

🎞️ cinematic-title-intro — spring + sublinha

O cinematic-title-intro é o template de abertura mais usado: título sobe com física de mola (spring()), uma sublinha se expande da esquerda para direita, e o subtítulo faz fade in com delay. Resultado cinematográfico com ~50 linhas de código.

Três animações em sequência cinematic-title-intro.tsx
const titleY = spring({
  frame, fps, from: 50, to: 0, durationInFrames: 40,
  config: { damping: 14, mass: 0.8 },
});

const underlineWidth = interpolate(
  frame, [20, 50], [0, 100],
  { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
);

const subtitleOpacity = interpolate(
  frame, [40, 60], [0, 1],
  { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
);

💡 Dica prática

Troque a cor do underline para a cor da sua marca. Com uma linha de mudança no gradient você tem um intro completamente personalizado. Combine com fade-through-black antes para entrada do preto cinematográfica.

spring translateY
Título sobe com física natural
width interpolate
Sublinha expande 0→100%
delay via frame offset
Subtítulo começa no frame 40
damping 14
Baixo damping = bounce suave
3

⏱️ countdown-intro — anel 3-2-1-GO!

O countdown-intro usa um anel SVG com strokeDasharray animado para mostrar o progresso de cada segundo, enquanto o número no centro muda de 3 → 2 → 1 → GO com spring de escala.

Anel + número + GO countdown-intro.tsx
const circumference = 2 * Math.PI * 70;
const ringProgress = (frame % fps) / fps;
const dashOffset = circumference * ringProgress;

// GO! com spring de escala
const goScale = spring({
  frame: Math.max(0, frame - totalCountdownFrames),
  fps, config: { damping: 8, stiffness: 100 },
});

// SVG: anel gira -90deg (topo = início)
<svg style={{ transform: "rotate(-90deg)" }}>
  <circle stroke="#3b82f6"
    strokeDasharray={circumference}
    strokeDashoffset={dashOffset} />
</svg>

Contextos ideais

  • Streams ao vivo (intervalo antes do início)
  • Tutoriais técnicos com introdução energética
  • Vídeos de esporte, jogos, desafios cronometrados

Evite em

  • Conteúdo corporativo sério / formal
  • Vídeos emocionais ou narrativos
  • Quando o próprio conteúdo já tem introdução forte
strokeDashoffset
Progresso do anel por segundo
frame % fps
Reset a cada segundo
rotate(-90deg)
Início no topo do círculo
spring scale GO!
Bounce energético no final
4

📋 lower-third — barra nome/título

O lower-third é o overlay clássico de TV: uma barra aparece no terço inferior do frame com nome e cargo/função. Em jornalismo e entrevistas é padrão; em YouTube é um diferencial de profissionalismo.

1

Barra desliza da esquerda

Um elemento translateX(-100% → 0) com spring entra do limite esquerdo do frame.

2

Texto aparece com delay

Nome e cargo fazem opacity fade in após a barra estar visível — evita texto aparecendo antes do container.

3

Barra sai para a esquerda

Próximo ao fim da composição, a barra faz o caminho reverso com interpolate suave.

💡 Dica prática

Use lower-third com <Sequence from={fps * 3} durationInFrames={fps * 4}> para exibir a barra apenas em determinado trecho do vídeo. O useCurrentFrame() dentro da Sequence começa do zero — sem cálculos de offset manual.

position absolute
Overlay sobre o vídeo principal
bottom: 15%
Terço inferior da tela
Sequence
Controla quando aparece/some
semitransparente
bg rgba para não tapar o fundo
5

🔔 end-card + subscribe-reminder — conversão

O end-card exibe um card de call-to-action no fim do vídeo com botões de inscrição. O subscribe-reminder é um overlay flutuante que pode aparecer em qualquer momento — ambos são armas de conversão para canais YouTube.

subscribe-reminder como overlay subscribe-reminder.tsx
// Aparece no frame 90, fica 3s, some
const showAt = fps * 3;
const hideAt = fps * 6;

const opacity = interpolate(
  frame,
  [showAt, showAt + 10, hideAt - 10, hideAt],
  [0, 1, 1, 0],
  { extrapolateLeft: "clamp", extrapolateRight: "clamp" }
);

const translateY = spring({
  frame: Math.max(0, frame - showAt),
  fps, config: { damping: 12 },
  from: 60, to: 0,
});

Boas práticas

  • Exibir subscribe-reminder na metade do vídeo
  • End-card com 20s de duração (padrão YouTube)
  • Manter o cloche visual curto e objetivo

Erros comuns

  • Exibir subscribe-reminder muito cedo (antes de 30s)
  • End-card com mais de 4 elementos — confunde
  • Cores que conflitam com o conteúdo por trás
keyframes 4pts
Fade in → permanece → fade out
spring de entrada
Bounce da parte inferior
end-card 20s
Padrão YouTube para cards finais
Sequence wrapper
Controla timing sem math manual
6

💬 quote-card + title-split — impacto visual

O quote-card exibe uma citação com autor em destaque — ótimo para vídeos de motivação, entrevistas e destaques de aula. O title-split divide o título em dois blocos que se encontram no centro — efeito dramático para aberturas.

💡 title-split na prática

O truque do title-split é simples: dois spans, um com translateX(-80 → 0) e outro com translateX(80 → 0), ambos animados com spring no mesmo frame. O encontro no centro cria tensão visual que o espectador sente mesmo sem notar a mecânica.

title-split — dois lados se encontram title-split.tsx
const progress = spring({ frame, fps,
  config: { damping: 18, stiffness: 90 }
});

// Metade esquerda vem da esquerda
const leftX = interpolate(progress, [0, 1], [-80, 0]);
// Metade direita vem da direita
const rightX = interpolate(progress, [0, 1], [80, 0]);
dois spans
Cada metade animada independente
overflow hidden
Oculta as metades antes de entrar
quote-card
Citação + autor com fade sequencial
damping 18
Mais alto = encontro mais direto
7

📚 Biblioteca completa de Intro & Outro

Os 9 templates desta categoria — referência rápida:

chapter-title
templates/chapter-title.tsx
Número do capítulo com linhas decorativas
hook: interpolate width das linhas
cinematic-title-intro
templates/cinematic-title-intro.tsx
Título spring + sublinha + subtítulo fade
hook: spring translateY + interpolate
countdown-intro
templates/countdown-intro.tsx
Anel SVG 3-2-1-GO com spring de escala
hook: strokeDashoffset + spring scale
credits-roll
templates/credits-roll.tsx
Créditos rolando de baixo para cima
hook: translateY interpolate contínuo
end-card
templates/end-card.tsx
Card de CTA inscreva-se no final
hook: spring scale + opacity fade in
lower-third
templates/lower-third.tsx
Barra nome/título no terço inferior
hook: spring translateX + delay texto
quote-card
templates/quote-card.tsx
Citação com autor — fade sequencial
hook: interpolate opacity por elemento
subscribe-reminder
templates/subscribe-reminder.tsx
Overlay flutuante — aparece e some
hook: interpolate 4 keyframes
title-split
templates/title-split.tsx
Duas metades de texto se encontram
hook: spring ±80px → 0
9 templates
Da abertura ao encerramento
spring dominante
Física natural em todos os intros
overlay vs full
lower-third e subscribe são overlays
Sequence timing
Use Sequence para posicionar no tempo

📌 Resumo do módulo

cinematic-title-intro — spring + sublinha + subtítulo, o padrão de abertura cinematográfica
countdown-intro — strokeDashoffset animado para anel SVG 3-2-1-GO
lower-third — overlay TV/jornalismo para nome e cargo
end-card + subscribe-reminder — ferramentas de conversão para YouTube
title-split — dois blocos se encontram no centro com spring

Próximo Módulo:

2.9 — Logo & Branding: 9 animações de logotipo para identidade visual