feat(remotion): theme system + CharacterJourney pilot template

- src/scenes/themes.ts: 6 curated themes (the cohesion rail) — pick one, then
  tweak the 4 brand colors; every block derives its shades so a theme re-skins
  the whole video coherently (verified: same journey rendered in warm-editorial
  vs berry-pop by overriding only the 4 colors).
- src/scenes/presets.ts: CHARACTER_JOURNEY — the pilot template's scene list
  ("Idea → struggle → tool → win", 7 beats) as a FlexStory preset.
- briefs/character-journey.md: the filled Template Spec from the guided brief.
- Root.tsx: register CharacterJourney per aspect (FlexStory + the preset).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-23 13:19:51 +03:30
parent d830c56ea0
commit 2104dd3c84
4 changed files with 110 additions and 0 deletions
@@ -0,0 +1,46 @@
# Template Spec — CharacterJourney (pilot)
Produced by the guided brief (`docs/TEMPLATE_BRIEF.md`). The first filled spec —
serves as the audit trail and the contract a future AI/user-form would emit.
## Decisions (from the brief)
- **Type:** character explainer / story (framework targets ALL Renderforest-style
types — logo reveal, opener, slideshow, promo, showcase, personal/commercial — via
the shared scene-block engine; this is the first concrete template).
- **Story:** Idea → struggle → tool → win.
- **Design ingredients (all on):** flat 2.5D characters · 3D depth + parallax ·
kinetic typography · film finish (grain/vignette/micro-motion).
- **Timing:** standard — 3s default, editable 16s per scene.
- **Colors:** theme + 4-color tweak (curated `THEMES`, then accent/secondary/bg/text
override). Pilot theme: `warm-editorial`.
- **Music:** per-category/vibe — a tagged library; this arc → "uplifting build".
*(Dependency: vendored CC0 music not yet sourced — audio hooks designed, stubbed.)*
- **SFX:** optional, operator-placed (whoosh/click on transitions), user-toggle.
*(Dependency: vendored CC0 SFX not yet sourced.)*
- **Aspect:** all three (16:9 / 1:1 / 9:16), re-flowed.
## Scene list (storyboard) — `src/scenes/presets.ts` `CHARACTER_JOURNEY`
| # | Block | Dur | Beat | Copy (fa) |
|---|---|---|---|---|
| 1 | TitleCard | 4s | Hook | «از یک ایده تا واقعیت» |
| 2 | CharacterScene | 3s | Idea | «یک ایده» (cup) |
| 3 | CharacterScene | 3s | Struggle | «اما سخت بود» |
| 4 | CharacterScene | 3s | Tool | «تا اینکه…» (laptop) |
| 5 | Slideshow | 6s | Value | «چرا فلت‌رندر؟» × 3 |
| 6 | CharacterScene | 3s | Win | «و حالا…» (plant) |
| 7 | OutroCTA | 4s | CTA | «فلت‌رندر» + «رایگان شروع کن» |
Total ≈ 26s (dynamic; tracks Σ per-scene durations).
## Editable surface (the "rails")
- **Content:** per-scene title/caption/text/character/prop/slides (bounded fields,
smart defaults).
- **Structure:** flexible — add/duplicate/delete/reorder scenes; per-scene duration 16s.
- **Theme:** pick a `THEMES` entry, then tweak the 4 brand colors.
- **Locked (not user-editable):** layout, motion language, finishing pass, type scale —
the craft stays in the system.
## Status
- Renders via FlexStory in all 3 aspects (engine = Phase 1, committed).
- Pending: theme picker in studio, music/SFX audio assets, seed into the catalog,
backend render passthrough (Phase 2).