// TituloLocal: o nome do lugar em DM Sans 800 branco sobre o magenta, até 2 linhas, subindo de uma máscara com overshoot. // `*palavra*` ganha um bloco creme com letra magenta. Embaixo, uma linha de apoio e um traço de rota que se desenha. import React from 'react'; import {useCurrentFrame} from 'remotion'; import {COR, FONTE, LARGURA, MONO, caber, e5, ov, partes, seg, textoLimpo} from '../base'; export type TituloLocalProps = { linhas: string[]; apoio: string; inicio?: number; /** centro vertical do bloco, px */ y: number; tamanho?: number; fim?: number; }; export const TituloLocal: React.FC = ({linhas, apoio, inicio = 0, y, tamanho = 230, fim = 1e9}) => { const f = useCurrentFrame(); if (f < inicio - 1 || f > fim + 12) return null; const tam = Math.min(...linhas.map((l) => caber(textoLimpo(l), tamanho, 880, 800, -0.04, 'MP DM Sans'))); const alt = tam * 1.12, topo = y - (linhas.length * alt) / 2, sai = e5(seg(f, fim, fim + 10)); const traco = e5(seg(f, inicio + 16, inicio + 36)); return
{linhas.map((l, i) => { const p = ov(seg(f, inicio + i * 6, inicio + i * 6 + 16)); return
{partes(l).map((s, k) => s.d ? {s.t} : {s.t})}
; })} 0.98 ? 1 : 0} />
{apoio}
; };