block-box-model — 100.00% verified visual parity

← all categories · PASS 59 · FAIL 0 · REFERENCE-DISPUTED 0 · 59 total · 300 DPI

diff colours:MissingExtraColorErrMatchFull-page diff: matching and per-channel ≤1.0% pixels are blank; coloured classes are same-coordinate above-floor evidence. Exact RGBA mismatch remains numeric.

border-width — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-border-width-thick · per-side
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Box with asymmetric per-side solid border widths (6/14/22/30px) verifying each edge thickness independently.

box-sizing — 100.00% verified visual parity PASS 4 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-box-sizing-border-box · border-box
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
box-sizing:border-box keeps the total rendered width at 200px despite 24px padding and 8px border.
PASS exact match block-box-sizing-border-box-auto-width · border-box-auto-width
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
box-sizing:border-box with width:auto fills the CB; padding+border drawn inside the 300px box (css-sizing-3).
PASS exact match block-box-sizing-content-box · content-box
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
box-sizing:content-box expands rendered width to 264px (200 + padding + border) for the same declared width.
PASS exact match block-box-sizing-padding-exceeds · padding-exceeds-width
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
border-box where padding exceeds declared width: content floors to 0, border box grows to padding sum (css-sizing-3 5.1).

display — 100.00% verified visual parity PASS 8 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.05% · raw 0.05% (125 px) block-display-inline-grid · inline-grid-multi-keywordPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 44.8
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
display:inline grid creates inline-level grid containers whose children lay out in columns; catches parsers that support only block-level grid or old single-keyword syntax.
regions (1 total; showing 1 representative)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr1125155,0 → 155,40125total 0.2% · largest 0.2%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage155,0 → 155,400.2ΔRGB(-177,61,152)antialiasing coverage residue on a shared outline
source · cases/block-box-model/block-display-inline-grid.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<style>
6  @page { size: 224px 104px; margin: 0; }
7  html { font-family: ParitySans; line-height: 1.5; }
8  * { margin: 0; box-sizing: border-box; }
9  html, body { background: #ffffff; }
10  .unit {
11    display: inline grid;
12    grid-template-columns: 35px 35px;
13    width: 74px;
14    height: 40px;
15    margin-right: 6px;
16    background: #c62828;
17  }
18  .unit span {
19    display: block;
20    height: 40px;
21    background: #0a7f2e;
22  }
23  .unit span + span { background: #1565c0; }
24</style>
25</head>
26<body>
27  <div class="unit"><span></span><span></span></div>
28  <div class="unit"><span></span><span></span></div>
29</body>
30</html>
PASS exact match block-display-block-stacking · block
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Inline spans forced to display:block stack vertically full-width, each on its own line.
PASS exact match block-display-contents · contents-box-suppression
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
display:contents suppresses the wrapper box, paint, and padding while keeping children in flow; catches treating contents as block.
PASS exact match block-display-inline-block-row · inline-block
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Three display:inline-block chips laid out in a row (whitespace collapsed via font-size:0) verifying inline flow of block boxes.
PASS exact match block-display-list-item · list-item-marker
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
display:list-item on a div generates an inside marker box; catches treating list-item as a plain block with no marker.
PASS exact match block-flow-root-float-containment · flow-root-float-containment
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
display:flow-root establishes a BFC whose height contains a floated child before the following block; catches normal-block zero-height float collapse.
PASS exact match block-inline-block-baseline · inline-block-baseline
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
inline-block chips align to the text baseline; vertical-align:top lifts one to the line top (CSS2 10.8).
PASS exact match block-inline-block-wrap · inline-block-wrap
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
inline-block chips wrap to the next line when the row overflows the container width (css-display-3).

fragmentation — 100.00% verified visual parity PASS 10 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS visually equivalent · no rejecting defect · thresholded evidence 0.28% · raw 3.65% (27339 px) box-decoration-break-slice-border-image-shadow · slice-border-image-background-shadow-continuation · 2 pagesPASS via CSS-scale observation: sub-CSS shared-outline coverageColorValueextra 0.006277%ΔE 0.3
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw fill colour differs (ΔE 0.3)
A two-page slice fragment combines a vertical background gradient, vertical border-image gradient, rounded real corners, and an offset hard shadow. All three decorations use one reassembled reference box: gradients continue rather than restart, cut edges remain undecorated, and the shadow is absent at the page break while remaining visible at the real outer edges.
regions (141 total; showing 64 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
Extra1370,0 → 0,1237total 0.006253% · largest 0.006253%
ColorErr140273020,0 → 252,2408940total 4.6% · largest 1.5% · max ΔE 0.5

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
ColorValue0,24 → 240,2401.5ΔE 0.2 ΔRGB(-1,0,0)fill recolour ΔRGB(-1,+0,+0) (ΔE 0.2)
ColorValue0,14 → 240,170.3ΔE 0.2fill colour differs (ΔE 0.2)
ColorValue0,22 → 240,230.2ΔE 0.3 ΔRGB(1,0,0)fill recolour ΔRGB(+1,+0,+0) (ΔE 0.3)
ColorValue0,12 → 240,130.2ΔE 0.4 ΔRGB(-38,-236,-127)fill recolour ΔRGB(-38,-236,-127) (ΔE 0.4)
ColorValue0,18 → 240,190.2ΔE 0.3 ΔRGB(1,0,0)fill recolour ΔRGB(+1,+0,+0) (ΔE 0.3)
AntialiasCoverage0,20 → 240,200.2ΔE 0.2 ΔRGB(0,0,-1)antialiasing coverage residue on a shared outline
ColorValue12,240 → 228,2400.1ΔRGB(-71,-102,-83)fill recolour ΔRGB(-71,-102,-83) (ΔE 0)
AntialiasCoverage12,217 → 228,2170.1ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage12,217 → 228,2170.1ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage12,224 → 228,2240.1ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage12,231 → 228,2310.1ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage12,233 → 228,2330.1ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
ColorValue228,39 → 240,420.06ΔE 0.2 ΔRGB(-1,0,0)fill recolour ΔRGB(-1,+0,+0) (ΔE 0.2)
ColorValue216,29 → 240,310.04ΔE 0.2fill colour differs (ΔE 0.2)
ColorValue216,25 → 240,260.04ΔE 0.3 ΔRGB(-1,0,1)fill recolour ΔRGB(-1,+0,+1) (ΔE 0.3)
ColorValue216,33 → 240,340.04ΔE 0.2 ΔRGB(-1,0,0)fill recolour ΔRGB(-1,+0,+0) (ΔE 0.2)
ColorValue216,47 → 240,480.04ΔE 0.2 ΔRGB(-1,0,0)fill recolour ΔRGB(-1,+0,+0) (ΔE 0.2)
ColorValue228,68 → 240,690.03ΔE 0.2fill colour differs (ΔE 0.2)
ColorValue216,37 → 240,380.03ΔE 0.3 ΔRGB(-1,0,1)fill recolour ΔRGB(-1,+0,+1) (ΔE 0.3)
ColorValue216,62 → 240,630.03ΔE 0.2fill colour differs (ΔE 0.2)
ColorValue228,35 → 240,360.03ΔE 0.4 ΔRGB(-1,0,1)fill recolour ΔRGB(-1,+0,+1) (ΔE 0.4)
ColorValue228,43 → 240,440.03ΔE 0.3 ΔRGB(-1,0,1)fill recolour ΔRGB(-1,+0,+1) (ΔE 0.3)
ColorValue228,50 → 240,510.03ΔE 0.3 ΔRGB(-1,0,1)fill recolour ΔRGB(-1,+0,+1) (ΔE 0.3)
ColorValue228,54 → 240,550.03ΔE 0.3 ΔRGB(0,0,1)fill recolour ΔRGB(+0,+0,+1) (ΔE 0.3)
ColorValue228,58 → 240,590.03ΔE 0.3 ΔRGB(0,0,1)fill recolour ΔRGB(+0,+0,+1) (ΔE 0.3)
AntialiasCoverage216,45 → 240,450.03ΔE 0.4 ΔRGB(-1,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,24 → 240,240.02ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,28 → 240,280.02ΔE 0.4 ΔRGB(-1,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,31 → 240,320.02ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,49 → 240,490.02ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,70 → 240,700.02ΔE 0.3 ΔRGB(-1,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,75 → 240,760.02ΔE 0.3 ΔRGB(-1,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage216,52 → 240,530.02ΔE 0.4 ΔRGB(-1,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,56 → 240,570.01ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,60 → 240,600.01ΔE 0.5 ΔRGB(-1,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,64 → 240,640.01ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,66 → 240,660.01ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,72 → 240,720.01ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,73 → 240,730.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,74 → 240,740.01ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,83 → 240,830.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,85 → 240,850.01ΔE 0.5 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,87 → 240,880.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,93 → 240,930.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,95 → 240,950.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,98 → 240,980.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,112 → 240,1130.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,118 → 240,1180.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,120 → 240,1200.01ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,208 → 240,2080.01ΔE 0.2 ΔRGB(1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,210 → 240,2100.01ΔE 0.2 ΔRGB(1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,215 → 240,2160.01ΔE 0.2 ΔRGB(1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,230 → 240,2300.01ΔE 0.2 ΔRGB(0,0,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,233 → 240,2330.01ΔE 0.2 ΔRGB(1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,235 → 240,2350.01ΔE 0.2 ΔRGB(1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage216,89 → 240,890.01ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,65 → 240,650.006422ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,78 → 240,780.006422ΔE 0.5 ΔRGB(-1,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,80 → 240,800.006422ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,80 → 240,800.006422ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,82 → 240,820.006422ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,84 → 240,840.006422ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
AntialiasCoverage228,90 → 240,900.006422ΔE 0.3 ΔRGB(0,0,1)antialiasing coverage residue on a shared outline
AntialiasCoverage228,91 → 240,910.006422ΔE 0.2 ΔRGB(-1,0,0)antialiasing coverage residue on a shared outline
source · cases/block-box-model/box-decoration-break-slice-border-image-shadow.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<title>slice border image and shadow continuation</title>
6<style>
7  @page { size: 320px 240px; margin: 0; }
8  html, body { background: #ffffff; }
9  * { box-sizing: border-box; margin: 0; padding: 0; }
10  .box {
11    width: 240px;
12    margin-left: 16px;
13    padding: 12px;
14    background: linear-gradient(to bottom, #fff0a8, #83e8e1);
15    border: 12px solid #ff00ff;
16    border-image: linear-gradient(to bottom, #d90429, #3a0ca3) 1;
17    border-radius: 24px;
18    box-shadow: 12px 10px 0 rgba(16, 24, 40, 0.55);
19    box-decoration-break: slice;
20  }
21  .row { height: 64px; break-inside: avoid; }
22  .a { background: #ff6b6b; }
23  .b { background: #4d96ff; }
24  .c { background: #6bcb77; }
25  .d { background: #ffd93d; }
26</style>
27</head>
28<body>
29  <div class="box">
30    <div class="row a"></div>
31    <div class="row b"></div>
32    <div class="row c"></div>
33    <div class="row d"></div>
34  </div>
35</body>
36</html>
PASS visually equivalent · no rejecting defect · thresholded evidence 0.12% · raw 0.12% (968 px) box-decoration-break-slice-radius · box-decoration-break-slice-radius · 2 pagesPASS via CSS-scale observation: sub-CSS shared-outline coverageExtraextra 0.1%ΔE 2.5
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: visually accepted coverage phase; raw candidate adds paint absent from reference (0.1%)
box-decoration-break:slice with border-radius across a page break. Per CSS Fragmentation 3 §5.4 the cut edge of each fragment must be square: only the box's real corners are rounded (top corners on page 1, bottom corners on page 2). Ironpress removes the cut-edge widths and radii before the canonical border-ring partition paints the remaining sides. The clone-radius companion keeps all corners rounded per fragment. The multi-page harness asserts the page count and diffs both pages.
regions (126 total; showing 64 representatives)

Complete component census grouped by dominant raster class; representative details are bounded.

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr1252970,0 → 260,24015total 0.05% · largest 0.002460% · max ΔE 2.7
Extra1671260,25 → 260,240671total 0.1% · largest 0.1%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
Extra260,25 → 260,2400.1candidate adds paint absent from reference (0.1%)
AntialiasCoverage251,7 → 253,90.002460ΔRGB(0,-1,-1)antialiasing coverage residue on a shared outline
AntialiasCoverage14,2 → 17,30.001804ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage256,14 → 257,160.001804ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage2,14 → 3,170.001804ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage234,0 → 236,00.001312ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage24,0 → 26,00.001148ΔRGB(0,-9,-9)antialiasing coverage residue on a shared outline
AntialiasCoverage0,24 → 0,260.001148ΔRGB(0,-9,-9)antialiasing coverage residue on a shared outline
AntialiasCoverage249,5 → 250,60.000984ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage9,6 → 10,70.000984ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage6,9 → 7,100.000984ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage260,23 → 260,240.000984ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage236,0 → 238,00.000820ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage22,0 → 23,00.000656ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage20,1 → 21,10.000656ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage238,1 → 239,10.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage239,1 → 240,10.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage246,4 → 246,40.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage13,4 → 13,40.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage248,5 → 248,50.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage11,5 → 12,50.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage254,10 → 254,110.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage5,11 → 5,120.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage255,12 → 255,120.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage255,12 → 256,130.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage4,13 → 4,130.000656ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage1,20 → 1,210.000656ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage259,21 → 259,220.000656ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage0,22 → 0,230.000656ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage20,1 → 20,10.000492ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage19,1 → 19,10.000492ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage241,1 → 241,10.000492ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage18,2 → 18,20.000492ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage242,2 → 243,20.000492ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage258,17 → 258,180.000492ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage2,18 → 2,180.000492ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage1,19 → 1,190.000492ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage259,19 → 259,200.000492ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage1,20 → 1,200.000492ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage259,20 → 259,210.000492ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage242,2 → 242,20.000328ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage17,2 → 17,20.000328ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage243,2 → 244,20.000328ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage244,3 → 244,30.000328ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage244,3 → 245,30.000328ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage245,3 → 245,30.000328ΔRGB(0,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage14,4 → 14,40.000328ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage247,4 → 247,40.000328ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage12,4 → 12,40.000328ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage4,12 → 4,120.000328ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage256,13 → 256,140.000328ΔRGB(0,-4,-4)antialiasing coverage residue on a shared outline
AntialiasCoverage4,14 → 4,140.000328ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage258,17 → 258,170.000328ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage2,17 → 2,170.000328ΔRGB(0,-6,-6)antialiasing coverage residue on a shared outline
AntialiasCoverage258,18 → 258,190.000328ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage247,4 → 247,40.000164ΔRGB(0,-9,-9)antialiasing coverage residue on a shared outline
AntialiasCoverage12,5 → 12,50.000164ΔRGB(0,-9,-9)antialiasing coverage residue on a shared outline
AntialiasCoverage11,6 → 11,60.000164ΔRGB(0,-10,-10)antialiasing coverage residue on a shared outline
AntialiasCoverage250,6 → 250,60.000164ΔRGB(10,8,8)antialiasing coverage residue on a shared outline
AntialiasCoverage250,7 → 250,70.000164ΔRGB(0,-9,-9)antialiasing coverage residue on a shared outline
AntialiasCoverage9,7 → 9,70.000164ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage9,7 → 9,70.000164ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage8,8 → 8,80.000164ΔRGB(0,-7,-7)antialiasing coverage residue on a shared outline
AntialiasCoverage8,8 → 8,80.000164ΔRGB(14,16,16)antialiasing coverage residue on a shared outline
source · cases/block-box-model/box-decoration-break-slice-radius.html
1<!DOCTYPE html>
2<html>
3<head>
4<meta charset="utf-8">
5<style>
6  /* box-decoration-break:slice (default) WITH border-radius across a page break.
7     Under slice the box is rendered whole and then sliced, so the rounded
8     corners exist only where the real box corners are: the TOP corners are
9     rounded on page 1 (open, square at the bottom cut) and the BOTTOM corners
10     are rounded on page 2 (open, square at the top cut). The multi-page harness
11     asserts the page COUNT (2) and diffs both pages. */
12  @page { size: 344px 240px; margin: 0; }
13  * { margin: 0; padding: 0; box-sizing: border-box; }
14  html { font-family: ParitySans; line-height: 1.5; background: #ffffff; }
15  .box {
16    width: 260px;
17    background: #ffd9d9;
18    border: 10px solid #6b1414;
19    border-radius: 28px;
20    padding: 14px;
21    box-decoration-break: slice;
22  }
23  .row { height: 64px; break-inside: avoid; }
24  .a { background: #d94f4f; }
25  .b { background: #2d6cdf; }
26  .c { background: #2e9e5b; }
27  .d { background: #e08a1e; }
28</style>
29</head>
30<body>
31  <div class="box">
32    <div class="row a"></div>
33    <div class="row b"></div>
34    <div class="row c"></div>
35    <div class="row d"></div>
36  </div>
37</body>
38</html>
PASS exact match block-exact-fill-no-extra-page · exact-fill-no-extra-page
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Content that fills the page content box EXACTLY (two 100px blocks = the full 200px page) must NOT spill a spurious empty second page. The multi-page harness asserts the page COUNT (1); an off-by-one pagination emitting a trailing blank page would fail.
PASS exact match block-subpoint-height-continuation · subpoint-continuation · 2 pages
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A painted block whose overflow is less than one point retains its nonzero continuation on page two.
PASS exact match box-decoration-break-clone · box-decoration-break-clone · 2 pages
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
box-decoration-break:clone on a tall bordered, padded box that spans a page break. Unlike slice, EACH page fragment is independently wrapped with the FULL border + padding + background, so both pages show a box closed on all four sides. ironpress implements the css-break-3 §6.2 clone model; the multi-page harness asserts the page COUNT (2) and diffs every page.
PASS exact match box-decoration-break-clone-radius · box-decoration-break-clone-radius · 2 pages
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
box-decoration-break:clone with border-radius across a page break: each fragment is independently wrapped with the full border/padding/background, so BOTH fragments are fully closed boxes with all four rounded corners. Contrasts the slice-radius case. The multi-page harness asserts the page COUNT (2) and diffs both pages.
PASS exact match box-decoration-break-slice · box-decoration-break-slice · 2 pages
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Explicit box-decoration-break:slice (the default) on a tall bordered, padded box that spans a page break. Page 1 carries the TOP border and is OPEN at the page bottom; page 2 carries the BOTTOM border and is OPEN at the top. Pins the slice decoration model independently of the default-driven container-splits case.
PASS exact match container-splits-across-pages · container-split-across-pages · 3 pages
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 3
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A bordered, padded, background-filled container with nine child blocks is far taller than the 240px page and FRAGMENTS across three pages (CSS Fragmentation 3 §3, class-A break between children). Under the default box-decoration-break:slice the box is sliced at each page edge: page 1 keeps the TOP border (open at the bottom), the middle page has NO top/bottom border (only the left/right edges), and the last page keeps the BOTTOM border (open at the top). The multi-page harness asserts the page COUNT (3) and diffs every page, so any clipping or mis-placed border fails — the first fixture that validates container fragmentation (splitting a box between its children), not just a single text block.
PASS exact match nested-container-deep-split · nested-container-recursive-split · 3 pages
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 3
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A bordered container nested inside another bordered container (the outer box has a SINGLE child, so there is no between-children break point at the outer level) holds ten 50px rows and is far taller than the 240px page. The fragmentation engine must RECURSE into the inner box and split it between its rows: rows 0-3 on page 1, 4-7 on page 2, 8-9 on page 3, with both boxes sliced (box-decoration-break:slice) at each page edge. Catches the data-loss bug where a single-child container was placed whole and clipped to one page. The multi-page harness asserts the page COUNT (3) and diffs every page.
PASS exact match paragraph-splits-across-pages · paragraph-split-across-pages · 3 pages
page 1
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 2
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
page 3
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A single paragraph far taller than the 200px page is split across page boundaries (CSS Fragmentation 3 §3): 24 lines at 16px/1.5 span three pages. The harness asserts the page count and compares every page exactly, so clipping, an off-by-one split, or misplaced text is visible.

height — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-height-auto-from-children · auto-from-children
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
height:auto grows to contain in-flow children (60+90=150px) (CSS2 10.6.3).
PASS exact match block-height-percent-auto-parent · percent-auto-parent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Percentage height with an auto-height parent behaves as auto (falls back to content height) (CSS2 10.5).
PASS exact match block-height-percent-definite-parent · percent-definite-parent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Percentage height resolves to 50% of the parent's definite 200px content height = 100px (CSS2 10.5).

margin — 100.00% verified visual parity PASS 17 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-margin-auto-centering · auto-centering
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Fixed-width block with margin-left/right:auto horizontally centered inside a wider track.
PASS exact match block-margin-auto-no-width · auto-no-width
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
margin:0 auto with width:auto does not center: auto margins compute to 0 and width fills the CB (CSS2 10.3.3).
PASS exact match block-margin-auto-single-side · auto-single-side
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
margin-left:auto on a fixed-width block absorbs all free space, pushing the box to the right edge (CSS2 10.3.3).
PASS exact match block-margin-collapse-adjacent · collapse-adjacent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Two stacked blocks whose adjacent vertical margins (40px and 24px) collapse to the larger 40px gap.
PASS exact match block-margin-collapse-all-negative · collapse-all-negative
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
All-negative adjacent margins collapse to the most-negative (-50px), overlapping the boxes (CSS2 8.3.1).
PASS exact match block-margin-collapse-empty · collapse-empty
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Empty block's own top+bottom margins collapse together and with siblings to a single 40px gap (CSS2 8.3.1).
PASS exact match block-margin-collapse-negative-mixed · collapse-negative-mixed
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Mixed-sign adjacent margins collapse to max_positive + min_negative = 30px (CSS2 8.3.1).
PASS exact match block-margin-collapse-parent-first-child · collapse-parent-first-child
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Parent + first in-flow child top margins collapse through (CSS2 8.3.1); child margin-top protrudes above the parent.
PASS exact match block-margin-collapse-parent-last-child · collapse-parent-last-child
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Parent (auto height) + last in-flow child bottom margins collapse through (CSS2 8.3.1); following sibling sits at the larger margin.
PASS exact match block-margin-collapse-prevented-bfc-sibling · collapse-prevented-bfc-sibling
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A BFC wrapper does not collapse its child's margin with margins outside it (CSS2 8.3.1).
PASS exact match block-margin-collapse-prevented-flex · collapse-prevented-flex
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Flex items do not collapse margins; the gap is the sum (70px), not the collapsed max (CSS2 8.3.1 + flexbox 6).
PASS exact match block-margin-collapse-prevented-height · collapse-prevented-height
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Parent explicit height prevents parent/last-child bottom margin collapse-through (CSS2 8.3.1).
PASS exact match block-margin-collapse-prevented-overflow · collapse-prevented-bfc
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
overflow:hidden establishes a BFC, preventing parent/child margin collapse (CSS2 8.3.1).
PASS exact match block-margin-collapse-prevented-padding · collapse-prevented-padding
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Parent padding-top prevents parent/first-child margin collapse; child margin offsets it inside the parent (CSS2 8.3.1).
PASS exact match block-margin-descendant-protrudes · descendant-protrudes
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Descendant top margin protrudes above the parent when not blocked, vs contained when padding blocks the collapse (CSS2 8.3.1).
PASS exact match block-margin-negative-offset · negative-offset
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Negative explicit margin-left/-top pull the box left/up, overlapping the parent edge (CSS2 8.3).
PASS exact match block-margin-offsets · explicit-offsets
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Block with asymmetric explicit margin-top:40px and margin-left:90px offsetting it within a track.

max-height — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-max-height-clamp · clamp
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
max-height caps the box to 120px and clips overflowing content via overflow:hidden (css-sizing-3).

max-width — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-max-width-clamp · clamp
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Auto-width block clamped down to max-width:200px instead of filling the wider track.
PASS exact match block-max-width-min-content · min-content
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
max-width:min-content constrains a 200px text box to the longest word and wraps the phrase; catches ignoring intrinsic max-width keywords.
PASS exact match block-max-width-percent · percent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Percentage max-width clamps auto width to 50% of the 400px CB content width = 200px (css-sizing-3).

min-height — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-min-height-floor · floor
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
min-height raises a short box to the 160px floor; background extends below the child (css-sizing-3).

min-width — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-min-max-width-conflict · min-over-max
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
min-width > max-width: min wins via max(min,min(value,max)) -> 240px (css-sizing-3 5.2).
PASS exact match block-min-width-floor · floor
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Declared width:80px raised to the min-width:220px floor.
PASS exact match block-min-width-max-content · max-content
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
min-width:max-content expands a narrow box to its unbreakable text width; catches ignoring intrinsic min-width keywords.

nested-block-flow — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-nested-containment · containment
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Three nested blocks, each inset by its parent's padding, forming concentric frames to verify nested block containment.

padding — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-padding-all-sides · uniform
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
content-box container with 30px padding on all sides framing an inner box; verifies padding insets content equally.
PASS exact match block-padding-asymmetric · asymmetric
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Per-side asymmetric padding (10/50/30/70) insets content distinctly on each edge (css-box-3).
PASS exact match block-padding-percent · percent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Percentage padding resolves against containing-block WIDTH on every side incl. vertical (CSS2 8.4).

width — 100.00% verified visual parity PASS 3 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-width-auto-fills-parent · auto
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Block child with width:auto expands to fill the parent's content box (parent width minus padding).
PASS exact match block-width-fit-content · fit-content
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
width:fit-content shrinks to wrap content rather than filling the parent (css-sizing-3 intrinsic sizing).
PASS exact match block-width-percent · percent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Child with width:50% resolves to half (200px) of the 400px parent content box.

width-height — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match block-width-height-explicit · explicit-px
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Single block with explicit width:240px height:120px and a 4px border; baseline box dimensions.