How Subtitles Work in JSONClip: Complete Guide to Every Subtitle Style We Use
A long-read guide to how JSONClip subtitles work, how cue timing and style presets behave in editor and API workflows, and a complete list of every subtitle style currently used in the product.
Long-read guide
Subtitles are where a lot of automation-first video tools quietly get exposed. The system looks easy from the outside: load an SRT, choose a style, render. In practice, subtitle workflows fall apart when the tool does not have a stable timing model, predictable format handling, or a real preset pack with visible design intent behind it. That is why teams end up with subtitle output that is technically present but visually weak, inconsistent, or unreadable once footage gets busy.
JSONClip handles subtitles through the `captions` layer. The naming is technical, but the workflow is the one users expect from subtitles: time-ranged spoken text, imported from SRT/VTT/ASS or generated from audio, then rendered with a named subtitle style. The key difference is that the style pack is explicit. The product does not only store subtitle text. It stores subtitle grammar.
As of April 6, 2026, the active subtitle style pack contains 14 presets. They cover clean bottom dialogue styles, heavier card-backed subtitles, karaoke and neon treatments, central opener-like subtitle looks, and top broadcast bars. That spread matters because one single subtitle style cannot serve every real production job without either becoming boring or becoming visually wrong half the time.
This guide explains how subtitles actually work in JSONClip, what data fields matter, how style presets scale, how source files and inline cues differ, how the auto-subtitle flow fits in, how to choose the right preset for the job, and then it walks through every subtitle style currently used in the product.
Why subtitles matter in an automation-first video tool
A subtitle system is one of the fastest places to lose trust in a render pipeline. If the text arrives late, wraps badly, sits in the wrong place, or uses a style that fights the footage, the viewer stops feeling polish immediately. The problem is worse in automation because the operator is not sitting there rescuing each output by hand. The model itself has to be coherent.
That is why subtitle logic in JSONClip is more than a text import checkbox. The product has to handle time-ranged cues, normalized parsing across common subtitle formats, style application, project-size scaling, and preview/export consistency. If any one of those pieces becomes fuzzy, teams stop trusting subtitles for repeated output and go back to manual patches.
Good subtitle infrastructure should do two things at once. It should stay easy enough for basic use and structured enough for repeated automation. JSONClip gets closer to that because the subtitle layer is explicit in movie JSON and the style system is named rather than improvised.
Subtitles in JSONClip: the actual model
At runtime, subtitles live inside `movie.captions`. That object can carry either inline cues or a remote source file, plus a style ID. The system then resolves the chosen subtitle preset against the project dimensions and uses those resolved layout values during preview and export. That means the product is not guessing on each render. The positioning and scale come from a preset model.
{
"movie": {
"format": {
"width": 1080,
"height": 1920,
"fps": 30,
"background_color": "#000000"
},
"scenes": [
{
"type": "image",
"src": "https://example.com/shot.jpg",
"duration_ms": 4000
}
],
"captions": {
"style": "bold_bottom",
"cues": [
{
"from_ms": 0,
"to_ms": 1800,
"text": "This is the first subtitle line"
},
{
"from_ms": 1900,
"to_ms": 3600,
"text": "And this is the second one"
}
]
}
},
"env": "prod"
}Inline cues are the most direct option when a workflow already owns the subtitle text and timings. They are useful for API-driven generation, scripted pipelines, and cases where the source text is already part of upstream data. The key advantage is determinism: the render payload already contains the exact subtitle timeline.
curl -X POST https://api.jsonclip.com/render -H "Authorization: Bearer YOUR_TOKEN" -H "Content-Type: application/json" -d '{
"movie": {
"format": {"width": 1080, "height": 1920, "fps": 30, "background_color": "#000000"},
"scenes": [
{"type": "video", "src": "https://example.com/clip.mp4", "duration_ms": 4000}
],
"captions": {
"src": "https://example.com/subtitles.srt",
"format": "srt",
"style": "minimal_bottom"
}
}
}' File-based subtitles are useful when the subtitle asset already exists as SRT, VTT, or ASS. The style is still a simple preset ID, which means the source text and the visual treatment stay separate. That separation matters because it lets a team restyle the same subtitle file without rewriting cue timing.
POST /ui/captions/auto-from-audio
{
"audio_asset_id": "asset_123",
"caption_style": "soft_box_bottom"
}There is also an assisted generation path. In the editor, JSONClip can generate auto subtitles from selected audio and then apply one of the same preset IDs to the resulting cues. That matters operationally because the generated output still lands in the same subtitle model. It is not a special hidden subtitle system.
What fields actually matter in the subtitle layer
| Field | What it controls | Why it matters |
|---|---|---|
| captions.src | Remote subtitle file URL | Lets one project reference SRT, VTT, or ASS without embedding cues manually. |
| captions.format | Explicit source format hint | Avoids parser ambiguity and makes imports stable when file extensions are messy or absent. |
| captions.cues | Inline subtitle cue array | Best for API-built movies, generated subtitle pipelines, or deterministic programmatic renders. |
| captions.style | Preset ID such as `bold_bottom` or `soft_box_bottom` | This is the style contract. It tells the renderer which subtitle grammar to use. |
| cue.from_ms / cue.to_ms | Subtitle timing window | Every subtitle is time-ranged. Bad timing creates unreadable output faster than bad colors do. |
| preset fontSizeAtHeight1280 | Base scale seed | The preset scales from project height, which is why the same style survives vertical and horizontal formats. |
| preset widthRatio | Text box width relative to frame | Prevents subtitles from turning into uncontrolled full-width text walls. |
| preset positionYRatio | Vertical placement logic | This is what separates center, bottom, and top-broadcast styles. |
| stroke / shadow / glow / background | Readability and tone support | Subtitles are not only about text color. The support layers decide whether a line feels cinematic, technical, karaoke, or broadcast. |
These fields are enough to explain most subtitle behavior in the product. The important thing is to treat the subtitle style as a real named component, not a decorative afterthought. The source text, timing, and style are separate concerns. That is why the system remains usable under automation.
Do not confuse subtitles with text components
Text components and subtitles solve different problems. A text component is an authored overlay asset: title cards, markers, banners, labels, designed typography. A subtitle is timed speech text. Even when some styles overlap visually, the operating model is different. Subtitles are tied to cue timing. Text components are tied to intentional layout objects.
That distinction is healthy. Once teams start forcing subtitles to do title-card work or forcing text components to behave like dialogue timing systems, the edit gets messy. JSONClip works better when subtitles stay subtitles and text components stay authored overlay styles.
How subtitle presets scale and why that matters
The preset pack does not store one static pixel layout for all projects. Each style defines a base font size at a reference height, plus width and vertical placement ratios. The renderer resolves that against the current project dimensions. That is why a preset can stay coherent across vertical, square, and horizontal outputs without being rebuilt from zero.
This is one of the underrated reasons subtitle packs often fail in weaker systems. A style looks fine in one reference format and then turns awkward once the project size changes. JSONClip does better here because the presets are defined as scalable layout instructions rather than single hard-coded pixel snapshots.
How to choose the right subtitle style
| Need | Best subtitle style | Why |
|---|---|---|
| General spoken dialogue over normal footage | Minimal Bottom | It is the least opinionated utility style in the pack and keeps the frame open. |
| Dialogue over noisy, bright, or hectic footage | Bold Bottom or Soft Box Bottom | These presets bring stronger separation through stroke or card logic. |
| A line should feel musical or singalong | Karaoke Basic | Warm color and glow are already tuned for performance-style subtitles. |
| You want futuristic, nightlife, or cyber energy | Neon Cyan or Neon Pink | These presets encode synthetic glow behavior instead of forcing it as an afterthought. |
| You want film or essay tone | Cinema Serif | The serif, color, and placement all slow the mood down in a good way. |
| You need a top-anchored headline strap | Top News White or Top News Blue | These are not generic subtitles. They are top-bar broadcast styles. |
| You need a subtitle that behaves like a highlighted note | Yellow Highlight or Red Alert | These styles turn speech into a visible card or warning badge. |
| A central line needs title energy | Bold Center or Boxed Black | These presets are closer to opener statements than quiet subtitles. |
The mistake most teams make is picking the loudest preview card. That is not a strategy. The better approach is to start from the communication job. Is the subtitle only carrying dialogue? Is it acting like a note card? Is it meant to feel musical? Is it meant to imitate a broadcast strap? Once the job is clear, the preset choice becomes much easier.
Complete active subtitle style catalog at a glance
The current live pack contains 14 subtitle presets. The index below covers every style currently shipped by the editor pack, grouped by actual usage logic instead of one flat gallery wall.
- Bold Center
- Boxed Black
- Minimal Bottom
- Bold Bottom
- Cinema Serif
- Mono Bottom
- Soft Box Bottom
- Yellow Highlight
- Red Alert
- Karaoke Basic
- Neon Cyan
- Neon Pink
- Top News White
- Top News Blue
Centered and opener styles
These presets behave less like quiet speech subtitles and more like hero subtitle treatments or loud spoken-line cards. They are useful when the subtitle needs to behave like an intentional graphic object, not only a transcript line sitting near the bottom edge.
| Style | ID | Core setup | Visual idea | Best use |
|---|---|---|---|---|
| Bold Center | bold_center | default sans, 138px, center, normal, stroke 0px, no card, no glow | The default preset because it is the simplest high-impact center subtitle treatment in the pack. | Use it when a subtitle line should feel like a central statement, opener, or emphasized spoken phrase rather than a quiet caption running near the safe-bottom area. |
| Boxed Black | boxed_black | default sans, 117px, bottom, upper, stroke 0px, no card, no glow | A strong uppercase treatment with clean center alignment and no extra card, which makes it feel like a loud title built from subtitle timing. | Useful for punch lines, social hook subtitles, or short spoken beats that should land with headline energy. |
Bottom utility subtitles
This is the core subtitle group for normal spoken-word rendering. These presets are built to sit near the lower safe area, stay readable over footage, and carry dialogue without stealing the whole frame.
| Style | ID | Core setup | Visual idea | Best use |
|---|---|---|---|---|
| Minimal Bottom | minimal_bottom | default sans, 108px, bottom, normal, stroke 0px, no card, no glow | The cleanest utility subtitle in the pack: no heavy stroke, no badge, only enough shadow to stay readable. | This is the safe choice for general dialogue where the footage should remain dominant and the subtitles should feel professional instead of decorative. |
| Bold Bottom | bold_bottom | default sans, 126px, bottom, upper, stroke 6px, no card, no glow | A more forceful lower subtitle with uppercase text, stronger stroke, and heavier shadow support. | Use it when spoken text needs to survive busy or bright footage and the subtitle should feel assertive. |
| Cinema Serif | cinema_serif_bottom | Times New Roman, 111px, bottom, normal, stroke 0px, no card, no glow | A serif subtitle with warmer color and italic posture that immediately shifts the tone toward film, essay, and drama. | Best for slower storytelling, cinematic montages, prestige explainers, and content where neutral sans subtitles feel too mechanical. |
| Mono Bottom | mono_bottom | Courier New, 99px, bottom, upper, stroke 2px, no card, no glow | A technical monospaced subtitle with wider tracking and cooler palette. | Use it for product demos, hacker or terminal themes, technical explainers, or any project where subtitle grammar should feel machine-adjacent. |
Card and highlight subtitles
These styles still live near the bottom, but they turn the subtitle into a more explicit card, stripe, or badge. They are useful when the subtitle needs stronger separation, a social-friendly label feel, or clearer accessibility over busy footage.
| Style | ID | Core setup | Visual idea | Best use |
|---|---|---|---|---|
| Soft Box Bottom | soft_box_bottom | default sans, 105px, bottom, normal, stroke 0px, card, no glow | A rounded dark card that separates speech from the scene without becoming loud news graphics. | It is the best fit when readability matters more than raw style and the footage has enough visual noise to justify a protected subtitle card. |
| Yellow Highlight | yellow_highlight_bottom | default sans, 105px, bottom, normal, stroke 0px, card, no glow | Black text on a yellow stripe, which makes the subtitle behave like a highlighted note instead of a plain line of dialogue. | Use it for tutorials, creator explainers, list-style content, and any subtitle line that should read like a deliberate highlight. |
| Red Alert | red_alert_bottom | default sans, 105px, bottom, upper, stroke 2px, card, no glow | A red badge subtitle with uppercase emphasis and a more urgent broadcast-adjacent attitude. | Good for warnings, dramatic punch lines, breaking-style commentary, or edits that need urgency. |
Stylized and neon subtitles
These presets are for music, nightlife, karaoke, cyber, and more synthetic edits. They are not neutral by design. The glow, color, and contrast choices are part of the communicative idea.
| Style | ID | Core setup | Visual idea | Best use |
|---|---|---|---|---|
| Karaoke Basic | karaoke_basic | default sans, 126px, bottom, normal, stroke 0px, no card, glow 52% | Warm yellow fill with orange glow, built to feel like karaoke or singalong text instead of neutral subtitles. | Use it when the subtitle should feel musical, playful, or performance-led rather than purely informational. |
| Neon Cyan | neon_cyan_bottom | default sans, 117px, bottom, upper, stroke 3px, no card, glow 78% | A bright cyan glow subtitle with dark stroke support that reads as cyber, electric, and synthetic. | Best for nightlife, futuristic edits, game-adjacent content, and synthetic UI-heavy video styles. |
| Neon Pink | neon_pink_bottom | default sans, 117px, bottom, upper, stroke 3px, no card, glow 80% | A pink neon sister style with warmer pop energy and more creator-aesthetic attitude than the cyan version. | Use it for beauty, fashion, club, music, and creator videos where the subtitle should carry visible personality. |
Top headline and broadcast styles
These presets move subtitle logic to the top of frame and make it behave more like a headline bar, news topper, or broadcast explainer. They are useful when the bottom area is occupied or when the format intentionally imitates TV language.
| Style | ID | Core setup | Visual idea | Best use |
|---|---|---|---|---|
| Top News White | top_news_white | default sans, 96px, top, upper, stroke 0px, card, no glow | A white top bar that behaves like a clean news strap or headline topper. | Use it when the bottom frame is occupied, when you want a broadcast look, or when the text should behave like a summary line instead of dialogue. |
| Top News Blue | top_news_blue | default sans, 96px, top, upper, stroke 2px, card, no glow | A blue broadcast bar with stronger visual identity and more overt newsroom language. | Best for explainer formats, mock-news layouts, sports-style top straps, and high-contrast headline overlays. |
Why the preset pack is structured this way
A subtitle pack should not try to be infinitely creative. It should cover the recurring subtitle jobs that actually appear in production. That is why the JSONClip pack concentrates on a few obvious classes: center emphasis, bottom utility dialogue, stronger card-backed bottoms, karaoke or neon styles, and top-bar broadcast presets. Those are the jobs that keep repeating.
The goal is not to produce a giant pile of near-duplicates. The goal is to let the operator say, 'This line should feel like dialogue,' or 'This line should feel like a warning badge,' or 'This line should feel like a top news strap,' and have a named preset that already behaves that way.
Centered and opener styles
These presets behave less like quiet speech subtitles and more like hero subtitle treatments or loud spoken-line cards. They are useful when the subtitle needs to behave like an intentional graphic object, not only a transcript line sitting near the bottom edge.
Bold Center
The default preset because it is the simplest high-impact center subtitle treatment in the pack. In a 1080×1920 project, the resolved preset lands at about 138px type, around y 960, with width 626px and center alignment. The font family is default sans, the text color is #FFFFFF, and the casing is normal. Support layers are part of the idea too: stroke 0px, shadow blur 14%, background disabled, glow 0%.
Use it when a subtitle line should feel like a central statement, opener, or emphasized spoken phrase rather than a quiet caption running near the safe-bottom area. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Boxed Black
A strong uppercase treatment with clean center alignment and no extra card, which makes it feel like a loud title built from subtitle timing. In a 1080×1920 project, the resolved preset lands at about 117px type, around y 1574, with width 799px and center alignment. The font family is default sans, the text color is #FFFFFF, and the casing is upper. Support layers are part of the idea too: stroke 0px, shadow blur 0%, background disabled, glow 0%.
Useful for punch lines, social hook subtitles, or short spoken beats that should land with headline energy. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Bottom utility subtitles
This is the core subtitle group for normal spoken-word rendering. These presets are built to sit near the lower safe area, stay readable over footage, and carry dialogue without stealing the whole frame.
Minimal Bottom
The cleanest utility subtitle in the pack: no heavy stroke, no badge, only enough shadow to stay readable. In a 1080×1920 project, the resolved preset lands at about 108px type, around y 1613, with width 778px and center alignment. The font family is default sans, the text color is #FFFFFF, and the casing is normal. Support layers are part of the idea too: stroke 0px, shadow blur 12%, background disabled, glow 0%.
This is the safe choice for general dialogue where the footage should remain dominant and the subtitles should feel professional instead of decorative. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Bold Bottom
A more forceful lower subtitle with uppercase text, stronger stroke, and heavier shadow support. In a 1080×1920 project, the resolved preset lands at about 126px type, around y 1613, with width 842px and center alignment. The font family is default sans, the text color is #FFFFFF, and the casing is upper. Support layers are part of the idea too: stroke 6px, shadow blur 18%, background disabled, glow 0%.
Use it when spoken text needs to survive busy or bright footage and the subtitle should feel assertive. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Cinema Serif
A serif subtitle with warmer color and italic posture that immediately shifts the tone toward film, essay, and drama. In a 1080×1920 project, the resolved preset lands at about 111px type, around y 1642, with width 864px and center alignment. The font family is Times New Roman, the text color is #F8E9C5, and the casing is normal. Support layers are part of the idea too: stroke 0px, shadow blur 14%, background disabled, glow 0%.
Best for slower storytelling, cinematic montages, prestige explainers, and content where neutral sans subtitles feel too mechanical. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Mono Bottom
A technical monospaced subtitle with wider tracking and cooler palette. In a 1080×1920 project, the resolved preset lands at about 99px type, around y 1642, with width 842px and center alignment. The font family is Courier New, the text color is #E8EDF8, and the casing is upper. Support layers are part of the idea too: stroke 2px, shadow blur 0%, background disabled, glow 0%.
Use it for product demos, hacker or terminal themes, technical explainers, or any project where subtitle grammar should feel machine-adjacent. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Card and highlight subtitles
These styles still live near the bottom, but they turn the subtitle into a more explicit card, stripe, or badge. They are useful when the subtitle needs stronger separation, a social-friendly label feel, or clearer accessibility over busy footage.
Soft Box Bottom
A rounded dark card that separates speech from the scene without becoming loud news graphics. In a 1080×1920 project, the resolved preset lands at about 105px type, around y 1632, with width 842px and center alignment. The font family is default sans, the text color is #FFFFFF, and the casing is normal. Support layers are part of the idea too: stroke 0px, shadow blur 12%, background enabled, glow 0%.
It is the best fit when readability matters more than raw style and the footage has enough visual noise to justify a protected subtitle card. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Yellow Highlight
Black text on a yellow stripe, which makes the subtitle behave like a highlighted note instead of a plain line of dialogue. In a 1080×1920 project, the resolved preset lands at about 105px type, around y 1632, with width 821px and center alignment. The font family is default sans, the text color is #101010, and the casing is normal. Support layers are part of the idea too: stroke 0px, shadow blur 0%, background enabled, glow 0%.
Use it for tutorials, creator explainers, list-style content, and any subtitle line that should read like a deliberate highlight. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Red Alert
A red badge subtitle with uppercase emphasis and a more urgent broadcast-adjacent attitude. In a 1080×1920 project, the resolved preset lands at about 105px type, around y 1622, with width 821px and center alignment. The font family is default sans, the text color is #FFFFFF, and the casing is upper. Support layers are part of the idea too: stroke 2px, shadow blur 0%, background enabled, glow 0%.
Good for warnings, dramatic punch lines, breaking-style commentary, or edits that need urgency. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Stylized and neon subtitles
These presets are for music, nightlife, karaoke, cyber, and more synthetic edits. They are not neutral by design. The glow, color, and contrast choices are part of the communicative idea.
Karaoke Basic
Warm yellow fill with orange glow, built to feel like karaoke or singalong text instead of neutral subtitles. In a 1080×1920 project, the resolved preset lands at about 126px type, around y 1536, with width 799px and center alignment. The font family is default sans, the text color is #FFE066, and the casing is normal. Support layers are part of the idea too: stroke 0px, shadow blur 10%, background disabled, glow 52%.
Use it when the subtitle should feel musical, playful, or performance-led rather than purely informational. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Neon Cyan
A bright cyan glow subtitle with dark stroke support that reads as cyber, electric, and synthetic. In a 1080×1920 project, the resolved preset lands at about 117px type, around y 1613, with width 842px and center alignment. The font family is default sans, the text color is #E6FCFF, and the casing is upper. Support layers are part of the idea too: stroke 3px, shadow blur 0%, background disabled, glow 78%.
Best for nightlife, futuristic edits, game-adjacent content, and synthetic UI-heavy video styles. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Neon Pink
A pink neon sister style with warmer pop energy and more creator-aesthetic attitude than the cyan version. In a 1080×1920 project, the resolved preset lands at about 117px type, around y 1613, with width 842px and center alignment. The font family is default sans, the text color is #FFE6F8, and the casing is upper. Support layers are part of the idea too: stroke 3px, shadow blur 0%, background disabled, glow 80%.
Use it for beauty, fashion, club, music, and creator videos where the subtitle should carry visible personality. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Top headline and broadcast styles
These presets move subtitle logic to the top of frame and make it behave more like a headline bar, news topper, or broadcast explainer. They are useful when the bottom area is occupied or when the format intentionally imitates TV language.
Top News White
A white top bar that behaves like a clean news strap or headline topper. In a 1080×1920 project, the resolved preset lands at about 96px type, around y 307, with width 821px and center alignment. The font family is default sans, the text color is #121212, and the casing is upper. Support layers are part of the idea too: stroke 0px, shadow blur 0%, background enabled, glow 0%.
Use it when the bottom frame is occupied, when you want a broadcast look, or when the text should behave like a summary line instead of dialogue. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
Top News Blue
A blue broadcast bar with stronger visual identity and more overt newsroom language. In a 1080×1920 project, the resolved preset lands at about 96px type, around y 307, with width 821px and center alignment. The font family is default sans, the text color is #FFFFFF, and the casing is upper. Support layers are part of the idea too: stroke 2px, shadow blur 0%, background enabled, glow 0%.
Best for explainer formats, mock-news layouts, sports-style top straps, and high-contrast headline overlays. The practical rule is to choose the preset because its subtitle behavior matches the job. If the line should disappear politely into the frame, choose a utility bottom style. If it should look like a badge, a karaoke line, or a broadcast topper, use a preset that already encodes that grammar.
How file parsing and cue cleanup work
The subtitle parser supports SRT, VTT, and ASS. Internally, arrow-based formats like SRT and VTT resolve through the same cue parser, while ASS gets its own dialogue-field handling because the structure is different. The parser also normalizes line breaks, strips markup that should not survive into visible text, and ignores malformed cues.
After parsing, cue sanitization matters just as much. JSONClip drops empty text, rounds cue timings to integers, removes cues where `from_ms >= to_ms`, and clamps the result to the actual movie end. That is good operational behavior. A weak subtitle layer will blindly trust broken cue files and then create weird tail-end artifacts or impossible cue windows in the render.
This is worth calling out because subtitle reliability is not only a design problem. It is also a data hygiene problem. A tool that looks stylish but trusts invalid cues will still fail in production.
Mistakes teams make with subtitles
- Using one loud subtitle style for every video regardless of footage density or tone.
- Treating a broadcast top-bar style like a normal spoken-word subtitle and then wondering why the frame feels too busy.
- Choosing neon or karaoke styles for pure informational dialogue where readability matters more than personality.
- Embedding manual line breaks everywhere instead of letting the subtitle width model work.
- Forgetting to separate authored overlay text from timed speech subtitles.
- Uploading subtitle files without format discipline and assuming every parser will guess correctly forever.
- Letting auto subtitles ship without checking whether the chosen style matches the actual content tone.
These mistakes do not always look disastrous in one preview. They become expensive when repeated across volume. The subtitle layer stops feeling like a dependable system and starts feeling like a pile of random style choices.
What to monitor next as the subtitle pack evolves
The important question is not whether more subtitle presets can be added. The important question is whether any new preset covers a genuinely new subtitle job. If a new style is only a tiny color variation of an existing one, it increases visual noise without improving the system.
A strong subtitle catalog stays compact, legible, and role-driven. It should be obvious which styles are neutral utilities, which ones are cards, which ones are musical or synthetic, and which ones imitate broadcast language. That clarity matters more than raw preset count.
Conclusion
Subtitles in JSONClip work because the system is explicit. Cues have timing. Source formats are named. Styles are named. Scaling is resolved from the project frame instead of guessed. That combination is what makes subtitles usable in both manual editor work and automation-first rendering workflows.
The active subtitle pack currently contains 14 styles, and the real value is not the number. The real value is that each style has a job: quiet dialogue, stronger readability, highlighted card, karaoke energy, neon personality, or top-bar broadcast logic. That is the difference between a subtitle catalog and a random pile of text skins.
If the team chooses subtitle presets by role instead of by thumbnail novelty, the whole pipeline gets cleaner. Dialogue stays readable, highlight lines feel intentional, and the product remains predictable enough to trust under volume.
FAQ
Are subtitles and captions the same thing in JSONClip? In product UI and code, the system is named `captions`, but in practical usage it covers subtitle workflows too. The article uses “subtitles” because that is how most users think about timed spoken text on screen.
How many subtitle styles are currently in the active pack? As of April 6, 2026, the live preset pack contains 14 styles.
Which formats are supported? The parser handles SRT, VTT, and ASS. The upload accept string in the editor explicitly allows those formats.
Can JSONClip generate subtitles automatically from audio? Yes. The editor exposes an auto-subtitles-from-audio flow and then applies one of the same caption style IDs to the result.
Do subtitle styles scale with project size? Yes. The resolved preset scales from project height, then derives width and placement from the active frame dimensions.
Methodology and sources
This article is based on the live subtitle preset pack exported from `jsonclip-ui/src/editor/captions.ts`, the runtime preset resolver used by the editor for project-dimension scaling, and the caption parsing functions that handle SRT, VTT, and ASS. The list in this article is derived from the actual preset pack, not a manually maintained marketing list, which is why it reflects the real current product state.