From 4f1e18e6de7ba05e3c4228bf9adf206c49f23122 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miguel=20=C3=81ngel?= Date: Sat, 8 Aug 2026 06:22:40 +0000 Subject: [PATCH] feat(registry): add the lt-neon-border lower third Two arcs of light travel the edge of a rounded panel and snap corner to corner, trailing a three-layer bloom. We ship eleven lower thirds and none of them has a travelling light. The traversal is closed form rather than accumulated, which is what makes it seekable: total = t/beat, corner = floor(total), and the arc head is the eased interpolation between two corner positions, each a pure function of an integer. Seeking to frame N and playing to frame N produce the same bytes, verified by hash across two separate browser launches with a control frame to rule out a static image. Arcs are SVG dash offsets rather than sampled polylines, which is exact along a path and removes the need for a minimum-arc clamp. The bloom widens the stroke before blurring, since blur alone reads as haze rather than emitted light. Nine variables, every number carrying explicit min, max and step. --- .../blocks/lt-neon-border/lt-neon-border.html | 390 ++++++++++++++++++ .../blocks/lt-neon-border/registry-item.json | 98 +++++ registry/registry.json | 4 + 3 files changed, 492 insertions(+) create mode 100644 registry/blocks/lt-neon-border/lt-neon-border.html create mode 100644 registry/blocks/lt-neon-border/registry-item.json diff --git a/registry/blocks/lt-neon-border/lt-neon-border.html b/registry/blocks/lt-neon-border/lt-neon-border.html new file mode 100644 index 0000000000..6e1f966b3d --- /dev/null +++ b/registry/blocks/lt-neon-border/lt-neon-border.html @@ -0,0 +1,390 @@ + + + + + + + + +
+
+
+ +
+ Dr. Maya Chen + Host · Neuroscientist +
+
+
+
+ + + + 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..1dbca11aa4 --- /dev/null +++ b/registry/blocks/lt-neon-border/registry-item.json @@ -0,0 +1,98 @@ +{ + "$schema": "https://hyperframes.heygen.com/schema/registry-item.json", + "name": "cosmic-orb", + "type": "hyperframes: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.", + "stability": "experimental", + "dimensions": { + "width": 1920, + "height": 1080 + }, + "duration": 10, + "tags": ["webgl", "shader", "background", "showcase", "3d"], + "files": [ + { + "path": "cosmic-orb.html", + "target": "compositions/cosmic-orb.html", + "type": "hyperframes:composition" + } + ], + "params": [ + { + "key": "hue", + "label": "Nebula hue", + "type": "number", + "default": "268", + "min": 0, + "max": 360, + "step": 1 + }, + { + "key": "accent", + "label": "Accent hue", + "type": "number", + "default": "196", + "min": 0, + "max": 360, + "step": 1 + }, + { + "key": "spin", + "label": "Spin rate (turns per second)", + "type": "number", + "default": "0.035", + "min": 0, + "max": 0.5, + "step": 0.005 + }, + { + "key": "stars", + "label": "Star density", + "type": "number", + "default": "1", + "min": 0, + "max": 2, + "step": 0.05 + }, + { + "key": "glow", + "label": "Glow intensity", + "type": "number", + "default": "1", + "min": 0, + "max": 2, + "step": 0.05 + }, + { + "key": "size", + "label": "Orb size (fraction of frame height)", + "type": "number", + "default": "0.86", + "min": 0.2, + "max": 1.2, + "step": 0.01 + }, + { + "key": "pulse", + "label": "Beat pulse (0-1, flat value when no envelope is set)", + "type": "number", + "default": "0", + "min": 0, + "max": 1, + "step": 0.01 + }, + { + "key": "pulseEnvelope", + "label": "Beat pulse envelope: comma-separated 0-1 samples spread evenly across the clip", + "type": "text", + "default": "" + }, + { + "key": "backdrop", + "label": "Backdrop", + "type": "color", + "default": "#04040a" + } + ] +} diff --git a/registry/registry.json b/registry/registry.json index bff47f2948..00be03768f 100644 --- a/registry/registry.json +++ b/registry/registry.json @@ -223,6 +223,10 @@ "name": "lt-mask-reveal", "type": "hyperframes:block" }, + { + "name": "lt-neon-border", + "type": "hyperframes:block" + }, { "name": "lt-side-rule", "type": "hyperframes:block"