Fix Long URLs and Unbroken Text Without Hiding Overflow
A continuous identifier has no normal wrapping opportunity, so its line box extends beyond a narrow article and widens the page.
overflow-wrap: normal- Viewport / page
- --
- Log value
- --
- Page overflow
- --
overflow-wrap: anywhere- Viewport / page
- --
- Log value
- --
- Page overflow
- --
Three-browser evidence verified. Live values come from your current browser. The formal matrix records the controlled browser runs and fixture revision used for the published conclusion.
Observed failure
The line has no permitted soft wrap point
The generated identifier is wider than the available inline size. Ordinary wrapping cannot split it, so the text paints past its content box and increases the document scroll width.
Minimal code diff
Allow emergency breaks inside the value
Apply `overflow-wrap: anywhere` to the narrow text field that may receive continuous values, while keeping normal wrapping rules elsewhere.
Before
.log-value {
overflow-wrap: normal;
}After
.log-value {
overflow-wrap: anywhere;
}Root cause
Text normally wraps at language-defined opportunities such as spaces. A generated identifier can contain no usable opportunity at all. Its min-content contribution then reflects the complete uninterrupted token, which may be much wider than a phone viewport.
The fixture uses an invented build identifier with no personal or production data. The failing state keeps the normal wrapping rule; the fixed state permits an emergency break only when the token cannot otherwise fit.
Test representative content extremes
Do not validate this rule with a short placeholder. Use the longest safe examples the field can actually receive: generated filenames, hashes, URLs with long path segments, translated labels, and user-provided identifiers after any server-side limits. Compare the value’s bounding rectangle with its content box at 320 CSS pixels and at increased text zoom. The complete text must remain present in the DOM, selectable, and visible after wrapping.
Place the emergency wrapping rule on the field that owns continuous values rather than on every paragraph in the application. That keeps normal language readable and makes the exception easy to audit. It also exposes cases where a neighboring icon, fixed column, or flex minimum is the real remaining constraint.
When this fix is not enough
Do not apply aggressive breaking to every paragraph. Human-language content should retain normal word boundaries, and values that must be copied exactly should remain selectable and complete. word-break: break-all may be appropriate for a deliberately compact identifier column, but it is usually less readable for general prose.
Regression condition
At 320 and 375 CSS pixels, the failing fixture must create positive page-level overflow. The fixed fixture must report zero page-level overflow, and the complete identifier must remain present and selectable inside its content box.
Primary references
Sources checked for this case
- CSS Text Module Level 4 - overflow-wrap - W3C, checked 2026-08-04
Formal evidence
Browser and viewport matrix
Cells show failing / fixed page overflow in CSS pixels.
| Browser | 320 | 375 | 768 | 1024 | 1440 |
|---|---|---|---|---|---|
| Chromium | +380 / +0 | +325 / +0 | +0 / +0 | +0 / +0 | +0 / +0 |
| Firefox | +380 / +0 | +325 / +0 | +0 / +0 | +0 / +0 | +0 / +0 |
| WebKit | +347 / +0 | +292 / +0 | +0 / +0 | +0 / +0 | +0 / +0 |
12/12 recorded assertions passed
chromium-failing-overflow-320380pxchromium-fixed-overflow-3200pxchromium-failing-overflow-375325pxchromium-fixed-overflow-3750pxfirefox-failing-overflow-320380pxfirefox-fixed-overflow-3200pxfirefox-failing-overflow-375325pxfirefox-fixed-overflow-3750pxwebkit-failing-overflow-320347pxwebkit-fixed-overflow-3200pxwebkit-failing-overflow-375292pxwebkit-fixed-overflow-3750px
Run 2026-08-04T11-36-57-234Z. chromium 149.0.7827.201, firefox 153.0, webkit 26.5. Open raw manifest