Files
hyperframes/registry/components/modal-morph/registry-item.json
T
Miguel Ángel 9734578e60 feat(registry): bring back the video-primitive moves (#3169)
Restores the 208 catalog items reverted after their previews 404'd in
production, this time on the payload mechanism rather than the .html files
that caused the outage.

The generator no longer writes a preview document to docs/public. That writer,
and the machinery under it, existed only to produce files the docs host
discards, so it is gone rather than bypassed. Items now embed the composition
itself via a payload, which is what the previous change already does for the
items that were already in the catalog.

The variables explorer is parked, not restored: it drove its preview through
the same unpublished .html path, so it would have shown an empty frame. Items
that declare variables get the live player plus the static variables table, and
reconnecting the explorer to payloads is a follow-up.
2026-08-10 18:46:03 -04:00

85 lines
2.6 KiB
JSON

{
"$schema": "https://hyperframes.heygen.com/schema/registry-item.json",
"name": "modal-morph",
"type": "hyperframes:component",
"title": "Modal Morph",
"description": "A small card expands into a full panel, shared-element style: both layouts measured once at mount, the container morphs by transform only (never width/height tweens) while keyed children counter-scale and re-flow onto their own measured targets as pure functions of time.",
"tags": [
"motion-primitive",
"structure",
"flip",
"shared-element",
"modal",
"deterministic",
"experiment"
],
"jobs": ["demonstrate"],
"family": "structure",
"profile": "shared-element",
"evidence": "Wave M9 experiment: the FLIP shared-element grow (Codrops recipes, wild-scout)",
"syncPoints": [{ "id": "expand", "phase": "in", "offset": 1.2 }],
"files": [
{
"path": "modal-morph.html",
"target": "compositions/components/modal-morph.html",
"type": "hyperframes:snippet"
}
],
"variables": [
{
"id": "from_scale",
"type": "number",
"role": "style",
"label": "From scale",
"description": "Multiplies the authored card footprint, clamped 0.5 to 1.5.",
"default": 1
},
{
"id": "expand_at",
"type": "number",
"role": "timing",
"label": "Expand at",
"description": "Seconds after mount when the card grows into the panel.",
"default": 1.2
},
{
"id": "register",
"type": "enum",
"role": "timing",
"label": "Register",
"description": "Morph feel. Snappy is faster with a settle capped at 1.02 of the target rect.",
"default": "calm",
"options": [
{ "value": "calm", "label": "Calm" },
{ "value": "snappy", "label": "Snappy" }
]
},
{
"id": "accent",
"type": "enum",
"role": "style",
"label": "Accent",
"description": "Accent color: green rides --brand, blue rides --accent, violet rides --accent-2.",
"default": "green",
"options": [
{ "value": "green", "label": "Green" },
{ "value": "blue", "label": "Blue" },
{ "value": "violet", "label": "Violet" }
]
},
{
"id": "exit",
"type": "enum",
"role": "timing",
"label": "Exit",
"description": "Optional departure. Default none: the settled panel holds until the frame cuts.",
"default": "none",
"options": [
{ "value": "none", "label": "None" },
{ "value": "fade", "label": "Fade" },
{ "value": "up", "label": "Up" }
]
}
]
}