# Transparent Lower Third

> On-brand animated name tags for testimonial videos, delivered as transparent ProRes 4444 files that drop straight onto a CapCut or Premiere timeline, with brand pulled from your site and a frame-by-frame check.

Transparent Lower Third is an AI skill for creative & design and sales & marketing teams that you can use in Claude Code, Codex, or type.com.

- Skill page: https://type.com/library/skills/transparent-lower-third
- Raw SKILL.md: https://type.com/library/skills/transparent-lower-third/SKILL.md
- Created by Barbara Jovanovic from Startup Cookie
- Updated: October 30, 2026
- Package: 3 files

## What it does

- A tested renderer that fixes the usual "it looks choppy" problems: supersampled motion, the same downsample filter on every frame, and fades applied in float.
- Geometry locked across a series, so every person's tag is identical except for the name and role.
- A verification script that proves transparency, placement, smooth motion and a match against a reference file.
- Import instructions that stop the most common mistake: putting the preview MP4 with its baked-in background on the timeline.

## Before you start

- Python 3 with Pillow and numpy
- ffmpeg with prores_ks, libvpx-vp9 and libx264
- Brand font files (.ttf/.otf)

## How to use Transparent Lower Third

1. **type.com:** Choose Use Skill to add Transparent Lower Third to your type.com workspace.
2. **Claude Code:** Download the skill and extract it into ~/.claude/skills/transparent-lower-third/ (or .claude/skills/transparent-lower-third/ in a project). Then ask Claude to use Transparent Lower Third.
3. **Codex:** Download the skill and extract it into ~/.agents/skills/transparent-lower-third/ (or .agents/skills/transparent-lower-third/ in a repository). Then ask Codex to use Transparent Lower Third.

## Frequently asked questions

### What is Transparent Lower Third?

Transparent Lower Third is an AI skill for creative & design and sales & marketing teams that you can use in Claude Code, Codex, or type.com.

### What does Transparent Lower Third do?

On-brand animated name tags for testimonial videos, delivered as transparent ProRes 4444 files that drop straight onto a CapCut or Premiere timeline, with brand pulled from your site and a frame-by-frame check.

### What do I need to use Transparent Lower Third?

Python 3 with Pillow and numpy; ffmpeg with prores_ks, libvpx-vp9 and libx264; Brand font files (.ttf/.otf).

### Can I use Transparent Lower Third in Claude Code or Codex?

Yes. Transparent Lower Third is a standard Agent Skills folder with a SKILL.md file. Download it and extract it into ~/.claude/skills/ for Claude Code or ~/.agents/skills/ for Codex.

### Who created Transparent Lower Third?

Barbara Jovanovic from Startup Cookie created Transparent Lower Third. The type.com team reviews every skill before it is published in the Skills Library.

## Example output

Example output from a sample run. Unless the example says otherwise, company names and figures are sample data.

````markdown
Verification output (`python3 scripts/verify_overlay.py out/dana-lee-30fps.mov`):
```
codec=prores profile=4444 pix_fmt=yuva444p12le 1920x1080 fps=30/1 frames=150 dur=5.000s
hold frame: 97.2% fully clear pixels (transparency OK)
frames with partial alpha (fades): 33
card box on hold frame: x 72-374, y 883-1007 (303x125)
alpha delta curve: 0.61 0.56 0.50 0.45 0.40 ... 0.37 0.38 0.38 0.37 0.36 0.33 0.30 0.25 0.20 0.15 0.09
smoothness: OK (no isolated spikes)
```
````

## Related skills

- [AI List Inclusion Outreach](https://type.com/library/skills/ai-list-inclusion-outreach.md): Get named on the "best X" lists that ChatGPT, Claude, Perplexity and Google AI answers already cite for your buyers' questions. Ranks the lists, drafts a three-line request for each, and tracks follow-ups.
- [Event Post Fact-Check](https://type.com/library/skills/event-post-fact-check.md): Draft post-conference posts with every speaker, affiliation, session, sponsorship, photo and hashtag checked against the official program, keeping what the program proves separate from what someone remembers.
- [Social Batch Review Calendar](https://type.com/library/skills/social-batch-review-calendar.md): Replace PDFs and chat recaps with a Type app your client can actually review: a weekly calendar with each post's first paragraph and full image, copyable captions, downloadable visuals, and the approver on every card.
- [Reference Style Model](https://type.com/library/skills/reference-style-model.md): "We want our LinkedIn to sound like them." Turns a reference company's public posts into a style spec: numbered moves, each proved by a real line, and a pre-publish checklist. It transfers form, never their facts.
- [Founder Ghostwriter](https://type.com/library/skills/founder-ghostwriter.md): Ghostwrite LinkedIn and X posts in a founder's real voice, grounded only in things they actually said. Every post has a verbatim anchor, passes six gates, and is read by fresh-context reviewers before you see it.
- [Slop Edit](https://type.com/library/skills/slop-edit.md): Line-edit any draft so it stops reading as AI-written. A mechanical lint catches the surface patterns, a sentence-by-sentence pass fixes agentless and vague constructions, and every reviewer correction becomes a rule.

## Package files

- SKILL.md
- scripts/render_lower_third.py
- scripts/verify_overlay.py

## SKILL.md

````markdown
---
name: transparent-lower-third
description: Make on-brand animated name tags (lower thirds) for testimonial and interview videos, delivered as transparent ProRes 4444 .mov files that drop straight onto a CapCut, Premiere, Final Cut or DaVinci timeline. Pulls brand fonts and colours from the live website, renders smooth sub-pixel motion, locks geometry across a set, and verifies every file frame by frame. Use for "make a name tag for this video", "lower third", "speaker title overlay".
---

# Transparent Lower Third

Delivers a name tag that looks designed, animates smoothly, and stays identical across a series of videos except for the name and role.

## Inputs
- Name and role/title for each person. Confirm punctuation style once for the set ("Founder, Example Co" vs "Founder of Example Co").
- The brand: a website URL (preferred) or a brand guide.
- A screenshot or frame from the video (to check placement and resolution).
- The editor and the timeline frame rate (CapCut, Premiere, etc.; 24/25/30/60 fps).
- If adding to an existing set: the reference `.mov` that new tags must match.

## Step 1. Pull the brand from the live site, then check it against what renders
- Read the site's CSS for font families, weights and colour tokens (ink, surface, muted grey, border, accent).
- **Check against screenshots of the rendered pages.** Fonts declared in CSS aren't always the ones visibly used (a serif may be loaded but only used on one page). Use what the pages actually show.
- Never introduce colours that aren't on the site. Avoid AI tells: glows, glassy pills, gradients the brand doesn't use.
- Download the font files (Google Fonts or the site's own files) for the renderer.

Record the tokens in the delivery so the next tag uses the same values.

## Step 2. Confirm the spec before rendering
Default spec (proven in production at 1920×1080):
- Lower-left card, 72px from the left and bottom edges.
- 12px corner radius, hairline border, soft shadow, 4px accent bar on the left.
- Optional small uppercase label in the accent colour (a mono font works well), name in the display font (semibold), role in the body font, muted colour.
- 5 seconds total: about 0.75s entrance (slide in about 26px from the left plus fade, accent bar draws top to bottom, label, name and role rise in with a slight stagger), hold, then about 0.65s exit fade with a small drift.
- No bounces, no wipes, no glow.

Ask about: light or dark card, label or no label, resolution (if the source is 4K, render at 3840×2160), and frame rate.

## Step 3. Render
Run with Type's managed execution tool (needs Python, Pillow, numpy and ffmpeg):

```bash
python3 scripts/render_lower_third.py \
  --name "Dana Lee" --role "Founder, Example Co" --label "CUSTOMER STORY" \
  --name-font fonts/SpaceGrotesk-SemiBold.ttf --role-font fonts/Inter-Regular.ttf \
  --label-font fonts/SpaceMono-Regular.ttf \
  --ink "#0f0f0f" --surface "#fcfdfe" --muted "#525252" --border "#d9d9d9" --accent "#3d85f9" \
  --theme light --fps 30 --out out/
```

`--theme` only fills the colours you don't pass. For a dark card, pass the brand's dark tokens or drop the four colour flags (`--ink`, `--surface`, `--muted`, `--border`).

Outputs: `<name>-<fps>fps.mov` (ProRes 4444 with alpha, the deliverable), `.webm` (VP9 with alpha, fallback), `-preview.mp4` (checkerboard background, preview only), and `-still.png`. Add `--png-sequence` for a last-resort PNG frame sequence. Use `--ss 4` for quick drafts and the default `--ss 8` for final renders.

### Why it renders this way
Each of these fixed a real "it's choppy" complaint:
- **Whole-pixel motion stutters.** Motion happens in supersampled space (1/8 px steps).
- **Sub-pixel text shimmers** when sharpness changes from frame to frame. The whole tag is drawn at 8× and every frame is downsampled with the same filter, so sharpness is identical on every frame.
- **8-bit fades add rounding noise.** The fade is applied last, in floating point, and frames go to ffmpeg as 16-bit RGBA.
- **A 60fps file on a 30fps timeline drops frames unevenly.** Deliver one frame rate: the timeline's.
- **An accidental 25fps preview looks broken.** Previews use the same fps as the deliverable.

## Step 4. Lock geometry across a set
When tags must match ("they have to be the same, just a different name and role"):
- Render every tag with the same `--card-width`, set to the width the longest name needs, so all cards are identical in size.
- Same fonts, sizes, timing, fps and position for every tag in the set.
- Then verify against the reference (Step 5).

## Step 5. Verify before delivering
```bash
python3 scripts/verify_overlay.py out/dana-lee-30fps.mov
python3 scripts/verify_overlay.py out/new-30fps.mov --reference out/existing-30fps.mov
```
Check:
- ProRes 4444, `yuva444p12le`, the right fps, frame count and duration.
- The hold frame is mostly fully clear (proves the background is transparent).
- The card box is where the spec says (for example x=72 and bottom edge at 1008 on 1080p).
- The alpha curve rises and falls cleanly with no spikes.
- Against a reference: same format, and **zero** card-box mismatches across frames.
- Look at the still at 1:1 for crisp text and no clipping.

## Step 6. Deliver with import instructions
Send the `.mov` (and the WebM fallback), the preview, the tokens used, and these instructions:
- Put the `.mov` on an overlay track **above** the video clip. Blend mode Normal. No background removal or chroma key needed.
- **The `.mp4` preview has a background baked in. Never put it on the timeline.**
- The overlay's frame rate matches the timeline.
- CapCut desktop reads ProRes alpha. Some mobile editors show black instead: use the WebM, then the PNG sequence, then a green-screen render with Chroma Key as the last resort. (HEVC with alpha can only be encoded on a Mac.)
- Editors often stutter when playing ProRes in their viewer even when the file is fine. Judge smoothness from an exported test, not the viewer.

## What not to do
- Don't guess brand values or redraw the layout for each person.
- Don't send multiple frame rates "just in case".
- Don't call a tag "matched" without running the reference comparison.
- Don't add the tool's own watermark or label text.
````
