Local diagnostic
Overflow Inspector
Locate rendered elements that cross a boundary and separate page-level risks from intentional local scrolling.
The demo and copied script run in the current browser. No page content or result is uploaded.
Scoped preview
Rendered fixture
320px content boundary
Release workspace
Responsive rowFits boundary
Fixed report strip544px authored width
build/reflow-lab/2026-08-04/commit/8f7a2d4e9c1b6a3f0d5c7e2aContent record
layoutverificationtokenwithoutnaturalbreakpoints-8f7a2d4e9c1b6a3f0d5c7e2a
Following rowWithin boundary
Build output
pnpm evidence:browsers --fixture=RL-015 --viewport=320 --browser=chromium,firefox,webkitPage boundaryRemains stable
- Scanned elements
- --
- Page risks
- --
- Local scroll items
- --
Findings
Boundary report
| Element | Classification | Overflow |
|---|---|---|
| Run the fixture inspection to populate results. | ||
Local DevTools script
Inspect the current page boundary
(() => {
const root = document.documentElement;
const viewport = root.clientWidth;
const visible = (element) => {
const rect = element.getBoundingClientRect();
const style = getComputedStyle(element);
return rect.width > 0 && rect.height > 0 && style.display !== 'none';
};
const selector = (element) =>
element.id ? '#' + CSS.escape(element.id) :
element.tagName.toLowerCase() + [...element.classList].slice(0, 2).map((name) => '.' + CSS.escape(name)).join('');
const findings = [...document.body.querySelectorAll('*')]
.filter(visible)
.map((element) => {
const rect = element.getBoundingClientRect();
return {
element: selector(element),
leftOverflow: Math.max(0, Math.round(-rect.left)),
rightOverflow: Math.max(0, Math.round(rect.right - viewport)),
renderedWidth: Math.round(rect.width),
};
})
.filter((item) => item.leftOverflow > 1 || item.rightOverflow > 1);
console.table(findings);
return findings;
})();Ready to copy.