Setting the file. One moment.
Skill 32 · Remotion To Hyperframes
Subchapter 32.63
Scripts
Gitkeepscriptsassets/test-corpus/tier-3-data-driven/remotion-src/src/scenes/TitleScene.tsx
TypeScript55 lines1 KB
import { AbsoluteFill, interpolate, spring, useCurrentFrame, useVideoConfig } from "remotion";
interface Props {
title: string;
subtitle: string;
}
export const TitleScene: React.FC<Props> = ({ title, subtitle }) => {
const frame = useCurrentFrame();
const { fps } = useVideoConfig();
const titleScale = spring({
frame,
fps,
config: { damping: 12, stiffness: 100, mass: 1 },
});
const subtitleOpacity = interpolate(frame, [20, 40], [0, 1], {
extrapolateLeft: "clamp",
extrapolateRight: "clamp",
});
return (
<AbsoluteFill
style={{
justifyContent: "center",
alignItems: "center",
flexDirection: "column",
fontFamily: "Helvetica, Arial, sans-serif",
}}
>
<div
style={{
fontSize: 160,
fontWeight: 900,
color: "#ffffff",
letterSpacing: "0.05em",
transform: `scale(${titleScale})`,
}}
>
{title}
</div>
<div
style={{
fontSize: 36,
fontWeight: 400,
color: "#9ca3af",
marginTop: 24,
opacity: subtitleOpacity,
}}
>
{subtitle}
</div>
</AbsoluteFill>
);
};