mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-01 19:42:03 +00:00
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.
36 lines
3.1 KiB
Markdown
36 lines
3.1 KiB
Markdown
# scroll-feed
|
|
|
|
A self-scrolling column of skeleton post cards with two low-opacity trail copies suggesting motion blur. The default register is a doomscroll: distinct thumb flicks (fast start, power3 decay to a settle) with a read pause between them, one flick per card. Card dimensions vary through deterministic index math only. By default the column covers exactly one card cycle over the mount, so the first and final frames are loop-compatible.
|
|
|
|
4s authored; HOLD owns the whole scroll and is the only elastic phase.
|
|
|
|
## Variables
|
|
|
|
| id | type | default | notes |
|
|
| ------------ | ------ | ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
| `speed` | enum | `doom` | `doom` or `frantic`: card pitch, so frantic covers more distance in the same time. |
|
|
| `card_count` | number | `6` | Cards per repeated cycle (4 to 10). |
|
|
| `cues` | string | `` (empty) | Comma-separated seconds (from mount start); each cue advances the feed by exactly one card pitch (stepped doom-scroll rhythm). Sorted ascending, capped at two full cycles of steps. Empty synthesizes evenly spaced flicks, one per card, that still cover exactly one full cycle. |
|
|
| `exit` | enum | `none` | `none` scrolls until the cut; `fade`/`up` depart over a reserved tail (min(0.4s, 15% of D)). |
|
|
|
|
## Mount
|
|
|
|
```html
|
|
<div
|
|
class="clip"
|
|
data-composition-id="scroll-feed"
|
|
data-composition-src="./scroll-feed.html"
|
|
data-variable-values='{"speed":"frantic","card_count":8,"cues":"0.5,1.0,1.5,2.0"}'
|
|
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 `scroll-feed` key.
|
|
|
|
## Notes
|
|
|
|
- The loop guarantee (first frame == final frame position) only holds with empty `cues` and `exit:"none"`; either option trades the loop for its rhythm or departure.
|
|
- Deterministic: no clocks, no randomness, no CSS animations; card variety is pure index arithmetic.
|