Files
hyperframes/registry/components/kinetic-type-swap
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
..

kinetic-type-swap

A held sentence keeps its prefix and suffix fixed while one masked word slot rolls vertically through comma-separated options. The slot pre-sizes to the widest option, so the sentence never reflows during a swap. The final word locks with a soft pulse and holds until the frame cuts.

4s authored, elastic HOLD, exit none by default.

Variables

id type default notes
prefix string Ship Fixed text before the rolling slot.
options string faster,smarter,together Comma-separated words, shown in order; the last one is the sentence's final state.
suffix string `` (empty) Fixed text after the rolling slot.
cues string `` (empty) Comma-separated seconds (from mount start) for each swap, e.g. 0.8,1.6. Sorted ascending; swaps beyond the list extrapolate at the list's own gap. Empty keeps the authored even spread.
accent enum green Slot color: green rides --brand, blue rides --accent, violet rides --accent-2.
exit enum none none holds until the cut; fade is the opacity release (the pre-Wave-J default ending); up adds a small rise to the fade.

Mount

<div
  class="clip"
  data-composition-id="kinetic-type-swap"
  data-composition-src="./kinetic-type-swap.html"
  data-variable-values='{"prefix":"Render","options":"anything,everywhere,tonight","cues":"1.0,2.2"}'
  data-start="0"
  data-duration="4"
  data-track-index="0"
></div>

Elastic root: no data-width/data-height; it fills whatever box the host clip gives it. Timeline registers under the literal kinetic-type-swap key.

Notes

  • Cue N fires the swap from option N to option N+1. Swaps clamp so the roll and settle finish before any exit; the roll shortens automatically when cues sit close together.
  • Deterministic and seek-safe; the hold pulse uses a finite odd repeat, never an open loop.