You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: skills/shotstack/references/fonts.md
+2-19Lines changed: 2 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -34,26 +34,9 @@ Load a font from a public URL via `timeline.fonts[]`, then reference its **file
34
34
35
35
The `font.family` value is the URL's filename without extension, and it **must** match the URL's basename exactly. For URL `https://fonts.gstatic.com/s/montserrat/v31/JTUSjIg1_i6t8kCHKm45xW5rygbi49c.ttf`, family = `JTUSjIg1_i6t8kCHKm45xW5rygbi49c`. If `family` and the URL basename diverge, the font silently fails to load.
36
36
37
-
## Verified font catalogue (12 fonts)
37
+
## Verified font catalogue
38
38
39
-
Copied verbatim from the Studio SDK catalogue. Paste the **url** into `timeline.fonts[].src`, paste the **family** into `asset.font.family`.
40
-
41
-
| Font (style) | family (use in `font.family`) | url (use in `timeline.fonts[].src`) |
42
-
|---|---|---|
43
-
| Inter (sans, variable) |`UcCo3FwrK3iLTfvlaQc78lA2`|`https://fonts.gstatic.com/s/inter/v20/UcCo3FwrK3iLTfvlaQc78lA2.ttf`|
Variable fonts (most of the above) cover the full weight range (100–900) from a single URL — set `font.weight` in the clip. For the non-variable fonts (Poppins, Bebas Neue, Anton) the registered URL is weight 400; the SDK falls back gracefully when you request a bolder weight.
39
+
The verified 12-font catalogue lives in [`shared/agent-core.md`](../shared/agent-core.md) (Fonts section) — the single copy, so it can't drift. Copy entries from there verbatim. Non-variable fonts in that table (Poppins, Bebas Neue, Anton) register at weight 400; the SDK falls back gracefully when you request a bolder weight.
Copy file name to clipboardExpand all lines: skills/shotstack/references/html5.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,7 +82,7 @@ The iframe renders under a strict Content-Security-Policy (`default-src 'none'`)
82
82
```
83
83
2.**Use a system family** (`system-ui`, `Arial`, `Georgia`, …) — resolves in the render browser with no load.
84
84
85
-
An unresolved family silently falls back to the browser default — the render won't fail, but the text won't be your font. For a single styled line, a `rich-text` asset (which *does* use `timeline.fonts[]`; verified catalogue in `references/fonts.md`) is simpler than a `data:` font embed.
85
+
An unresolved family silently falls back to the browser default — the render won't fail, but the text won't be your font. For a single styled line, a `rich-text` asset (which *does* use `timeline.fonts[]`; verified catalogue in `shared/agent-core.md`) is simpler than a `data:` font embed.
Copy file name to clipboardExpand all lines: skills/shotstack/shared/agent-core.md
+21-2Lines changed: 21 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -266,7 +266,26 @@ Use **custom Google Fonts via `timeline.fonts[]`**. System fonts (`Arial`, `Helv
266
266
267
267
**CRITICAL: Do NOT construct or fabricate Google Fonts URLs from memory.** Google rotates them (`v26 → v31 → ...`) and the hash filenames change with each version. Any URL you reconstruct from training data is almost certainly a 404. **Use ONLY the verified entries below, copied verbatim.**
268
268
269
-
See `references/fonts.md` for how to source fonts from the Studio SDK catalogue and the built-in fallback fonts.
269
+
### Verified font catalogue (12 fonts)
270
+
271
+
Paste the **url** into `timeline.fonts[].src`, paste the **family** into `asset.font.family`.
272
+
273
+
| Font (style) | family (use in `font.family`) | url (use in `timeline.fonts[].src`) |
274
+
|---|---|---|
275
+
| Inter (sans, variable) |`UcCo3FwrK3iLTfvlaQc78lA2`|`https://fonts.gstatic.com/s/inter/v20/UcCo3FwrK3iLTfvlaQc78lA2.ttf`|
Variable fonts cover the full weight range (100–900) from a single URL — set `font.weight` on the clip. For a font not listed: copy an entry **verbatim** from the Studio SDK catalogue (~400 fonts) at <https://github.com/shotstack/shotstack-studio-sdk/blob/main/src/core/fonts/google-fonts.ts>, or open the font on <https://fonts.google.com>, view the CSS, and copy the exact `.ttf` URL from the `@font-face``src`. Never hand-edit the version or hash segments.
270
289
271
290
### Usage example
272
291
@@ -297,7 +316,7 @@ The `font.family` value MUST match the `family` column in the table above (it's
297
316
## Top 5 mistakes
298
317
299
318
1.**Reverse track order.**`tracks[0]` is the TOP layer, not the bottom. Captions go in early tracks; backgrounds go in late tracks.
300
-
2.**System fonts.**`Arial`, `Helvetica`, `Times New Roman`, etc. are not installed. Use Google Fonts via `timeline.fonts[]` (preferred) or one of the built-in fonts in `references/fonts.md`.
319
+
2.**System fonts.**`Arial`, `Helvetica`, `Times New Roman`, etc. are not installed. Use Google Fonts via `timeline.fonts[]`, copied verbatim from the verified catalogue in the Fonts section.
301
320
3.**Captions fill the whole frame.** A `rich-caption` clip without `width`, `height`, and `fit: "none"` covers the entire output. Use a named preset from `references/caption.md`.
302
321
4.**`<text>` inside an SVG asset.** Raw `<text>` is unsupported. Use a `rich-text` asset for any text content; reserve SVG for shapes only.
303
322
5.**Composing custom caption styles when presets exist.** The five named presets (Nico, Kai, Kapow, Lovely Little Lychee, Rizz) cover the common styles. Use one verbatim from `references/caption.md` unless the user asks for something specific.
0 commit comments