mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-09-11 14:50:02 +00:00
fix(registry): animate mk card offsets with transforms, not top/left
mk-background and mk-clone-wall-transition tween the card's `top`/`left`. Layout properties snap to integer device pixels, so the move stutters under the seek-by-frame capture engine (lint: gsap_non_transform_motion). Both cards sit at top:0/left:0 in CSS, so the values carry straight over to x/y, and in clone-wall the later scale composes cleanly with the translate. Re-rendered both and diffed frames against the previous output — identical, as intended: this changes how the motion is computed, not how it looks. Adds scripts/lint-registry-items.mjs (bun run lint:registry-items), which mounts each item into a throwaway project and lints it. Registry items ship as `<name>.html`, so `hyperframes lint <dir>` fails with "No composition found" and these items had never actually been linted — which is how both errors reached main. Verified the script reproduces the original failure on the pre-fix source. Left as a local command rather than a CI gate for now; wiring it up needs two prior fixes, noted in the PR.
This commit is contained in:
@@ -182,13 +182,16 @@
|
||||
/* The wall sits in place from t=0, fully hidden beneath the
|
||||
full-bleed card — the card's shrink IS the wall's reveal. */
|
||||
|
||||
/* 0.2–0.95 outgoing frame shrinks to a rounded card on the wall */
|
||||
/* 0.2–0.95 outgoing frame shrinks to a rounded card on the wall.
|
||||
x/y rather than left/top — layout properties snap to integer device
|
||||
pixels under seek-by-frame capture. Base is top:0/left:0, so the
|
||||
values carry over unchanged, and the later scale composes cleanly. */
|
||||
if (CONFIG.card.enabled) {
|
||||
tl.to(
|
||||
card,
|
||||
{
|
||||
top: 330,
|
||||
left: 640,
|
||||
y: 330,
|
||||
x: 640,
|
||||
width: 640,
|
||||
height: 420,
|
||||
borderRadius: 40,
|
||||
|
||||
Reference in New Issue
Block a user