Archilyzer · Source

archilyzer

Archilyzer
git clone https://archilyzer.pages.dev/source/archilyzer.git
Log | Files | Refs | README | LICENSE

commit 03061ce11308b0a1c045077d7faaeee190394165
parent bb90538334cf3007912313fc490859bdfc45b6e2
Author: I Mean I'm Just Saying <imeanimjustsaying@kiwifarms.st>
Date:   Thu,  1 Oct 2026 17:06:14 -0400

report-to-video: the feed opens the room before a post comes in over it -- the push is front-loaded (0.4 s) and the entrance waits 0.22 s, so a new card never overlaps the ones it moves

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

Diffstat:
Mumtool/report-to-video/chrome-feed.mjs | 11++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/umtool/report-to-video/chrome-feed.mjs b/umtool/report-to-video/chrome-feed.mjs @@ -51,13 +51,14 @@ const r4 = (v) => Math.round(v * 10000) / 10000; * The feed's motion, in seconds (and the gap between cards, in px). A new * card starts entering `lag` after its `in`, from the column's outer edge, * over `enter`; the cards below are pushed down over `push` from the `in` - * itself, so the room opens as the card arrives. Its highlight flares `glowAt` + * itself, front-loaded, so the room is open (≈ 90 %) before the card comes + * in over it -- the two never overlap on screen. Its highlight flares `glowAt` * into the entrance over `glowUp`, settles to `newest` over `glowDown`, and * goes out over `calm` when the next post arrives. A card pushed past the * column's bottom fades over `leave`. The empty state fades over `emptyOut`. */ export const FEED_MOTION = Object.freeze({ - gap: 16, push: 0.55, lag: 0.12, enter: 0.6, glowAt: 0.2, glowUp: 0.2, glowDown: 1.2, newest: 0.55, calm: 0.8, + gap: 16, push: 0.4, lag: 0.22, enter: 0.6, glowAt: 0.2, glowUp: 0.2, glowDown: 1.2, newest: 0.55, calm: 0.8, leave: 0.45, emptyOut: 0.35, }); @@ -112,7 +113,7 @@ export function feedLayout(render) { */ export function feedCues({ posts, heights, column, visibility = [], startsHidden = false, slideX = 600, enterX = 600, - gap = 16, push = 0.55, lag = 0.12, enter = 0.6, glowAt = 0.2, glowUp = 0.2, glowDown = 1.2, newest = 0.55, + gap = 16, push = 0.4, lag = 0.22, enter = 0.6, glowAt = 0.2, glowUp = 0.2, glowDown = 1.2, newest = 0.55, calm = 0.8, leave = 0.45, emptyOut = 0.35, }) { const R = (v) => Math.round(v * 10000) / 10000; @@ -141,10 +142,10 @@ export function feedCues({ const j = visible[v]; y[j] += room; if (y[j] + (heights[j] || 0) <= column) { - add(`c${j}`, t, push, { y: y[j] }, "power2.inOut", `push for ${id}`); + add(`c${j}`, t, push, { y: y[j] }, "power3.out", `push for ${id}`); continue; } - add(`c${j}`, t, Math.max(push, leave), { y: y[j], autoAlpha: 0 }, "power2.inOut", `out for ${id}`); + add(`c${j}`, t, Math.max(push, leave), { y: y[j], autoAlpha: 0 }, "power2.out", `out for ${id}`); gone[j] = t; visible.splice(v, 1); }