From 561c68036acbdbcf50f0706113ab1a43f35a3218 Mon Sep 17 00:00:00 2001 From: Luke Melia Date: Thu, 4 Jun 2026 23:12:55 -0400 Subject: [PATCH 1/5] Set the velcro overlay position:absolute from CSS to stop the first-frame jump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hover overlay is positioned by velcro (floating-ui), but it only became `position: absolute` inside the offset middleware — which runs *after* floating-ui has already measured the rects on the first computePosition. So the first frame was measured against the wrong containing block and the whole overlay (the teal type-label tab, the select chip, the menu, the outline) painted ~60px off, then snapped into place one frame later. floating-ui requires the floating element to already be absolutely positioned when it first measures. Declare `position: absolute` in the overlay's CSS so it is in effect before velcro's first measurement; the middleware still sets it too, harmlessly. Confirmed via frame-by-frame capture that the overlay's own top/left was the thing jumping (526->466 between frame 0 and 1), so fixing it here fixes every piece of chrome that rides the overlay. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../components/operator-mode/operator-mode-overlays.gts | 8 ++++++++ packages/host/app/components/operator-mode/overlays.gts | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/packages/host/app/components/operator-mode/operator-mode-overlays.gts b/packages/host/app/components/operator-mode/operator-mode-overlays.gts index bedebfbbf98..65dafcf484e 100644 --- a/packages/host/app/components/operator-mode/operator-mode-overlays.gts +++ b/packages/host/app/components/operator-mode/operator-mode-overlays.gts @@ -218,6 +218,14 @@ export default class OperatorModeOverlays extends Overlays {