From 30ad822853ea1deebf301d5bc38599115b311287 Mon Sep 17 00:00:00 2001 From: SnapOtter Date: Fri, 8 May 2026 16:44:46 +0800 Subject: [PATCH] feat(videos): add X Launch scenes 5-7 (Privacy, Features, CTA) --- .../x-launch/scenes/FeatureBurstScene.tsx | 31 +++++++++++++++++++ .../x-launch/scenes/GitHubCTAScene.tsx | 11 +++++++ .../x-launch/scenes/PrivacyBeatScene.tsx | 25 +++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 apps/videos/src/compositions/x-launch/scenes/FeatureBurstScene.tsx create mode 100644 apps/videos/src/compositions/x-launch/scenes/GitHubCTAScene.tsx create mode 100644 apps/videos/src/compositions/x-launch/scenes/PrivacyBeatScene.tsx diff --git a/apps/videos/src/compositions/x-launch/scenes/FeatureBurstScene.tsx b/apps/videos/src/compositions/x-launch/scenes/FeatureBurstScene.tsx new file mode 100644 index 00000000..f09bdee2 --- /dev/null +++ b/apps/videos/src/compositions/x-launch/scenes/FeatureBurstScene.tsx @@ -0,0 +1,31 @@ +import type React from "react"; +import { AbsoluteFill } from "remotion"; +import { FeaturePill } from "@/components/FeaturePill"; + +const FEATURES = [ + { label: "Batch Processing", x: 340, y: 380, from: "left" as const }, + { label: "Pipeline Automation", x: 560, y: 380, from: "right" as const }, + { label: "REST API", x: 340, y: 440, from: "left" as const }, + { label: "55+ Input Formats", x: 560, y: 440, from: "right" as const }, + { label: "Image Editor", x: 340, y: 500, from: "left" as const }, + { label: "One Container", x: 560, y: 500, from: "right" as const }, + { label: "Multi-arch", x: 340, y: 560, from: "left" as const }, + { label: "15 AI Models", x: 560, y: 560, from: "right" as const }, +]; + +export const FeatureBurstScene: React.FC = () => { + return ( + + {FEATURES.map((f, i) => ( + + ))} + + ); +}; diff --git a/apps/videos/src/compositions/x-launch/scenes/GitHubCTAScene.tsx b/apps/videos/src/compositions/x-launch/scenes/GitHubCTAScene.tsx new file mode 100644 index 00000000..50bae7e6 --- /dev/null +++ b/apps/videos/src/compositions/x-launch/scenes/GitHubCTAScene.tsx @@ -0,0 +1,11 @@ +import type React from "react"; +import { AbsoluteFill } from "remotion"; +import { GitHubCTA } from "@/components/GitHubCTA"; + +export const GitHubCTAScene: React.FC = () => { + return ( + + + + ); +}; diff --git a/apps/videos/src/compositions/x-launch/scenes/PrivacyBeatScene.tsx b/apps/videos/src/compositions/x-launch/scenes/PrivacyBeatScene.tsx new file mode 100644 index 00000000..019fa315 --- /dev/null +++ b/apps/videos/src/compositions/x-launch/scenes/PrivacyBeatScene.tsx @@ -0,0 +1,25 @@ +import type React from "react"; +import { AbsoluteFill } from "remotion"; +import { RotatingTaglines } from "@/components/RotatingTaglines"; +import { COLOR } from "@/lib/colors"; + +const TAGLINES = [ + "No uploads to the cloud. Ever.", + "100% local processing.", + "Works fully offline.", + "Air-gapped ready.", +]; + +export const PrivacyBeatScene: React.FC = () => { + return ( + + + + ); +};