// TituloSerif: linhas em Instrument Serif que entram devagar (24 quadros): sobem 40 px, o desfoque 12 px limpa e o // tracking fecha. A palavra entre asteriscos recebe o degradê verde → turquesa, que se revela da esquerda 8 quadros depois. import React from 'react'; import {useCurrentFrame} from 'remotion'; import {COR, DEGRADE_TEXTO, FAM_A, FONTE_A, LARGURA_UTIL, caber, c01, e5, lerp, ob, seg, textoLimpo} from '../base'; export type TituloSerifProps = { /** "Onde a noite *acende.*" */ linhas: string[]; y?: number; tamanho?: number; inicio?: number; /** quadros entre uma linha e a próxima */ intervalo?: number; cor?: string; fim?: number; }; export const TituloSerif: React.FC = ({linhas, y = 640, tamanho = 230, inicio = 0, intervalo = 12, cor = COR.luz, fim}) => { const f = useCurrentFrame(); const sai = fim === undefined ? 0 : e5(seg(f, fim, fim + 16)); if (sai >= 1) return null; const tam = Math.min(...linhas.map((l) => caber(textoLimpo(l), tamanho, FAM_A, LARGURA_UTIL, 400, -0.01))); const passo = tam * 1.02, topo = y - ((linhas.length - 1) * passo) / 2; return
{linhas.map((l, i) => { const em = inicio + i * intervalo, p = ob(seg(f, em, em + 24), 1.15), q = e5(seg(f, em, em + 24)); const reveal = e5(seg(f, em + 8, em + 24)); return
{l.split('*').map((parte, j) => j % 2 === 1 ? {parte} : {parte})}
; })}
; };