From b1a51cb01bcc44480d45a36168e80f47d438a67b Mon Sep 17 00:00:00 2001 From: "soroush.asadi" Date: Wed, 24 Jun 2026 23:35:08 +0330 Subject: [PATCH] feat(remotion): shared FinishPass cinematic grade (quality floor) + @remotion/lottie MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The single highest-ROI quality lift — one finish applied at the FlexStory level lifts all 12 blocks at once, no per-block change: - GRADE_FILTER: a headless-safe colour grade (contrast/saturation/lift) applied as a CSS `filter` on the content root — backdrop-filter does NOT render in headless Chrome, so the grade lives on the content, not an overlay. - FinishPass: split-tone (cool-shadows multiply + warm-highlights screen) + a soft brand duotone + top light-bloom, layered over each scene. - Installed @remotion/lottie@4.0.290 (artist-made animations — next lever). Verified: visible richer/graded look on CharacterScene + Slideshow, subtle enough to suit the muted palette, consistent across blocks. Co-Authored-By: Claude Opus 4.8 --- .../remotion/src/compositions/FlexStory.tsx | 6 ++++- services/remotion/src/scenes/chrome.tsx | 22 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/services/remotion/src/compositions/FlexStory.tsx b/services/remotion/src/compositions/FlexStory.tsx index e6ed27d..7850a5e 100644 --- a/services/remotion/src/compositions/FlexStory.tsx +++ b/services/remotion/src/compositions/FlexStory.tsx @@ -6,6 +6,7 @@ import { FONT } from "../lib/fonts"; import { useLayout } from "../lib/aspect"; import { getBlock } from "../scenes/registry"; import { withDefaults, clampDuration } from "../scenes/types"; +import { FinishPass, GRADE_FILTER } from "../scenes/chrome"; /** * FlexStory — the scene sequencer. A template is `scenes: SceneInstance[]`; this @@ -78,7 +79,7 @@ export const FlexStory: React.FC = (props) => { }); return ( - + {music ? ); }; diff --git a/services/remotion/src/scenes/chrome.tsx b/services/remotion/src/scenes/chrome.tsx index a62c387..e090142 100644 --- a/services/remotion/src/scenes/chrome.tsx +++ b/services/remotion/src/scenes/chrome.tsx @@ -79,6 +79,28 @@ export const Vignette: React.FC = () => ( ); +/** + * FinishPass — a shared cinematic colour grade applied over the whole composited + * frame: a contrast/saturation/lift grade (backdrop-filter), a subtle duotone tint + * pulled from the brand palette, and a soft top light-bloom. Layered ON TOP of the + * blocks' own grain/vignette so it lifts every block at once. One component = the + * quality floor for the whole catalogue. + */ +export const FinishPass: React.FC<{ colors: SceneColors; intensity?: number }> = ({ colors, intensity = 1 }) => ( + <> + {/* split-tone: cool shadows (multiply) + warm highlights (screen) — headless-safe */} + + + {/* soft brand duotone + top light bloom */} + + + +); + +/** The headless-safe colour grade — applied as a CSS `filter` on the content root + * (backdrop-filter does NOT render in headless Chrome). Pair with . */ +export const GRADE_FILTER = "contrast(1.08) saturate(1.14) brightness(1.01)"; + export const ProgressDots: React.FC<{ index: number; total: number; colors: SceneColors; L: Layout }> = ({ index, total, colors, L }) => (
{Array.from({ length: total }).map((_, k) => (