Unlimited lower thirds
Create a library for guests, segments, sponsors, socials, and rotating CTAs each with its own template and settings.
Build unlimited lower thirds inside OBS Studio, style them with HTML/CSS templates, then trigger them via a clean dock, hotkeys, or timed automation. No webserver. No ports. Just a portable local file Browser Source.
lt.html and swaps your selected
Browser Source to a local file. If you used http://127.0.0.1:..., replace it with the local file workflow.
Lower thirds are not just decoration they provide clarity and retention: who is speaking, what segment is live, what to do next. SLT lets you run that layer reliably without touching your scene layout.
Create a library for guests, segments, sponsors, socials, and rotating CTAs each with its own template and settings.
Design your look with web tech. Import/export packs, reuse across shows, and keep assets portable.
Trigger show/hide instantly from the dock or map hotkeys for Stream Deck-friendly control.
Auto-show every X seconds for Y seconds. Great for rotating socials, sponsors, or reminders.
Bottom-left/right, top-left/right, center, plus top-center and bottom-center presets.
Race-safe show/hide logic prevents flicker when a trigger happens during an animation.
Start with the core walkthrough, then continue with the demo and additional setup tips.
Designed to be “set and forget”: one Browser Source in your scene, then everything is controlled from the dock.
SLT writes the generated overlay artifacts to disk:
lt.html, lt-styles.css, lt-scripts.js, plus state files.
New workflow: select an existing Browser Source from the plugin UI. SLT can automatically swap it to the generated local file and enforce the configured width/height.
Show/hide via the dock, map hotkeys, or enable timed automation. Optional: enable Dock Exclusive Mode to keep only one lower third visible at a time.
The overlay polls lt-visible.json and runs a race-safe animation state machine:
show/hide intents cannot “fight” each other, and template hooks can run before/after transitions.
__slt_beforeHide() optional hook__slt_onShown() optional hook<li> listens for its own animation end only
Templates are plain HTML/CSS/JS. SLT injects values at generation time and scopes CSS under each lower third’s {{ID}}.
Recent additions include {{OPACITY}} and {{RADIUS}}.
| Placeholder | Meaning | Where |
|---|---|---|
{{ID}} |
Unique lower third instance ID | HTML / CSS / JS |
{{TITLE}} |
Main line (name, topic, headline) | HTML |
{{SUBTITLE}} |
Secondary line (role, handle, description) | HTML |
{{BG_COLOR}} |
Background color | HTML / CSS |
{{TEXT_COLOR}} |
Text color | HTML / CSS |
{{FONT_FAMILY}} |
Font family (fallback to Inter) | HTML / CSS |
{{PROFILE_PICTURE_URL}} |
Profile picture URL (local relative path). If unset resolves to ./. |
HTML |
{{OPACITY}} |
Opacity (0–100) you can apply in CSS (e.g., via rgba or opacity) |
CSS |
{{RADIUS}} |
Border radius value (0–100) used by your templates | CSS |
.slt-card{
border-radius: {{RADIUS}}%;
background: {{BG_COLOR}};
color: {{TEXT_COLOR}};
}
.slt-card{
/* if you store BG_COLOR as hex, keep opacity separate */
opacity: calc({{OPACITY}} / 100);
}
Install, enable the dock, select a Browser Source, and you are ready to trigger lower thirds.
If SLT helps your production, you can support development and grab template packs.