diff --git a/docs/catalog/blocks/cosmic-orb.mdx b/docs/catalog/blocks/cosmic-orb.mdx
new file mode 100644
index 0000000000..c90a985381
--- /dev/null
+++ b/docs/catalog/blocks/cosmic-orb.mdx
@@ -0,0 +1,57 @@
+---
+title: "Cosmic Orb"
+description: "An iridescent soap-bubble planet: a slowly spinning sphere of nebula bands, dust lanes and twinkling stars wrapped in a refracting glass limb with chromatic aberration at the edge."
+---
+
+
+
+## Install
+
+```bash Terminal
+npx hyperframes add cosmic-orb
+```
+
+That writes one file: `compositions/cosmic-orb.html`.
+
+## Add it to your video
+
+It runs for 10 seconds at 1920×1080. Paste this into your composition:
+
+```html index.html
+
+```
+
+Move it in time with `data-start`. Put it on a different timeline row with
+`data-track-index`. See [data attributes](/concepts/data-attributes) for the rest.
+
+## Change how it looks
+
+Set these CSS variables on the block:
+
+- `--hue` — Nebula hue. Defaults to `268`.
+- `--accent` — Accent hue. Defaults to `196`.
+- `--spin` — Spin rate (turns per second). Defaults to `0.035`.
+- `--stars` — Star density. Defaults to `1`.
+- `--glow` — Glow intensity. Defaults to `1`.
+- `--size` — Orb size (fraction of frame height). Defaults to `0.86`.
+- `--pulse` — Beat pulse (0-1, flat value when no envelope is set). Defaults to `0`.
+- `--pulseenvelope` — Beat pulse envelope: comma-separated 0-1 samples spread evenly across the clip. Defaults to ``.
+- `--backdrop` — Backdrop. Defaults to `#04040a`.
+
+{/* hf:generated-footer */}
+
+Tagged `webgl` `shader` `background` `showcase` `3d`.
+
+## Related topics
+
+- [Browse the complete Catalog](/catalog)
+- [Add assets and Catalog items in Studio](/studio/assets-and-blocks)
+- [Build a richer composition](/go-further)
diff --git a/docs/catalog/blocks/gallery-tunnel.mdx b/docs/catalog/blocks/gallery-tunnel.mdx
new file mode 100644
index 0000000000..f0c1c46735
--- /dev/null
+++ b/docs/catalog/blocks/gallery-tunnel.mdx
@@ -0,0 +1,58 @@
+---
+title: "Gallery Tunnel"
+description: "An infinite corridor of panels: a square tunnel receding to a vanishing point, its floor, ceiling and walls tiled with saturated colour slabs and caller-supplied images that swell toward camera and exit past you, the far end dissolving into fog."
+---
+
+
+
+## Install
+
+```bash Terminal
+npx hyperframes add gallery-tunnel
+```
+
+That writes one file: `compositions/gallery-tunnel.html`.
+
+## Add it to your video
+
+It runs for 12 seconds at 1920×1080. Paste this into your composition:
+
+```html index.html
+
+```
+
+Move it in time with `data-start`. Put it on a different timeline row with
+`data-track-index`. See [data attributes](/concepts/data-attributes) for the rest.
+
+## Change how it looks
+
+Set these CSS variables on the block:
+
+- `--images` — Image slots: comma-separated paths, tiled into the panels (e.g. assets/shot-1.png,assets/shot-2.png). Defaults to ``.
+- `--imagemix` — Image share of filled slots (0 = all colour, 1 = all images). Defaults to `0.5`.
+- `--speed` — Flight speed (segments per second). Defaults to `3`.
+- `--palette` — Slab palette: comma-separated hex colours. Defaults to `#FF6A00,#AB54F7,#EA3737,#0072E3,#00AA3C,#FFB200`.
+- `--grid` — Grid density: slots per wall face per axis (2 = 4 per face, 16 per segment). Defaults to `2`.
+- `--fill` — Slot fill rate. Defaults to `0.5`.
+- `--fog` — Fog distance in segments: depth at which the corridor reaches pure backdrop. Defaults to `14.25`.
+- `--edgecolor` — Edge line colour. Defaults to `#B0B0B0`.
+- `--edgeopacity` — Edge line opacity. Defaults to `0.5`.
+- `--backdrop` — Backdrop and fog colour. Defaults to `#000000`.
+
+{/* hf:generated-footer */}
+
+Tagged `webgl` `3d` `background` `showcase` `depth` `loop`.
+
+## Related topics
+
+- [Browse the complete Catalog](/catalog)
+- [Add assets and Catalog items in Studio](/studio/assets-and-blocks)
+- [Build a richer composition](/go-further)
diff --git a/docs/catalog/blocks/halftone-field.mdx b/docs/catalog/blocks/halftone-field.mdx
new file mode 100644
index 0000000000..c7fb58309b
--- /dev/null
+++ b/docs/catalog/blocks/halftone-field.mdx
@@ -0,0 +1,59 @@
+---
+title: "Halftone Field"
+description: "A full-bleed halftone light field: a grid of dots whose size and colour track a slow flowing simplex-noise field, so broad bands of light sweep across a mostly-black frame like a giant LED wall showing a plasma. Built to run under type."
+---
+
+
+
+## Install
+
+```bash Terminal
+npx hyperframes add halftone-field
+```
+
+That writes one file: `compositions/halftone-field.html`.
+
+## Add it to your video
+
+It runs for 10 seconds at 1920×1080. Paste this into your composition:
+
+```html index.html
+
+```
+
+Move it in time with `data-start`. Put it on a different timeline row with
+`data-track-index`. See [data attributes](/concepts/data-attributes) for the rest.
+
+## Change how it looks
+
+Set these CSS variables on the block:
+
+- `--frequency` — Field frequency (1 = broad swells, 10 = fine mottle). Defaults to `2`.
+- `--speed` — Flow speed (0 freezes the field). Defaults to `5`.
+- `--cellsize` — Cell size (dot pitch, 1 = 6px, 100 = 60px). Defaults to `54`.
+- `--gamma` — Gamma: midtone crush, the whole look. Low values flatten it to an even grey dot field. Defaults to `12`.
+- `--palettebias` — Palette bias: floor under every dot's size and palette position. 0 lets the darks go fully black. Defaults to `2`.
+- `--palette1` — Palette stop 1 (lows). Defaults to `#00AAFF`.
+- `--palette2` — Palette stop 2. Defaults to `#C2FF67`.
+- `--palette3` — Palette stop 3. Defaults to `#6600FF`.
+- `--palette4` — Palette stop 4 (crests). Defaults to `#000000`.
+- `--background` — Background. Defaults to `#000000`.
+- `--quantize` — Quantise to 30fps for a stepped LED-wall look. Defaults to `false`. Options: `false`, `true`.
+
+{/* hf:generated-footer */}
+
+Tagged `webgl` `shader` `background` `texture` `halftone`.
+
+## Related topics
+
+- [Browse the complete Catalog](/catalog)
+- [Add assets and Catalog items in Studio](/studio/assets-and-blocks)
+- [Build a richer composition](/go-further)
diff --git a/docs/catalog/blocks/lt-neon-border.mdx b/docs/catalog/blocks/lt-neon-border.mdx
new file mode 100644
index 0000000000..ca70f88612
--- /dev/null
+++ b/docs/catalog/blocks/lt-neon-border.mdx
@@ -0,0 +1,57 @@
+---
+title: "Neon Border"
+description: "Two arcs of light travel the edge of a rounded panel and snap corner to corner, trailing a soft three-layer bloom. A lower third for a name and role."
+---
+
+
+
+## Install
+
+```bash Terminal
+npx hyperframes add lt-neon-border
+```
+
+That writes one file: `compositions/lt-neon-border.html`.
+
+## Add it to your video
+
+It runs for 4.8 seconds at 1920×1080. Paste this into your composition:
+
+```html index.html
+
+```
+
+Move it in time with `data-start`. Put it on a different timeline row with
+`data-track-index`. See [data attributes](/concepts/data-attributes) for the rest.
+
+## Change how it looks
+
+Set these CSS variables on the block:
+
+- `undefined` — Name. Defaults to `Dr. Maya Chen`.
+- `undefined` — Role. Defaults to `Host · Neuroscientist`.
+- `undefined` — Accent. Defaults to `#cc9149`.
+- `undefined` — Movement. Defaults to `step`. Options: `step`, `glide`.
+- `undefined` — Speed. Defaults to `1.6`.
+- `undefined` — Corner radius. Defaults to `26`.
+- `undefined` — Thickness. Defaults to `5`.
+- `undefined` — Arc length. Defaults to `22`.
+- `undefined` — Glow. Defaults to `1`.
+
+{/* hf:generated-footer */}
+
+Tagged `lower-third` `glow` `loop` `video-primitive`.
+
+## Related topics
+
+- [Browse the complete Catalog](/catalog)
+- [Add assets and Catalog items in Studio](/studio/assets-and-blocks)
+- [Build a richer composition](/go-further)
diff --git a/docs/catalog/blocks/weight-wave.mdx b/docs/catalog/blocks/weight-wave.mdx
new file mode 100644
index 0000000000..8a1a2fd6ae
--- /dev/null
+++ b/docs/catalog/blocks/weight-wave.mdx
@@ -0,0 +1,43 @@
+---
+title: "Weight Wave"
+description: "A crest of thickness travels along a headline: each character swells from light to black and leans forward as the wave passes, driven by the wght and slnt variable-font axes rather than by transforms."
+---
+
+
+
+## Install
+
+```bash Terminal
+npx hyperframes add weight-wave
+```
+
+That writes `compositions/weight-wave.html`, plus 2 supporting files under `compositions/assets/fonts/`.
+
+## Add it to your video
+
+It runs for 6 seconds at 1920×1080. Paste this into your composition:
+
+```html index.html
+
+```
+
+Move it in time with `data-start`. Put it on a different timeline row with
+`data-track-index`. See [data attributes](/concepts/data-attributes) for the rest.
+
+{/* hf:generated-footer */}
+
+Tagged `typography` `kinetic-type` `title` `variable-font` `text`.
+
+## Related topics
+
+- [Browse the complete Catalog](/catalog)
+- [Add assets and Catalog items in Studio](/studio/assets-and-blocks)
+- [Build a richer composition](/go-further)
diff --git a/docs/docs.json b/docs/docs.json
index c51c359780..9fbf2621ee 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -328,6 +328,7 @@
"catalog/blocks/lt-dark-card",
"catalog/blocks/lt-kicker-name",
"catalog/blocks/lt-mask-reveal",
+ "catalog/blocks/lt-neon-border",
"catalog/blocks/lt-side-rule",
"catalog/blocks/lt-soft-pill",
"catalog/blocks/lt-stack-bars",
@@ -405,6 +406,8 @@
"catalog/blocks/code-snippet-solarized-light",
"catalog/blocks/code-snippet-visual-studio-dark",
"catalog/blocks/code-snippet-visual-studio-light",
+ "catalog/blocks/cosmic-orb",
+ "catalog/blocks/gallery-tunnel",
"catalog/blocks/north-korea-locked-down",
"catalog/blocks/nyc-paris-flight",
"catalog/blocks/ui-3d-reveal",
@@ -456,6 +459,7 @@
"catalog/blocks/camcorder-hud",
"catalog/blocks/flowchart",
"catalog/blocks/flowchart-vertical",
+ "catalog/blocks/halftone-field",
"catalog/blocks/hw-frame",
"catalog/blocks/hw-path-text",
"catalog/blocks/hw-pipeline",
@@ -466,6 +470,7 @@
"catalog/blocks/mk-placeholder-grid",
"catalog/blocks/mk-progress-stat",
"catalog/blocks/mk-specs-list",
+ "catalog/blocks/weight-wave",
"catalog/blocks/yt-lcd-background",
"catalog/blocks/yt-logo-intro",
"catalog/blocks/yt-prism-title",
diff --git a/docs/public/catalog-index.json b/docs/public/catalog-index.json
index 8255b52d5e..04ff66360d 100644
--- a/docs/public/catalog-index.json
+++ b/docs/public/catalog-index.json
@@ -811,6 +811,21 @@
"href": "/catalog/blocks/code-typing",
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/code-typing.png"
},
+ {
+ "name": "cosmic-orb",
+ "type": "block",
+ "title": "Cosmic Orb",
+ "description": "An iridescent soap-bubble planet: a slowly spinning sphere of nebula bands, dust lanes and twinkling stars wrapped in a refracting glass limb with chromatic aberration at the edge.",
+ "tags": [
+ "webgl",
+ "shader",
+ "background",
+ "showcase",
+ "3d"
+ ],
+ "href": "/catalog/blocks/cosmic-orb",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/cosmic-orb.png"
+ },
{
"name": "cross-warp-morph",
"type": "block",
@@ -921,6 +936,22 @@
"href": "/catalog/blocks/freeze-frame-dressing",
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/freeze-frame-dressing.png"
},
+ {
+ "name": "gallery-tunnel",
+ "type": "block",
+ "title": "Gallery Tunnel",
+ "description": "An infinite corridor of panels: a square tunnel receding to a vanishing point, its floor, ceiling and walls tiled with saturated colour slabs and caller-supplied images that swell toward camera and exit past you, the far end dissolving into fog.",
+ "tags": [
+ "webgl",
+ "3d",
+ "background",
+ "showcase",
+ "depth",
+ "loop"
+ ],
+ "href": "/catalog/blocks/gallery-tunnel",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/gallery-tunnel.png"
+ },
{
"name": "glitch",
"type": "block",
@@ -973,6 +1004,21 @@
"href": "/catalog/components/grid-pixelate-wipe",
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/components/grid-pixelate-wipe.png"
},
+ {
+ "name": "halftone-field",
+ "type": "block",
+ "title": "Halftone Field",
+ "description": "A full-bleed halftone light field: a grid of dots whose size and colour track a slow flowing simplex-noise field, so broad bands of light sweep across a mostly-black frame like a giant LED wall showing a plasma. Built to run under type.",
+ "tags": [
+ "webgl",
+ "shader",
+ "background",
+ "texture",
+ "halftone"
+ ],
+ "href": "/catalog/blocks/halftone-field",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/halftone-field.png"
+ },
{
"name": "hw-arrow",
"type": "component",
@@ -1347,6 +1393,20 @@
"href": "/catalog/blocks/lt-mask-reveal",
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/lt-mask-reveal.png"
},
+ {
+ "name": "lt-neon-border",
+ "type": "block",
+ "title": "Neon Border",
+ "description": "Two arcs of light travel the edge of a rounded panel and snap corner to corner, trailing a soft three-layer bloom. A lower third for a name and role.",
+ "tags": [
+ "lower-third",
+ "glow",
+ "loop",
+ "video-primitive"
+ ],
+ "href": "/catalog/blocks/lt-neon-border",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/lt-neon-border.png"
+ },
{
"name": "lt-side-rule",
"type": "block",
@@ -2164,6 +2224,21 @@
"href": "/catalog/blocks/vpn-youtube-spot",
"preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/vpn-youtube-spot.png"
},
+ {
+ "name": "weight-wave",
+ "type": "block",
+ "title": "Weight Wave",
+ "description": "A crest of thickness travels along a headline: each character swells from light to black and leans forward as the wave passes, driven by the wght and slnt variable-font axes rather than by transforms.",
+ "tags": [
+ "typography",
+ "kinetic-type",
+ "title",
+ "variable-font",
+ "text"
+ ],
+ "href": "/catalog/blocks/weight-wave",
+ "preview": "https://static.heygen.ai/hyperframes-oss/docs/images/catalog/blocks/weight-wave.png"
+ },
{
"name": "whip-pan",
"type": "block",
diff --git a/registry/blocks/cosmic-orb/cosmic-orb.html b/registry/blocks/cosmic-orb/cosmic-orb.html
new file mode 100644
index 0000000000..97cff15709
--- /dev/null
+++ b/registry/blocks/cosmic-orb/cosmic-orb.html
@@ -0,0 +1,431 @@
+
+
+
+
+
+ Cosmic Orb
+
+
+
+
+
+
+
+
+
diff --git a/registry/blocks/lt-neon-border/registry-item.json b/registry/blocks/lt-neon-border/registry-item.json
new file mode 100644
index 0000000000..26251a4be9
--- /dev/null
+++ b/registry/blocks/lt-neon-border/registry-item.json
@@ -0,0 +1,106 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "lt-neon-border",
+ "type": "hyperframes:block",
+ "title": "Neon Border",
+ "description": "Two arcs of light travel the edge of a rounded panel and snap corner to corner, trailing a soft three-layer bloom. A lower third for a name and role.",
+ "stability": "experimental",
+ "dimensions": {
+ "width": 1920,
+ "height": 1080
+ },
+ "duration": 4.8,
+ "tags": ["lower-third", "glow", "loop", "video-primitive"],
+ "files": [
+ {
+ "path": "lt-neon-border.html",
+ "type": "hyperframes:block"
+ }
+ ],
+ "params": [
+ {
+ "id": "name",
+ "type": "string",
+ "label": "Name",
+ "default": "Dr. Maya Chen"
+ },
+ {
+ "id": "role",
+ "type": "string",
+ "label": "Role",
+ "default": "Host \u00b7 Neuroscientist"
+ },
+ {
+ "id": "accent",
+ "type": "color",
+ "label": "Accent",
+ "default": "#cc9149"
+ },
+ {
+ "id": "movement",
+ "type": "enum",
+ "label": "Movement",
+ "default": "step",
+ "options": [
+ {
+ "value": "step",
+ "label": "Step (snap at corners)"
+ },
+ {
+ "value": "glide",
+ "label": "Glide (smooth)"
+ }
+ ]
+ },
+ {
+ "id": "speed",
+ "type": "number",
+ "label": "Speed",
+ "default": 1.6,
+ "min": 0.2,
+ "max": 6,
+ "step": 0.1,
+ "unit": "corners/s"
+ },
+ {
+ "id": "cornerRadius",
+ "type": "number",
+ "label": "Corner radius",
+ "default": 26,
+ "min": 0,
+ "max": 90,
+ "step": 1,
+ "unit": "px"
+ },
+ {
+ "id": "thickness",
+ "type": "number",
+ "label": "Thickness",
+ "default": 5,
+ "min": 1,
+ "max": 16,
+ "step": 1,
+ "unit": "px"
+ },
+ {
+ "id": "arcLength",
+ "type": "number",
+ "label": "Arc length",
+ "default": 22,
+ "min": 5,
+ "max": 100,
+ "step": 1,
+ "unit": "%"
+ },
+ {
+ "id": "glow",
+ "type": "number",
+ "label": "Glow",
+ "default": 1,
+ "min": 0,
+ "max": 2,
+ "step": 0.05,
+ "unit": "x"
+ }
+ ]
+}
diff --git a/registry/blocks/weight-wave/assets/fonts/OFL.txt b/registry/blocks/weight-wave/assets/fonts/OFL.txt
new file mode 100644
index 0000000000..d4361a99fe
--- /dev/null
+++ b/registry/blocks/weight-wave/assets/fonts/OFL.txt
@@ -0,0 +1,93 @@
+Copyright 2020 The Recursive Project Authors (https://github.com/arrowtype/recursive)
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/registry/blocks/weight-wave/assets/fonts/Recursive-wght-slnt-latin.woff2 b/registry/blocks/weight-wave/assets/fonts/Recursive-wght-slnt-latin.woff2
new file mode 100644
index 0000000000..f7205e9b80
Binary files /dev/null and b/registry/blocks/weight-wave/assets/fonts/Recursive-wght-slnt-latin.woff2 differ
diff --git a/registry/blocks/weight-wave/registry-item.json b/registry/blocks/weight-wave/registry-item.json
new file mode 100644
index 0000000000..dafd1cadf0
--- /dev/null
+++ b/registry/blocks/weight-wave/registry-item.json
@@ -0,0 +1,116 @@
+{
+ "$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
+ "name": "weight-wave",
+ "type": "hyperframes:block",
+ "title": "Weight Wave",
+ "description": "A crest of thickness travels along a headline: each character swells from light to black and leans forward as the wave passes, driven by the wght and slnt variable-font axes rather than by transforms.",
+ "dimensions": {
+ "width": 1920,
+ "height": 1080
+ },
+ "duration": 6,
+ "tags": ["typography", "kinetic-type", "title", "variable-font", "text"],
+ "license": "OFL-1.1",
+ "variables": [
+ {
+ "id": "text",
+ "type": "string",
+ "label": "Headline",
+ "default": "PRESSURE MOVES THROUGH TYPE",
+ "maxLength": 64
+ },
+ {
+ "id": "color",
+ "type": "color",
+ "label": "Text color",
+ "default": "#f5f5f7"
+ },
+ {
+ "id": "background",
+ "type": "color",
+ "label": "Background",
+ "default": "#0b0b0d"
+ },
+ {
+ "id": "weightFrom",
+ "type": "number",
+ "label": "Weight (rest)",
+ "default": 400,
+ "min": 300,
+ "max": 1000,
+ "step": 10
+ },
+ {
+ "id": "weightTo",
+ "type": "number",
+ "label": "Weight (crest)",
+ "default": 1000,
+ "min": 300,
+ "max": 1000,
+ "step": 10
+ },
+ {
+ "id": "crestWidth",
+ "type": "number",
+ "label": "Crest width",
+ "default": 4,
+ "min": 1,
+ "max": 24,
+ "step": 0.5,
+ "unit": "chars"
+ },
+ {
+ "id": "sweepSpeed",
+ "type": "number",
+ "label": "Sweep speed",
+ "default": 0.5,
+ "min": 0.05,
+ "max": 3,
+ "step": 0.05,
+ "unit": "passes/s"
+ },
+ {
+ "id": "slant",
+ "type": "number",
+ "label": "Slant at crest",
+ "default": -12,
+ "min": -15,
+ "max": 0,
+ "step": 0.5,
+ "unit": "deg"
+ },
+ {
+ "id": "direction",
+ "type": "enum",
+ "label": "Direction",
+ "default": "ltr",
+ "options": [
+ {
+ "value": "ltr",
+ "label": "Left to right"
+ },
+ {
+ "value": "rtl",
+ "label": "Right to left"
+ }
+ ]
+ }
+ ],
+ "files": [
+ {
+ "path": "weight-wave.html",
+ "target": "compositions/weight-wave.html",
+ "type": "hyperframes:composition"
+ },
+ {
+ "path": "assets/fonts/Recursive-wght-slnt-latin.woff2",
+ "target": "compositions/assets/fonts/Recursive-wght-slnt-latin.woff2",
+ "type": "hyperframes:asset"
+ },
+ {
+ "path": "assets/fonts/OFL.txt",
+ "target": "compositions/assets/fonts/OFL.txt",
+ "type": "hyperframes:asset"
+ }
+ ]
+}
diff --git a/registry/blocks/weight-wave/weight-wave.html b/registry/blocks/weight-wave/weight-wave.html
new file mode 100644
index 0000000000..8aef4b356f
--- /dev/null
+++ b/registry/blocks/weight-wave/weight-wave.html
@@ -0,0 +1,299 @@
+
+
+
+
+
+ Weight Wave
+
+
+
+
+
+