diff --git a/docs/catalog/components/caption-clip-wipe.mdx b/docs/catalog/components/caption-clip-wipe.mdx
new file mode 100644
index 000000000..9816574f0
--- /dev/null
+++ b/docs/catalog/components/caption-clip-wipe.mdx
@@ -0,0 +1,38 @@
+---
+title: "Clip Wipe"
+description: "Left-to-right clip-path wipe reveal per word"
+---
+
+# Clip Wipe
+
+Left-to-right clip-path wipe reveal per word
+
+`captions` `caption-style` `wipe` `clip-path` `reveal`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-clip-wipe
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-clip-wipe.html` | `compositions/components/caption-clip-wipe.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-clip-wipe.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-editorial-emphasis.mdx b/docs/catalog/components/caption-editorial-emphasis.mdx
new file mode 100644
index 000000000..35b3e17ff
--- /dev/null
+++ b/docs/catalog/components/caption-editorial-emphasis.mdx
@@ -0,0 +1,38 @@
+---
+title: "Editorial Emphasis"
+description: "Dual-font system with dramatic size contrast for emphasis words"
+---
+
+# Editorial Emphasis
+
+Dual-font system with dramatic size contrast for emphasis words
+
+`captions` `caption-style` `editorial` `typography` `emphasis`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-editorial-emphasis
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-editorial-emphasis.html` | `compositions/components/caption-editorial-emphasis.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-editorial-emphasis.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-emoji-pop.mdx b/docs/catalog/components/caption-emoji-pop.mdx
new file mode 100644
index 000000000..a1914f97c
--- /dev/null
+++ b/docs/catalog/components/caption-emoji-pop.mdx
@@ -0,0 +1,38 @@
+---
+title: "Emoji Pop"
+description: "Emoji integration with stroked text and horizontal squeeze entrance"
+---
+
+# Emoji Pop
+
+Emoji integration with stroked text and horizontal squeeze entrance
+
+`captions` `caption-style` `emoji` `social`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-emoji-pop
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-emoji-pop.html` | `compositions/components/caption-emoji-pop.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-emoji-pop.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-glitch-rgb.mdx b/docs/catalog/components/caption-glitch-rgb.mdx
new file mode 100644
index 000000000..a1344b546
--- /dev/null
+++ b/docs/catalog/components/caption-glitch-rgb.mdx
@@ -0,0 +1,38 @@
+---
+title: "Glitch RGB"
+description: "RGB chromatic aberration with CRT scanline overlay"
+---
+
+# Glitch RGB
+
+RGB chromatic aberration with CRT scanline overlay
+
+`captions` `caption-style` `glitch` `cyber` `tech`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-glitch-rgb
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-glitch-rgb.html` | `compositions/components/caption-glitch-rgb.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-glitch-rgb.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-gradient-fill.mdx b/docs/catalog/components/caption-gradient-fill.mdx
new file mode 100644
index 000000000..a81eea83b
--- /dev/null
+++ b/docs/catalog/components/caption-gradient-fill.mdx
@@ -0,0 +1,38 @@
+---
+title: "Gradient Fill"
+description: "Gradient-clipped text with elastic bounce entrance"
+---
+
+# Gradient Fill
+
+Gradient-clipped text with elastic bounce entrance
+
+`captions` `caption-style` `gradient` `colorful`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-gradient-fill
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-gradient-fill.html` | `compositions/components/caption-gradient-fill.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-gradient-fill.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-kinetic-slam.mdx b/docs/catalog/components/caption-kinetic-slam.mdx
new file mode 100644
index 000000000..ec24d38d3
--- /dev/null
+++ b/docs/catalog/components/caption-kinetic-slam.mdx
@@ -0,0 +1,38 @@
+---
+title: "Kinetic Slam"
+description: "Full-screen single-word display with alternating entrance directions"
+---
+
+# Kinetic Slam
+
+Full-screen single-word display with alternating entrance directions
+
+`captions` `caption-style` `kinetic` `typography` `slam`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-kinetic-slam
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-kinetic-slam.html` | `compositions/components/caption-kinetic-slam.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-kinetic-slam.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-matrix-decode.mdx b/docs/catalog/components/caption-matrix-decode.mdx
new file mode 100644
index 000000000..dcc363a8a
--- /dev/null
+++ b/docs/catalog/components/caption-matrix-decode.mdx
@@ -0,0 +1,38 @@
+---
+title: "Matrix Decode"
+description: "Character scramble animation before text reveal"
+---
+
+# Matrix Decode
+
+Character scramble animation before text reveal
+
+`captions` `caption-style` `matrix` `scramble` `decode`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-matrix-decode
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-matrix-decode.html` | `compositions/components/caption-matrix-decode.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-matrix-decode.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-neon-accent.mdx b/docs/catalog/components/caption-neon-accent.mdx
new file mode 100644
index 000000000..4a921810f
--- /dev/null
+++ b/docs/catalog/components/caption-neon-accent.mdx
@@ -0,0 +1,38 @@
+---
+title: "Neon Accent"
+description: "Multi-color neon glow accents with wiggle drift animation"
+---
+
+# Neon Accent
+
+Multi-color neon glow accents with wiggle drift animation
+
+`captions` `caption-style` `neon` `glow` `accent`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-neon-accent
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-neon-accent.html` | `compositions/components/caption-neon-accent.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-neon-accent.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-neon-glow.mdx b/docs/catalog/components/caption-neon-glow.mdx
new file mode 100644
index 000000000..d2cb58a04
--- /dev/null
+++ b/docs/catalog/components/caption-neon-glow.mdx
@@ -0,0 +1,38 @@
+---
+title: "Neon Glow"
+description: "Cyan and magenta neon glow with keyword accent colors"
+---
+
+# Neon Glow
+
+Cyan and magenta neon glow with keyword accent colors
+
+`captions` `caption-style` `neon` `glow` `gaming`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-neon-glow
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-neon-glow.html` | `compositions/components/caption-neon-glow.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-neon-glow.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-parallax-layers.mdx b/docs/catalog/components/caption-parallax-layers.mdx
new file mode 100644
index 000000000..72eda7492
--- /dev/null
+++ b/docs/catalog/components/caption-parallax-layers.mdx
@@ -0,0 +1,38 @@
+---
+title: "Parallax Layers"
+description: "Behind-subject 3D text layering with vertical stretch effect"
+---
+
+# Parallax Layers
+
+Behind-subject 3D text layering with vertical stretch effect
+
+`captions` `caption-style` `parallax` `3d` `depth`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-parallax-layers
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-parallax-layers.html` | `compositions/components/caption-parallax-layers.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-parallax-layers.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-particle-burst.mdx b/docs/catalog/components/caption-particle-burst.mdx
new file mode 100644
index 000000000..d4f304dde
--- /dev/null
+++ b/docs/catalog/components/caption-particle-burst.mdx
@@ -0,0 +1,38 @@
+---
+title: "Particle Burst"
+description: "Keyword words trigger colored particle explosions"
+---
+
+# Particle Burst
+
+Keyword words trigger colored particle explosions
+
+`captions` `caption-style` `particles` `burst` `effects`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-particle-burst
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-particle-burst.html` | `compositions/components/caption-particle-burst.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-particle-burst.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-pill-karaoke.mdx b/docs/catalog/components/caption-pill-karaoke.mdx
new file mode 100644
index 000000000..e16845939
--- /dev/null
+++ b/docs/catalog/components/caption-pill-karaoke.mdx
@@ -0,0 +1,38 @@
+---
+title: "Pill Karaoke"
+description: "Pill-shaped container with per-word karaoke color highlight"
+---
+
+# Pill Karaoke
+
+Pill-shaped container with per-word karaoke color highlight
+
+`captions` `caption-style` `karaoke` `pill`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-pill-karaoke
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-pill-karaoke.html` | `compositions/components/caption-pill-karaoke.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-pill-karaoke.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-texture-lava.mdx b/docs/catalog/components/caption-texture-lava.mdx
new file mode 100644
index 000000000..71e8156e9
--- /dev/null
+++ b/docs/catalog/components/caption-texture-lava.mdx
@@ -0,0 +1,39 @@
+---
+title: "Texture Lava"
+description: "Flowing lava texture mask over large uppercase text"
+---
+
+# Texture Lava
+
+Flowing lava texture mask over large uppercase text
+
+`captions` `caption-style` `texture` `lava` `mask`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-texture-lava
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-texture-lava.html` | `compositions/components/caption-texture-lava.html` | hyperframes:snippet |
+| `lava.png` | `compositions/components/lava.png` | hyperframes:asset |
+
+## Usage
+
+Open `compositions/components/caption-texture-lava.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-typewriter.mdx b/docs/catalog/components/caption-typewriter.mdx
new file mode 100644
index 000000000..5858bc321
--- /dev/null
+++ b/docs/catalog/components/caption-typewriter.mdx
@@ -0,0 +1,38 @@
+---
+title: "Typewriter"
+description: "Green terminal character-by-character reveal with blinking cursor"
+---
+
+# Typewriter
+
+Green terminal character-by-character reveal with blinking cursor
+
+`captions` `caption-style` `terminal` `typewriter` `hacker`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-typewriter
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-typewriter.html` | `compositions/components/caption-typewriter.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-typewriter.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/catalog/components/caption-weight-shift.mdx b/docs/catalog/components/caption-weight-shift.mdx
new file mode 100644
index 000000000..f32439c52
--- /dev/null
+++ b/docs/catalog/components/caption-weight-shift.mdx
@@ -0,0 +1,38 @@
+---
+title: "Weight Shift"
+description: "Elegant font-weight transition between caption lines"
+---
+
+# Weight Shift
+
+Elegant font-weight transition between caption lines
+
+`captions` `caption-style` `minimal` `typography`
+
+
+
+## Install
+
+
+
+```bash Terminal
+npx hyperframes add caption-weight-shift
+```
+
+
+
+## Details
+
+| Property | Value |
+| --- | --- |
+| Type | Component |
+
+## Files
+
+| File | Target | Type |
+| --- | --- | --- |
+| `caption-weight-shift.html` | `compositions/components/caption-weight-shift.html` | hyperframes:snippet |
+
+## Usage
+
+Open `compositions/components/caption-weight-shift.html` and paste its contents into your composition. See the comment header in the file for detailed instructions.
diff --git a/docs/docs.json b/docs/docs.json
index de19051d5..45263e34f 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -95,6 +95,26 @@
{
"tab": "Catalog",
"groups": [
+ {
+ "group": "Captions",
+ "pages": [
+ "catalog/components/caption-clip-wipe",
+ "catalog/components/caption-editorial-emphasis",
+ "catalog/components/caption-emoji-pop",
+ "catalog/components/caption-glitch-rgb",
+ "catalog/components/caption-gradient-fill",
+ "catalog/components/caption-kinetic-slam",
+ "catalog/components/caption-matrix-decode",
+ "catalog/components/caption-neon-accent",
+ "catalog/components/caption-neon-glow",
+ "catalog/components/caption-parallax-layers",
+ "catalog/components/caption-particle-burst",
+ "catalog/components/caption-pill-karaoke",
+ "catalog/components/caption-texture-lava",
+ "catalog/components/caption-typewriter",
+ "catalog/components/caption-weight-shift"
+ ]
+ },
{
"group": "HTML-in-Canvas",
"pages": [
diff --git a/docs/public/catalog-index.json b/docs/public/catalog-index.json
index b25cab621..b533fb2cb 100644
--- a/docs/public/catalog-index.json
+++ b/docs/public/catalog-index.json
@@ -41,6 +41,227 @@
"href": "/catalog/blocks/blue-sweater-intro-video",
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/blue-sweater-intro-video.png"
},
+ {
+ "name": "caption-clip-wipe",
+ "type": "component",
+ "title": "Clip Wipe",
+ "description": "Left-to-right clip-path wipe reveal per word",
+ "tags": [
+ "captions",
+ "caption-style",
+ "wipe",
+ "clip-path",
+ "reveal"
+ ],
+ "href": "/catalog/components/caption-clip-wipe",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-clip-wipe.png"
+ },
+ {
+ "name": "caption-editorial-emphasis",
+ "type": "component",
+ "title": "Editorial Emphasis",
+ "description": "Dual-font system with dramatic size contrast for emphasis words",
+ "tags": [
+ "captions",
+ "caption-style",
+ "editorial",
+ "typography",
+ "emphasis"
+ ],
+ "href": "/catalog/components/caption-editorial-emphasis",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-editorial-emphasis.png"
+ },
+ {
+ "name": "caption-emoji-pop",
+ "type": "component",
+ "title": "Emoji Pop",
+ "description": "Emoji integration with stroked text and horizontal squeeze entrance",
+ "tags": [
+ "captions",
+ "caption-style",
+ "emoji",
+ "social"
+ ],
+ "href": "/catalog/components/caption-emoji-pop",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-emoji-pop.png"
+ },
+ {
+ "name": "caption-glitch-rgb",
+ "type": "component",
+ "title": "Glitch RGB",
+ "description": "RGB chromatic aberration with CRT scanline overlay",
+ "tags": [
+ "captions",
+ "caption-style",
+ "glitch",
+ "cyber",
+ "tech"
+ ],
+ "href": "/catalog/components/caption-glitch-rgb",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-glitch-rgb.png"
+ },
+ {
+ "name": "caption-gradient-fill",
+ "type": "component",
+ "title": "Gradient Fill",
+ "description": "Gradient-clipped text with elastic bounce entrance",
+ "tags": [
+ "captions",
+ "caption-style",
+ "gradient",
+ "colorful"
+ ],
+ "href": "/catalog/components/caption-gradient-fill",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-gradient-fill.png"
+ },
+ {
+ "name": "caption-kinetic-slam",
+ "type": "component",
+ "title": "Kinetic Slam",
+ "description": "Full-screen single-word display with alternating entrance directions",
+ "tags": [
+ "captions",
+ "caption-style",
+ "kinetic",
+ "typography",
+ "slam"
+ ],
+ "href": "/catalog/components/caption-kinetic-slam",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-kinetic-slam.png"
+ },
+ {
+ "name": "caption-matrix-decode",
+ "type": "component",
+ "title": "Matrix Decode",
+ "description": "Character scramble animation before text reveal",
+ "tags": [
+ "captions",
+ "caption-style",
+ "matrix",
+ "scramble",
+ "decode"
+ ],
+ "href": "/catalog/components/caption-matrix-decode",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-matrix-decode.png"
+ },
+ {
+ "name": "caption-neon-accent",
+ "type": "component",
+ "title": "Neon Accent",
+ "description": "Multi-color neon glow accents with wiggle drift animation",
+ "tags": [
+ "captions",
+ "caption-style",
+ "neon",
+ "glow",
+ "accent"
+ ],
+ "href": "/catalog/components/caption-neon-accent",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-neon-accent.png"
+ },
+ {
+ "name": "caption-neon-glow",
+ "type": "component",
+ "title": "Neon Glow",
+ "description": "Cyan and magenta neon glow with keyword accent colors",
+ "tags": [
+ "captions",
+ "caption-style",
+ "neon",
+ "glow",
+ "gaming"
+ ],
+ "href": "/catalog/components/caption-neon-glow",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-neon-glow.png"
+ },
+ {
+ "name": "caption-parallax-layers",
+ "type": "component",
+ "title": "Parallax Layers",
+ "description": "Behind-subject 3D text layering with vertical stretch effect",
+ "tags": [
+ "captions",
+ "caption-style",
+ "parallax",
+ "3d",
+ "depth"
+ ],
+ "href": "/catalog/components/caption-parallax-layers",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-parallax-layers.png"
+ },
+ {
+ "name": "caption-particle-burst",
+ "type": "component",
+ "title": "Particle Burst",
+ "description": "Keyword words trigger colored particle explosions",
+ "tags": [
+ "captions",
+ "caption-style",
+ "particles",
+ "burst",
+ "effects"
+ ],
+ "href": "/catalog/components/caption-particle-burst",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-particle-burst.png"
+ },
+ {
+ "name": "caption-pill-karaoke",
+ "type": "component",
+ "title": "Pill Karaoke",
+ "description": "Pill-shaped container with per-word karaoke color highlight",
+ "tags": [
+ "captions",
+ "caption-style",
+ "karaoke",
+ "pill"
+ ],
+ "href": "/catalog/components/caption-pill-karaoke",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-pill-karaoke.png"
+ },
+ {
+ "name": "caption-texture-lava",
+ "type": "component",
+ "title": "Texture Lava",
+ "description": "Flowing lava texture mask over large uppercase text",
+ "tags": [
+ "captions",
+ "caption-style",
+ "texture",
+ "lava",
+ "mask"
+ ],
+ "href": "/catalog/components/caption-texture-lava",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-texture-lava.png"
+ },
+ {
+ "name": "caption-typewriter",
+ "type": "component",
+ "title": "Typewriter",
+ "description": "Green terminal character-by-character reveal with blinking cursor",
+ "tags": [
+ "captions",
+ "caption-style",
+ "terminal",
+ "typewriter",
+ "hacker"
+ ],
+ "href": "/catalog/components/caption-typewriter",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-typewriter.png"
+ },
+ {
+ "name": "caption-weight-shift",
+ "type": "component",
+ "title": "Weight Shift",
+ "description": "Elegant font-weight transition between caption lines",
+ "tags": [
+ "captions",
+ "caption-style",
+ "minimal",
+ "typography"
+ ],
+ "href": "/catalog/components/caption-weight-shift",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/caption-weight-shift.png"
+ },
{
"name": "chromatic-radial-split",
"type": "block",
diff --git a/registry/components/caption-clip-wipe/caption-clip-wipe.html b/registry/components/caption-clip-wipe/caption-clip-wipe.html
new file mode 100644
index 000000000..986368d7f
--- /dev/null
+++ b/registry/components/caption-clip-wipe/caption-clip-wipe.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+ Clip Wipe
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-clip-wipe/demo.html b/registry/components/caption-clip-wipe/demo.html
new file mode 100644
index 000000000..986368d7f
--- /dev/null
+++ b/registry/components/caption-clip-wipe/demo.html
@@ -0,0 +1,241 @@
+
+
+
+
+
+ Clip Wipe
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-clip-wipe/registry-item.json b/registry/components/caption-clip-wipe/registry-item.json
new file mode 100644
index 000000000..95005f509
--- /dev/null
+++ b/registry/components/caption-clip-wipe/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-clip-wipe",
+ "type": "hyperframes:component",
+ "title": "Clip Wipe",
+ "description": "Left-to-right clip-path wipe reveal per word",
+ "tags": ["captions", "caption-style", "wipe", "clip-path", "reveal"],
+ "files": [
+ {
+ "path": "caption-clip-wipe.html",
+ "target": "compositions/components/caption-clip-wipe.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-clip-wipe/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-editorial-emphasis/caption-editorial-emphasis.html b/registry/components/caption-editorial-emphasis/caption-editorial-emphasis.html
new file mode 100644
index 000000000..85067766d
--- /dev/null
+++ b/registry/components/caption-editorial-emphasis/caption-editorial-emphasis.html
@@ -0,0 +1,430 @@
+
+
+
+
+
+ Editorial Emphasis
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-editorial-emphasis/demo.html b/registry/components/caption-editorial-emphasis/demo.html
new file mode 100644
index 000000000..85067766d
--- /dev/null
+++ b/registry/components/caption-editorial-emphasis/demo.html
@@ -0,0 +1,430 @@
+
+
+
+
+
+ Editorial Emphasis
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-editorial-emphasis/registry-item.json b/registry/components/caption-editorial-emphasis/registry-item.json
new file mode 100644
index 000000000..ea195e08c
--- /dev/null
+++ b/registry/components/caption-editorial-emphasis/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-editorial-emphasis",
+ "type": "hyperframes:component",
+ "title": "Editorial Emphasis",
+ "description": "Dual-font system with dramatic size contrast for emphasis words",
+ "tags": ["captions", "caption-style", "editorial", "typography", "emphasis"],
+ "files": [
+ {
+ "path": "caption-editorial-emphasis.html",
+ "target": "compositions/components/caption-editorial-emphasis.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-editorial-emphasis/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-emoji-pop/caption-emoji-pop.html b/registry/components/caption-emoji-pop/caption-emoji-pop.html
new file mode 100644
index 000000000..64ac88ec5
--- /dev/null
+++ b/registry/components/caption-emoji-pop/caption-emoji-pop.html
@@ -0,0 +1,484 @@
+
+
+
+
+
+ Emoji Pop
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-emoji-pop/demo.html b/registry/components/caption-emoji-pop/demo.html
new file mode 100644
index 000000000..64ac88ec5
--- /dev/null
+++ b/registry/components/caption-emoji-pop/demo.html
@@ -0,0 +1,484 @@
+
+
+
+
+
+ Emoji Pop
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-emoji-pop/registry-item.json b/registry/components/caption-emoji-pop/registry-item.json
new file mode 100644
index 000000000..0fe401f5b
--- /dev/null
+++ b/registry/components/caption-emoji-pop/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-emoji-pop",
+ "type": "hyperframes:component",
+ "title": "Emoji Pop",
+ "description": "Emoji integration with stroked text and horizontal squeeze entrance",
+ "tags": ["captions", "caption-style", "emoji", "social"],
+ "files": [
+ {
+ "path": "caption-emoji-pop.html",
+ "target": "compositions/components/caption-emoji-pop.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-emoji-pop/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-glitch-rgb/caption-glitch-rgb.html b/registry/components/caption-glitch-rgb/caption-glitch-rgb.html
new file mode 100644
index 000000000..4b3c120d3
--- /dev/null
+++ b/registry/components/caption-glitch-rgb/caption-glitch-rgb.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+ Glitch RGB
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-glitch-rgb/demo.html b/registry/components/caption-glitch-rgb/demo.html
new file mode 100644
index 000000000..4b3c120d3
--- /dev/null
+++ b/registry/components/caption-glitch-rgb/demo.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+ Glitch RGB
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-glitch-rgb/registry-item.json b/registry/components/caption-glitch-rgb/registry-item.json
new file mode 100644
index 000000000..e8f356737
--- /dev/null
+++ b/registry/components/caption-glitch-rgb/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-glitch-rgb",
+ "type": "hyperframes:component",
+ "title": "Glitch RGB",
+ "description": "RGB chromatic aberration with CRT scanline overlay",
+ "tags": ["captions", "caption-style", "glitch", "cyber", "tech"],
+ "files": [
+ {
+ "path": "caption-glitch-rgb.html",
+ "target": "compositions/components/caption-glitch-rgb.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-glitch-rgb/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-gradient-fill/caption-gradient-fill.html b/registry/components/caption-gradient-fill/caption-gradient-fill.html
new file mode 100644
index 000000000..eb0fa9e05
--- /dev/null
+++ b/registry/components/caption-gradient-fill/caption-gradient-fill.html
@@ -0,0 +1,248 @@
+
+
+
+
+
+ Gradient Fill
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-gradient-fill/demo.html b/registry/components/caption-gradient-fill/demo.html
new file mode 100644
index 000000000..eb0fa9e05
--- /dev/null
+++ b/registry/components/caption-gradient-fill/demo.html
@@ -0,0 +1,248 @@
+
+
+
+
+
+ Gradient Fill
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-gradient-fill/registry-item.json b/registry/components/caption-gradient-fill/registry-item.json
new file mode 100644
index 000000000..f76651f1b
--- /dev/null
+++ b/registry/components/caption-gradient-fill/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-gradient-fill",
+ "type": "hyperframes:component",
+ "title": "Gradient Fill",
+ "description": "Gradient-clipped text with elastic bounce entrance",
+ "tags": ["captions", "caption-style", "gradient", "colorful"],
+ "files": [
+ {
+ "path": "caption-gradient-fill.html",
+ "target": "compositions/components/caption-gradient-fill.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-gradient-fill/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-kinetic-slam/caption-kinetic-slam.html b/registry/components/caption-kinetic-slam/caption-kinetic-slam.html
new file mode 100644
index 000000000..a3d4d7314
--- /dev/null
+++ b/registry/components/caption-kinetic-slam/caption-kinetic-slam.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+ Kinetic Slam
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-kinetic-slam/demo.html b/registry/components/caption-kinetic-slam/demo.html
new file mode 100644
index 000000000..a3d4d7314
--- /dev/null
+++ b/registry/components/caption-kinetic-slam/demo.html
@@ -0,0 +1,209 @@
+
+
+
+
+
+ Kinetic Slam
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-kinetic-slam/registry-item.json b/registry/components/caption-kinetic-slam/registry-item.json
new file mode 100644
index 000000000..382b6c5b7
--- /dev/null
+++ b/registry/components/caption-kinetic-slam/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-kinetic-slam",
+ "type": "hyperframes:component",
+ "title": "Kinetic Slam",
+ "description": "Full-screen single-word display with alternating entrance directions",
+ "tags": ["captions", "caption-style", "kinetic", "typography", "slam"],
+ "files": [
+ {
+ "path": "caption-kinetic-slam.html",
+ "target": "compositions/components/caption-kinetic-slam.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-kinetic-slam/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-matrix-decode/caption-matrix-decode.html b/registry/components/caption-matrix-decode/caption-matrix-decode.html
new file mode 100644
index 000000000..3d91fb7c1
--- /dev/null
+++ b/registry/components/caption-matrix-decode/caption-matrix-decode.html
@@ -0,0 +1,265 @@
+
+
+
+
+
+ Matrix Decode
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-matrix-decode/demo.html b/registry/components/caption-matrix-decode/demo.html
new file mode 100644
index 000000000..3d91fb7c1
--- /dev/null
+++ b/registry/components/caption-matrix-decode/demo.html
@@ -0,0 +1,265 @@
+
+
+
+
+
+ Matrix Decode
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-matrix-decode/registry-item.json b/registry/components/caption-matrix-decode/registry-item.json
new file mode 100644
index 000000000..a4fd0015a
--- /dev/null
+++ b/registry/components/caption-matrix-decode/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-matrix-decode",
+ "type": "hyperframes:component",
+ "title": "Matrix Decode",
+ "description": "Character scramble animation before text reveal",
+ "tags": ["captions", "caption-style", "matrix", "scramble", "decode"],
+ "files": [
+ {
+ "path": "caption-matrix-decode.html",
+ "target": "compositions/components/caption-matrix-decode.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-matrix-decode/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-neon-accent/caption-neon-accent.html b/registry/components/caption-neon-accent/caption-neon-accent.html
new file mode 100644
index 000000000..3f9e294aa
--- /dev/null
+++ b/registry/components/caption-neon-accent/caption-neon-accent.html
@@ -0,0 +1,531 @@
+
+
+
+
+
+ Neon Accent
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-neon-accent/demo.html b/registry/components/caption-neon-accent/demo.html
new file mode 100644
index 000000000..3f9e294aa
--- /dev/null
+++ b/registry/components/caption-neon-accent/demo.html
@@ -0,0 +1,531 @@
+
+
+
+
+
+ Neon Accent
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-neon-accent/registry-item.json b/registry/components/caption-neon-accent/registry-item.json
new file mode 100644
index 000000000..655997e57
--- /dev/null
+++ b/registry/components/caption-neon-accent/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-neon-accent",
+ "type": "hyperframes:component",
+ "title": "Neon Accent",
+ "description": "Multi-color neon glow accents with wiggle drift animation",
+ "tags": ["captions", "caption-style", "neon", "glow", "accent"],
+ "files": [
+ {
+ "path": "caption-neon-accent.html",
+ "target": "compositions/components/caption-neon-accent.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-neon-accent/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-neon-glow/caption-neon-glow.html b/registry/components/caption-neon-glow/caption-neon-glow.html
new file mode 100644
index 000000000..0416d344f
--- /dev/null
+++ b/registry/components/caption-neon-glow/caption-neon-glow.html
@@ -0,0 +1,231 @@
+
+
+
+
+
+ Neon Glow
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-neon-glow/demo.html b/registry/components/caption-neon-glow/demo.html
new file mode 100644
index 000000000..0416d344f
--- /dev/null
+++ b/registry/components/caption-neon-glow/demo.html
@@ -0,0 +1,231 @@
+
+
+
+
+
+ Neon Glow
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-neon-glow/registry-item.json b/registry/components/caption-neon-glow/registry-item.json
new file mode 100644
index 000000000..af20f33dc
--- /dev/null
+++ b/registry/components/caption-neon-glow/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-neon-glow",
+ "type": "hyperframes:component",
+ "title": "Neon Glow",
+ "description": "Cyan and magenta neon glow with keyword accent colors",
+ "tags": ["captions", "caption-style", "neon", "glow", "gaming"],
+ "files": [
+ {
+ "path": "caption-neon-glow.html",
+ "target": "compositions/components/caption-neon-glow.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-neon-glow/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-parallax-layers/caption-parallax-layers.html b/registry/components/caption-parallax-layers/caption-parallax-layers.html
new file mode 100644
index 000000000..5a18a8822
--- /dev/null
+++ b/registry/components/caption-parallax-layers/caption-parallax-layers.html
@@ -0,0 +1,373 @@
+
+
+
+
+
+ Parallax Layers
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-parallax-layers/demo.html b/registry/components/caption-parallax-layers/demo.html
new file mode 100644
index 000000000..5a18a8822
--- /dev/null
+++ b/registry/components/caption-parallax-layers/demo.html
@@ -0,0 +1,373 @@
+
+
+
+
+
+ Parallax Layers
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-parallax-layers/registry-item.json b/registry/components/caption-parallax-layers/registry-item.json
new file mode 100644
index 000000000..104f612dd
--- /dev/null
+++ b/registry/components/caption-parallax-layers/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-parallax-layers",
+ "type": "hyperframes:component",
+ "title": "Parallax Layers",
+ "description": "Behind-subject 3D text layering with vertical stretch effect",
+ "tags": ["captions", "caption-style", "parallax", "3d", "depth"],
+ "files": [
+ {
+ "path": "caption-parallax-layers.html",
+ "target": "compositions/components/caption-parallax-layers.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-parallax-layers/preview.mp4?v=1779051692"
+}
diff --git a/registry/components/caption-particle-burst/caption-particle-burst.html b/registry/components/caption-particle-burst/caption-particle-burst.html
new file mode 100644
index 000000000..b0a4306e4
--- /dev/null
+++ b/registry/components/caption-particle-burst/caption-particle-burst.html
@@ -0,0 +1,311 @@
+
+
+
+
+
+ Particle Burst
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-particle-burst/demo.html b/registry/components/caption-particle-burst/demo.html
new file mode 100644
index 000000000..b0a4306e4
--- /dev/null
+++ b/registry/components/caption-particle-burst/demo.html
@@ -0,0 +1,311 @@
+
+
+
+
+
+ Particle Burst
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-particle-burst/registry-item.json b/registry/components/caption-particle-burst/registry-item.json
new file mode 100644
index 000000000..929dc4776
--- /dev/null
+++ b/registry/components/caption-particle-burst/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-particle-burst",
+ "type": "hyperframes:component",
+ "title": "Particle Burst",
+ "description": "Keyword words trigger colored particle explosions",
+ "tags": ["captions", "caption-style", "particles", "burst", "effects"],
+ "files": [
+ {
+ "path": "caption-particle-burst.html",
+ "target": "compositions/components/caption-particle-burst.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-particle-burst/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-pill-karaoke/caption-pill-karaoke.html b/registry/components/caption-pill-karaoke/caption-pill-karaoke.html
new file mode 100644
index 000000000..664825959
--- /dev/null
+++ b/registry/components/caption-pill-karaoke/caption-pill-karaoke.html
@@ -0,0 +1,399 @@
+
+
+
+
+
+ Pill Karaoke
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-pill-karaoke/demo.html b/registry/components/caption-pill-karaoke/demo.html
new file mode 100644
index 000000000..664825959
--- /dev/null
+++ b/registry/components/caption-pill-karaoke/demo.html
@@ -0,0 +1,399 @@
+
+
+
+
+
+ Pill Karaoke
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-pill-karaoke/registry-item.json b/registry/components/caption-pill-karaoke/registry-item.json
new file mode 100644
index 000000000..e07be26c1
--- /dev/null
+++ b/registry/components/caption-pill-karaoke/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-pill-karaoke",
+ "type": "hyperframes:component",
+ "title": "Pill Karaoke",
+ "description": "Pill-shaped container with per-word karaoke color highlight",
+ "tags": ["captions", "caption-style", "karaoke", "pill"],
+ "files": [
+ {
+ "path": "caption-pill-karaoke.html",
+ "target": "compositions/components/caption-pill-karaoke.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-pill-karaoke/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-texture-lava/caption-texture-lava.html b/registry/components/caption-texture-lava/caption-texture-lava.html
new file mode 100644
index 000000000..1542ea6f9
--- /dev/null
+++ b/registry/components/caption-texture-lava/caption-texture-lava.html
@@ -0,0 +1,222 @@
+
+
+
+
+
+ Texture Lava
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-texture-lava/demo.html b/registry/components/caption-texture-lava/demo.html
new file mode 100644
index 000000000..1542ea6f9
--- /dev/null
+++ b/registry/components/caption-texture-lava/demo.html
@@ -0,0 +1,222 @@
+
+
+
+
+
+ Texture Lava
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-texture-lava/lava.png b/registry/components/caption-texture-lava/lava.png
new file mode 100644
index 000000000..3de2ac6c2
Binary files /dev/null and b/registry/components/caption-texture-lava/lava.png differ
diff --git a/registry/components/caption-texture-lava/registry-item.json b/registry/components/caption-texture-lava/registry-item.json
new file mode 100644
index 000000000..19daa51c3
--- /dev/null
+++ b/registry/components/caption-texture-lava/registry-item.json
@@ -0,0 +1,21 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-texture-lava",
+ "type": "hyperframes:component",
+ "title": "Texture Lava",
+ "description": "Flowing lava texture mask over large uppercase text",
+ "tags": ["captions", "caption-style", "texture", "lava", "mask"],
+ "files": [
+ {
+ "path": "caption-texture-lava.html",
+ "target": "compositions/components/caption-texture-lava.html",
+ "type": "hyperframes:snippet"
+ },
+ {
+ "path": "lava.png",
+ "target": "compositions/components/lava.png",
+ "type": "hyperframes:asset"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-texture-lava/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-typewriter/caption-typewriter.html b/registry/components/caption-typewriter/caption-typewriter.html
new file mode 100644
index 000000000..ee1e194b4
--- /dev/null
+++ b/registry/components/caption-typewriter/caption-typewriter.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+ Typewriter
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-typewriter/demo.html b/registry/components/caption-typewriter/demo.html
new file mode 100644
index 000000000..ee1e194b4
--- /dev/null
+++ b/registry/components/caption-typewriter/demo.html
@@ -0,0 +1,244 @@
+
+
+
+
+
+ Typewriter
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-typewriter/registry-item.json b/registry/components/caption-typewriter/registry-item.json
new file mode 100644
index 000000000..f5eac06b2
--- /dev/null
+++ b/registry/components/caption-typewriter/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-typewriter",
+ "type": "hyperframes:component",
+ "title": "Typewriter",
+ "description": "Green terminal character-by-character reveal with blinking cursor",
+ "tags": ["captions", "caption-style", "terminal", "typewriter", "hacker"],
+ "files": [
+ {
+ "path": "caption-typewriter.html",
+ "target": "compositions/components/caption-typewriter.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-typewriter/preview.mp4?v=1779051416"
+}
diff --git a/registry/components/caption-weight-shift/caption-weight-shift.html b/registry/components/caption-weight-shift/caption-weight-shift.html
new file mode 100644
index 000000000..b02ca8e52
--- /dev/null
+++ b/registry/components/caption-weight-shift/caption-weight-shift.html
@@ -0,0 +1,383 @@
+
+
+
+
+
+ Weight Shift
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-weight-shift/demo.html b/registry/components/caption-weight-shift/demo.html
new file mode 100644
index 000000000..b02ca8e52
--- /dev/null
+++ b/registry/components/caption-weight-shift/demo.html
@@ -0,0 +1,383 @@
+
+
+
+
+
+ Weight Shift
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/registry/components/caption-weight-shift/registry-item.json b/registry/components/caption-weight-shift/registry-item.json
new file mode 100644
index 000000000..a5cd5924b
--- /dev/null
+++ b/registry/components/caption-weight-shift/registry-item.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "caption-weight-shift",
+ "type": "hyperframes:component",
+ "title": "Weight Shift",
+ "description": "Elegant font-weight transition between caption lines",
+ "tags": ["captions", "caption-style", "minimal", "typography"],
+ "files": [
+ {
+ "path": "caption-weight-shift.html",
+ "target": "compositions/components/caption-weight-shift.html",
+ "type": "hyperframes:snippet"
+ }
+ ],
+ "preview": "https://static.heygen.ai/hyperframes-oss/registry/components/caption-weight-shift/preview.mp4?v=1779051416"
+}
diff --git a/registry/registry.json b/registry/registry.json
index 415976368..73b93dc5a 100644
--- a/registry/registry.json
+++ b/registry/registry.json
@@ -67,6 +67,66 @@
"name": "vignette",
"type": "hyperframes:component"
},
+ {
+ "name": "caption-pill-karaoke",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-neon-accent",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-weight-shift",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-emoji-pop",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-editorial-emphasis",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-parallax-layers",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-glitch-rgb",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-typewriter",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-matrix-decode",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-particle-burst",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-texture-lava",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-clip-wipe",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-kinetic-slam",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-gradient-fill",
+ "type": "hyperframes:component"
+ },
+ {
+ "name": "caption-neon-glow",
+ "type": "hyperframes:component"
+ },
{
"name": "instagram-follow",
"type": "hyperframes:block"
diff --git a/scripts/generate-catalog-pages.ts b/scripts/generate-catalog-pages.ts
index bc235a014..56d634a88 100644
--- a/scripts/generate-catalog-pages.ts
+++ b/scripts/generate-catalog-pages.ts
@@ -519,7 +519,8 @@ function main(): void {
// Items with the same first tag are grouped together. Items without tags
// go into an "Other" group. Groups are sorted with a priority order.
const GROUP_ORDER: Record = {
- "HTML-in-Canvas": 0,
+ Captions: 0,
+ "HTML-in-Canvas": 1,
"Social Overlays": 2,
"Shader Transitions": 3,
"CSS Transitions": 4,
@@ -534,7 +535,7 @@ function main(): void {
// Two-tag combos for specific grouping
if (tags.includes("transition") && tags.includes("shader")) return "Shader Transitions";
if (tags.includes("transition") && tags.includes("showcase")) return "CSS Transitions";
- // HTML-in-Canvas and Captions categories
+ if (tags.includes("captions")) return "Captions";
if (tags.includes("html-in-canvas")) return "HTML-in-Canvas";
// Single-tag mapping
if (tags.includes("social")) return "Social Overlays";