# PR #3938 — arm E vs arm D2 vs main (arm A) Surface: route `/packages/cli/assets/templates/pages/detail-page`, template viewer, 1440×1000 @dpr 3, theme neutral, `light dark`, LTR. Container padding 16px (`--container-padding-inline-*: 16px`), stop padding 12px (`--spacing-3`). Arm E commit: `0584db591b2` (branch `vis-3938-e`, bare repo `{review-root}/astryx.git`), built on arm D2 `b747a345b03`, which sits on main `58f95421362`. Sign convention: measured against the container's **content inset**. Negative = outside it (into the container's padding), positive = inside it. --- ## 1. The five measurements | # | Measurement | A (main) | D2 | E | |---|---|---|---|---| | 1 | first tab **label** vs content inset | **0.00** | **0.00** | **0.00** | | 2 | first tab **box / hover pill** vs content inset | −12.00 | −16.00 | **−12.00** | | 3 | last stop (`TabMenu`) end padding / box width | 12px / 78.41 | 12px / 78.41 | 12px / 78.41 | | 4 | ghost panel-toggle centre / tab-row centre (from header top) | 133.98 / 133.48 (Δ0.50) | 133.98 / 133.48 (Δ0.50) | 133.98 / 133.48 (Δ0.50) | | 5 | `hasDivider` underline span vs container content width | n/a (no bleed) | 1168 / 1136 | 1168 / 1136 | Supporting numbers on the same frames: | | A | D2 | E | |---|---|---|---| | strip box vs container **box** edge (0 = fully bled) | 4 | 0 | 0 | | strip element inline padding | 0 / 0 | 0 / 0 | **4 / 4** | | first stop padding-inline-start | 12 | **16** | 12 | | first stop width | 70.70 | **74.70** | 70.70 | | header height | 152.98 | 152.98 | 152.98 | | strip bottom → header bottom | 1 | 1 | 1 | **Metric 3, expanded.** On this template the strip is `layout="hug"`, so the `TabMenu` sits nowhere near the end edge and no arm moves it. But the reason it does not move in D2 is not that it does not need to — it is that **D2's `TabMenu` `:last-child` rule never matches**. `TabMenu` returns a fragment: `