Lucia opened this place in 1978. She cooked every night for fifty years, making the same dishes: spaghetti carbonara, eggplant parmigiana, veal saltimbocca, fresh lasagna. She did not change a single recipe in all that time. Her grandson Anthony runs the kitchen now, using the same recipes with the same care.

This second flush-to-edge paragraph confirms the rule fires on every body paragraph that touches the viewport, not just one. The rendered width should be the full viewport, with text starting essentially at x=0.

An intro set in bold, and the rest of it set in italic, running to the left edge of the viewport with no gutter to hold it in.

A paragraph given a fixed width wider than the window, inside a page wrapper that hides whatever runs past the right edge, so the end of every line is cut off mid-word where the screen stops and no visitor can ever read it, however far they scroll.

Should pass

paragraph in centered container with 32px padding

This paragraph sits inside a max-width container that's centered and has 32px horizontal padding. It does not touch the viewport edges and should not trigger the rule.

paragraph inside <nav> (excluded — nav can bleed) paragraph inside <header> (excluded — header can bleed) paragraph inside full-bleed section with own background

This paragraph sits in a full-bleed section that has its own background-color set (intentional design move). The rule excludes paragraphs whose element has its own background-color.

short label / button-ish text (excluded — < 40 chars)

Short label.

Notes

The flag cases above (rendered outside this grid) demonstrate the failure. The pass cases here show acceptable patterns. The rule gates aggressively to avoid false positives: it only flags <p> and <li> with >40 chars whose width spans more than 50% of the viewport AND whose rect.left or rect.right is within 16px of a viewport edge AND which are not inside nav/header AND which have no own background-color AND which are in normal flow (not position:fixed/absolute).

A closing line set in the centre of a full-width paragraph box.

This paragraph's box spans the viewport, and its own 40px of side padding keeps every line of the text well away from both edges of the window.

The second slide of a carousel whose track clips it at the right edge of the viewport while it waits to scroll into view.

A column of a fixed-width desktop layout that starts past the right edge of the window, where nothing of it can touch the window's edge.

A column of a fixed-width desktop layout that starts inside the window and runs on past its right edge, cutting every line where the screen stops.

The second column of a row that never wraps, starting just before the right edge of the window, so the page wrapper cuts off almost every word of it.

A paragraph given a fixed width wider than the window, inside a wrapper a reveal animation left transformed, so the end of every line is cut off mid-word at the right edge of the screen, and nothing a visitor does brings the words back into view however far they scroll.

A paragraph set 8px from the left edge of the window that runs on past its right edge, so it is both too close to one side and wider than the page. Its lines are long enough to fill the whole 1400px measure, which carries every one of them beyond the right side of the window, where a visitor has to scroll sideways to read the end of each line and back again to start the next.