Part of #68 (Roadmap to 1.0.0) — release-blocker.
Problem
The whole UI depends on html { zoom: var(--zoom) } (src/styles.css:3, factor 1.2). Because zoom does not divide viewport units and getBoundingClientRect() is post-zoom, the app hand-corrects everywhere: zoomScale() in src/ui/dom.js, the calc(... / var(--zoom)) viewport panels, and pointer-mapping in editor.js / results.js / schema-detail.js / splitters.js / chart-data.js. There is no @supports (zoom: 1) feature detection and no fallback (no @supports in the stylesheet). On any engine that ignores zoom or diverges in how it interacts with rects/viewport units, the UI renders at the wrong scale and every pointer/caret/drag computation is wrong — a hard failure, not graceful degradation.
zoom is non-standard: Chrome/Edge always supported it, Firefox added it in 2024 (~v126), WebKit/Safari supports it but with known rect/viewport divergences — exactly the seams this app corrects.
Ask
- Verify behavior on WebKit/Safari (depends on the WebKit-e2e issue).
- Either confirm it's correct everywhere, or add a guard:
@supports feature-detection with a documented fallback, or move to a non-zoom scaling approach (e.g. rem/root-font scaling or a transform wrapper) if Safari diverges.
- At minimum, fail loudly / degrade gracefully rather than silently mis-scaling on an unsupported engine.
Acceptance
Part of #68 (Roadmap to 1.0.0) — release-blocker.
Problem
The whole UI depends on
html { zoom: var(--zoom) }(src/styles.css:3, factor 1.2). Becausezoomdoes not divide viewport units andgetBoundingClientRect()is post-zoom, the app hand-corrects everywhere:zoomScale()insrc/ui/dom.js, thecalc(... / var(--zoom))viewport panels, and pointer-mapping ineditor.js/results.js/schema-detail.js/splitters.js/chart-data.js. There is no@supports (zoom: 1)feature detection and no fallback (no@supportsin the stylesheet). On any engine that ignoreszoomor diverges in how it interacts with rects/viewport units, the UI renders at the wrong scale and every pointer/caret/drag computation is wrong — a hard failure, not graceful degradation.zoomis non-standard: Chrome/Edge always supported it, Firefox added it in 2024 (~v126), WebKit/Safari supports it but with known rect/viewport divergences — exactly the seams this app corrects.Ask
@supportsfeature-detection with a documented fallback, or move to a non-zoomscaling approach (e.g.rem/root-font scaling or a transform wrapper) if Safari diverges.Acceptance
zoom.npm test+ e2e green; per-file coverage gate holds.