// Fundo: céu azul-petróleo com 4 faixas de aurora (verde, turquesa, violeta, rosa) que ondulam e cujo matiz derrapa // ±40° a cada 400 quadros. As faixas são polígonos com degradê vertical, desfocados (34 px) e misturados em screen. import React from 'react'; import {AbsoluteFill, useCurrentFrame} from 'remotion'; import {COR} from '../base'; export type FundoProps = { /** cores das 4 faixas (padrão: verde, turquesa, violeta, rosa) */ cores?: string[]; /** 0..1.5 */ intensidade?: number; velocidade?: number; }; const FAIXAS = [{y: 520, h: 520, a: 120, k: 0.0042, s: 0.011, op: 0.6}, {y: 640, h: 480, a: 150, k: 0.0035, s: -0.009, op: 0.5}, {y: 420, h: 420, a: 90, k: 0.006, s: 0.014, op: 0.42}, {y: 760, h: 380, a: 110, k: 0.0048, s: -0.012, op: 0.34}]; export const Fundo: React.FC = ({cores = [COR.verde, COR.turquesa, COR.violeta, COR.rosa], intensidade = 1, velocidade = 1}) => { const f = useCurrentFrame() * velocidade; return {cores.map((c, i) => )} {FAIXAS.map((b, i) => { const pts: string[] = []; for (let x = -40; x <= 1120; x += 40) pts.push(`${x},${(b.y + Math.sin(x * b.k * 2.2 + f * b.s + i * 2) * b.a + Math.sin(x * b.k * 5 + f * b.s * 1.7) * b.a * 0.3).toFixed(1)}`); const baixo = [...pts].reverse().map((p) => {const [x, y] = p.split(',').map(Number); return `${x},${(y + b.h + Math.sin(x * 0.004 + f * b.s) * 60).toFixed(1)}`;}); return ; })} ; };