Context
PR #147 set --zoom: 1 (removed the 1.2× page zoom, which was causing phantom scrollbars via sub-pixel rounding). That neutralizes the whole html{zoom} bridging layer — every piece now operates at divisor 1 (no-op) — but the code is still present. This issue tracks removing the dead scaffolding.
To remove (all no-ops at scale 1)
html { zoom: var(--zoom) } + the --zoom / --vp-zoom custom props (src/styles.css)
- The
@supports not (zoom: 1) fallback block (redundant once --zoom is a literal 1)
app.applyViewportZoom / viewportZoom measurement + --vp-zoom publish (src/ui/app.js, src/core/zoom-support.js) and its tests
calc(... / var(--vp-zoom)) fullscreen-panel sizing → plain vw/vh (.graph-overlay-panel, body.detached-tab)
zoomScale / fixedAnchor zoom arg in menu/popover anchoring (src/ui/app.js, src/ui/file-menu.js, src/dom.js)
unzoomChartEvent / zoomScale(canvas) Chart.js hover correction (src/core/chart-data.js)
- splitter
scale: () => zoomScale(...) division (src/ui/app.js)
Why deferred (not done in #147)
Roadmap #68 gated "full html{zoom} removal" on GraphSurface (#66) because the graph panels + pointer math were the last zoom-coupled surfaces. #147 removed the scale safely (dormant-not-deleted); this teardown should verify graph-panel sizing, menu anchoring, Chart hover, and splitter drag at native scale on Chrome + real Safari (Playwright WebKit ≠ real Safari for zoom×rect — verify manually).
Acceptance
- All the above removed; no
--zoom/--vp-zoom/zoomScale/unzoomChartEvent references remain.
- Coverage gate stays green; menu/popover/chart-hover/splitter/graph-panel verified at 1× on Chrome and real Safari.
Context
PR #147 set
--zoom: 1(removed the 1.2× page zoom, which was causing phantom scrollbars via sub-pixel rounding). That neutralizes the wholehtml{zoom}bridging layer — every piece now operates at divisor 1 (no-op) — but the code is still present. This issue tracks removing the dead scaffolding.To remove (all no-ops at scale 1)
html { zoom: var(--zoom) }+ the--zoom/--vp-zoomcustom props (src/styles.css)@supports not (zoom: 1)fallback block (redundant once--zoomis a literal 1)app.applyViewportZoom/viewportZoommeasurement +--vp-zoompublish (src/ui/app.js,src/core/zoom-support.js) and its testscalc(... / var(--vp-zoom))fullscreen-panel sizing → plainvw/vh(.graph-overlay-panel,body.detached-tab)zoomScale/fixedAnchorzoom arg in menu/popover anchoring (src/ui/app.js,src/ui/file-menu.js,src/dom.js)unzoomChartEvent/zoomScale(canvas)Chart.js hover correction (src/core/chart-data.js)scale: () => zoomScale(...)division (src/ui/app.js)Why deferred (not done in #147)
Roadmap #68 gated "full html{zoom} removal" on GraphSurface (#66) because the graph panels + pointer math were the last zoom-coupled surfaces. #147 removed the scale safely (dormant-not-deleted); this teardown should verify graph-panel sizing, menu anchoring, Chart hover, and splitter drag at native scale on Chrome + real Safari (Playwright WebKit ≠ real Safari for zoom×rect — verify manually).
Acceptance
--zoom/--vp-zoom/zoomScale/unzoomChartEventreferences remain.