Composes
letter-substitution-handoff(the swap mechanic on the target letter)pop-inorslideon the rest of the word (lands first)
Layout
canvas: 1080x1920 (or pack-specified)
word_zone:
anchor: center
origin: { x: canvas_w/2, y: canvas_h/2 }
align: center
font_size: ~display-scale (200+ px)
font_family: heavy sans (Inter Black or Söhne Breit)
target_letter_index: declared per scene # which letter is the canvas target_letter_slot: width: same as letter glyph height: same as letter glyph content_swap: required
## Choreography
```yaml
phase_1_word_lands:
start_frame: 0
effect: slide or pop-in
duration_frames: 14
phase_2_letter_swap:
start_frame: 18 # AFTER word settles
effect: letter-substitution-handoff
swap_duration_frames: 12 # crossfade between letter content variants
swap_count: 1-3 # how many content variations cycle through
phase_3_hold:
start_frame: phase_2_end + 4
duration_frames: ≥ 20
Style pack compatibility
supported: [SP-C, SP-F]
preferred_in: [SP-C]
incompatible: [SP-A, SP-B, SP-D, SP-E, SP-G]
Requires editorial restraint to land. Saturated/playful packs don't fit.
Pack-specific overrides
SP-C (editorial-cinematic)
- Word: heavy sans in caps ("MIE", "CARBON", "WHEN").
- Target letter content: photograph, icon, or smaller word stack.
- Bg: muted cream or sage.
- Crop-marks visible in corners.
SP-F (product-demo)
- Word: brand name with one letter as content slot.
- Target letter hosts an aurora-blob or product mock.
Duration
duration_seconds: [3.0, 5.0]
default: 3.5
Need time for word-land + letter-swap + hold.
Quality Checks
- Letter slot is exactly the bounding box of the target letter glyph (not a generic rect).
- Content inside the letter is sized to fit the slot — no overflow.
- Swap happens AFTER word settles (otherwise the swap is invisible).
- Word's other letters don't animate during the swap — only the target letter.
Failure Modes
- Letter slot is too small/large. Bbox isn't matching the actual glyph. Use the rendered glyph's measured bounding rect.
- Swap is invisible. Word-land and letter-swap fire simultaneously. Add delay.
- Word's baseline shifts during swap. Letter substitution must preserve baseline. Use absolute positioning inside the slot.