From 88a29a336fa5323732ffcc0b4273b5520beb9613 Mon Sep 17 00:00:00 2001 From: Satyam Rastogi Date: Sat, 30 May 2026 02:58:47 +0530 Subject: [PATCH] feat(film): cold open + promise sequences --- .../product-film/src/sequences/ColdOpen.tsx | 31 ++++++++++++++++--- .../product-film/src/sequences/Promise.tsx | 29 ++++++++++++++--- 2 files changed, 52 insertions(+), 8 deletions(-) diff --git a/marketing/product-film/src/sequences/ColdOpen.tsx b/marketing/product-film/src/sequences/ColdOpen.tsx index b7d7c84..4bbba7f 100644 --- a/marketing/product-film/src/sequences/ColdOpen.tsx +++ b/marketing/product-film/src/sequences/ColdOpen.tsx @@ -1,5 +1,28 @@ -import { PillarTitle } from "../components/PillarTitle"; +import { AbsoluteFill, useCurrentFrame, interpolate } from "remotion"; +import { BlueprintBg } from "../components/BlueprintBg"; +import { Caption } from "../components/Caption"; +import { theme } from "../theme"; import { DURATIONS } from "../timing"; -export const ColdOpen: React.FC = () => ( - -); + +export const ColdOpen: React.FC = () => { + const frame = useCurrentFrame(); + const hud = interpolate(frame, [10, 30], [0, 1], { extrapolateLeft: "clamp", extrapolateRight: "clamp" }); + return ( + + + +
+ ROOFING
+ REVOLUTIONIZED +
+
+
+ ▸ 5,847 PROPERTIES TRACKED +
+
+ ▸ HAIL WATCH ACTIVE · ETA 35 MIN +
+ +
+ ); +}; diff --git a/marketing/product-film/src/sequences/Promise.tsx b/marketing/product-film/src/sequences/Promise.tsx index b5e3111..948907c 100644 --- a/marketing/product-film/src/sequences/Promise.tsx +++ b/marketing/product-film/src/sequences/Promise.tsx @@ -1,5 +1,26 @@ -import { PillarTitle } from "../components/PillarTitle"; +import { AbsoluteFill, useCurrentFrame, useVideoConfig, spring, interpolate } from "remotion"; +import { BlueprintBg } from "../components/BlueprintBg"; +import { theme } from "../theme"; import { DURATIONS } from "../timing"; -export const Promise: React.FC = () => ( - -); + +export const Promise: React.FC = () => { + const frame = useCurrentFrame(); + const { fps } = useVideoConfig(); + const rise = spring({ frame, fps, durationInFrames: 24, config: { damping: 200 } }); + const y = interpolate(rise, [0, 1], [30, 0]); + const opacity = interpolate(frame, [0, 14, DURATIONS.promise - 12, DURATIONS.promise], [0, 1, 1, 0], { extrapolateLeft: "clamp", extrapolateRight: "clamp" }); + return ( + + + +
+
+ LynkedUp Pro +
+
From the storm to the bank — in one system.
+
Your team runs it. You control all of it.
+
+
+
+ ); +};