Commit 63412bb
Hide the Adorn label tab until its position settles
The teal type-label tab is rendered inside the velcro-positioned overlay
that is its offset parent. For the first frame or two after the tab
appears on hover, that overlay hasn't finished being placed, so
positionAdornLabel computes the tab's `top`/`left` against a parent rect
that hasn't settled — painting the tab ~30px too high before
floating-ui's layout-shift observer re-fires and drops it to the correct
spot. (Confirmed via frame-by-frame capture: offsetHeight is constant, so
it isn't label-height settling; the written `top` itself changes over the
first ~2 frames as the offset parent moves into place.)
Keep the tab hidden and reveal it one frame after the most recent
position write — rescheduled on every update — so it only becomes visible
once it has stopped moving. The settle takes ~1–2 frames, so the reveal
delay is imperceptible.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent ce60b49 commit 63412bb
1 file changed
Lines changed: 30 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
67 | 89 | | |
68 | 90 | | |
69 | 91 | | |
| |||
151 | 173 | | |
152 | 174 | | |
153 | 175 | | |
| 176 | + | |
154 | 177 | | |
155 | 178 | | |
156 | | - | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
157 | 186 | | |
158 | 187 | | |
0 commit comments