From 1dca49c3b7720bda20ff751a44ad7de53e8b6d0a Mon Sep 17 00:00:00 2001 From: Florent Tapponnier Date: Thu, 11 Jun 2026 18:18:16 +0200 Subject: [PATCH 1/2] feat(video): Short 9:16 format toggle in export modal --- src/components/export-video-section.tsx | 31 ++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/components/export-video-section.tsx b/src/components/export-video-section.tsx index ff267b92..06533fa3 100644 --- a/src/components/export-video-section.tsx +++ b/src/components/export-video-section.tsx @@ -99,6 +99,9 @@ function ModalBody({ // bump via the slider when they want a longer race. const [raceSeconds, setRaceSeconds] = useState(12); const [skipIntro, setSkipIntro] = useState(false); + // "short" renders natively at 1080x1920 (TikTok / Reels / Shorts); the + // renderer overrides the Remotion canvas, no crop or scale involved. + const [format, setFormat] = useState<"landscape" | "short">("landscape"); // Default to the top 8 providers (sorted by p50). Each composition only // shows ~8 visible anyway (BarChartRace.VISIBLE_BARS = 8) and rendering // 50+ providers per frame on a 2-vCPU box pushes us past 2 minutes — @@ -164,6 +167,7 @@ function ModalBody({ viewId: view, raceSeconds, skipIntro, + format, bench: filtered, }), }); @@ -259,6 +263,27 @@ function ModalBody({ + {/* Format */} +
+ + + setFormat("landscape")} + disabled={isBusy} + > + Landscape 16:9 + + setFormat("short")} + disabled={isBusy} + > + Short 9:16 + + +
+ {/* Race duration slider */}