Skip to content

Typewriter Subtitles C03

0.0s

Previews are illustrative demonstrations of the technique — not your footage. Your real edit is produced later by Claude Code.

C03 · Captions · beginner · 5–180s

Each subtitle types itself on character by character with a blinking caret, paced so the phrase completes as the speaker finishes it.

Classic one- or two-line subtitles, but instead of appearing whole, the characters are revealed progressively at a pace derived from the phrase's spoken duration. The caret and the steady reveal suggest thought being written out in real time, which suits reflective, narrative or documentary delivery. The full phrase always lands before the speaker moves on, so reading never lags behind the voice.

Try the parameters

Characters per second; auto-capped so each phrase finishes before its last word ends.

Distance from the platform UI edge, as % of frame height.

Best used for

  • — Storytelling and narrative reels
  • — Documentary interviews
  • — Reflective voice-overs
  • — Quote-led videos

Assets

  • ● Source video required
  • ○ Transcript with timing optional
  • ○ Brand fonts optional

Pairs well with

If assets are missing

With only line-level SRT timing, run the reveal across each SRT cue's duration (capped at the cue end). Without any transcript, transcribe locally with Whisper first; do not type out text the speaker didn't say.

Accessibility

The progressive reveal must finish before the phrase ends so slower readers get the full line on screen; keep completed subtitles visible ≥ 1s. The blinking caret is small and slow (2Hz) — well below flash thresholds.

Individual prompt

updates with the parameters above
# CES style instruction — C03 Typewriter Subtitles

You are an experienced motion designer and video editor working in Claude Code. Apply the **C03 Typewriter Subtitles** technique to the supplied footage as specified below.

**B. Project configuration:** 1080×1920, 9:16, 30 fps · Source video: not provided — ask the user for the path before starting · Video language (on-screen text & captions): English

**Captions** — Classic one- or two-line subtitles, but instead of appearing whole, the characters are revealed progressively at a pace derived from the phrase's spoken duration. The caret and the steady reveal suggest thought being written out in real time, which suits reflective, narrative or documentary delivery. The full phrase always lands before the speaker moves on, so reading never lags behind the voice.

### C03 Typewriter Subtitles

- **When:** Applies to the whole video
- **Layer / track:** Captions layer (topmost text)
- **What it does:** Each subtitle types itself on character by character with a blinking caret, paced so the phrase completes as the speaker finishes it.
- **Parameters:** Reveal speed: 24; Characters per line: 32; Lines per subtitle: 2 lines; Blinking caret: on; Backdrop: Translucent box; Caption typeface: Clean sans (Inter Semibold); Text colour: #F4F2EB; Safe-zone offset: 14%
- **Steps:**
  1. Add a typewriter subtitle layer across every spoken section of the video on the top track (1080×1920 @ 30fps).
  2. Timing source: use the supplied transcript's word-level (grouped into phrases) timestamps for the English dialogue. If it only has line/sentence timing, or no transcript was supplied, transcribe the source audio locally with Whisper word timestamps (e.g. `whisper source.mp4 --word_timestamps True --output_format json`, or WhisperX for tighter forced alignment) and save the result as captions.json. Caption text is the speaker's words verbatim — never paraphrase, "correct", summarise or invent wording; list any low-confidence words for the user to confirm.
  3. Segment the transcript into subtitles of at most 2 lines × 32 characters, splitting at punctuation or natural pauses (≥ 250ms gaps between words). Each subtitle appears on its first word's start frame and clears 9 frames after its last word ends or when the next subtitle starts, whichever is first.
  4. Reveal: show characters progressively at 24 characters/second (1.25 frames per character), but cap the reveal so the final character lands no later than the phrase's last word start — compute revealFrames = min(chars / 24 × 30, lastWordStartFrame − firstWordStartFrame + 2). Reveal whole grapheme clusters (accents, emoji) and never re-flow already visible text: pre-compute line breaks on the full string.
  5. Caret: a thin block caret (0.08em wide, #F4F2EB) follows the last revealed character and blinks at 2Hz once the phrase is complete; remove it when the subtitle clears.
  6. Typeset in Inter Semibold (fallback: Inter Semibold), cap height ≈ 4.4% of frame width, colour #F4F2EB, centered, line-height 1.25. Place it on a translucent box (#0B0C0E at 70%, radius 1.2% of width, padding 0.5em × 0.8em) sized to the full phrase from the first frame so it never resizes while typing.
  7. Placement: anchor the subtitle block's bottom edge 14% of frame height (269px at 1080×1920) above the bottom of the frame, horizontally centered with ≥ 8% side margins, so it stays clear of the TikTok / Reels / Shorts interface (description text and action buttons occupy roughly the bottom 20% and the right-hand 12% of the frame). Never cover the speaker's eyes or mouth; if the face sits unusually low in a shot, lift the block above it for that shot only.
  8. Implement as a Remotion <TypewriterSubtitles /> component reading captions.json; slice the string with Math.floor(localFrame × 24 / 30) per subtitle.
- **Assets:** Source video (⚠ MISSING) · optional: Transcript with timing, Brand fonts
- **Fallback:** With only line-level SRT timing, run the reveal across each SRT cue's duration (capped at the cue end). Without any transcript, transcribe locally with Whisper first; do not type out text the speaker didn't say.

**G. Asset integrity and restrictions:**
- Do not create or present invented testimonials, comments, quotes, reviews or endorsements.
- Do not fabricate numbers, metrics, charts or results. Data visualisations use only the supplied data.
- Do not create fake screenshots or UI and present them as real. Illustrative graphics must be clearly illustrative.
- Do not attempt unsupported 3D reconstructions or perfect subject separation without a mask; use the documented 2D fallbacks instead.

**I. Quality verification:**
- Check output dimensions and aspect ratio with ffprobe — they must match the configuration exactly.
- Check the output frame rate and that the duration is within ±0.5 s of the target.
- Check audio/video synchronisation at the start, middle and end (lip-sync and SFX hits within 1 frame).
- Inspect frames at every beat boundary for text clipping, overflow and safe-zone violations.
- Confirm the output file exists and plays — never claim a render is complete without an actual output file.
- Report any missing asset or unimplemented effect explicitly.

More captions styles

Choose one primary caption style per video. It usually runs across all spoken sections as a global layer.

Your recipe starts here.

Add a style to begin building.