grid — 100.00% verified visual parity

← all categories · PASS 96 · FAIL 0 · REFERENCE-DISPUTED 0 · 96 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.

absolute-positioning — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-absolute-grid-child-does-not-consume-an-auto-placement-cell · excluded-from-grid-flow
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
An absolutely positioned child should overlay the grid container and not take the first grid cell from in-flow items; catches element-only grid placement can accidentally include abspos children as grid items and still pass non-positioned fixtures.
PASS exact match grid-absolute-grid-child-positions-against-its-specified-grid-area · grid-area-containing-block
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
An abspos child with grid-column:2 / 3 and grid-row:2 / 3 should use that grid area as its containing block; catches laying every absolute child against the grid padding box. The authenticated standards-derived reference compensates Chromium print-to-PDF's loss of the grid's static offset for this case.

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

PASS exact match grid-align-content-positions-grid-rows-in-a-tall-container · end
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
align-content:end should pack fixed-height rows at the block-end of a taller grid container; catches only stretching auto rows for normal alignment misses explicit align-content values.

align-items — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-align-items-start · start
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
align-items: start aligns short cells to the block (top) start of each track.
PASS exact match grid-items-baseline-align-across-a-row · baseline
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
align-items:baseline should align text baselines of differently sized grid items rather than stretching or top-aligning them; catches mapping baseline to stretch passes start/end/center/stretch alignment fixtures.

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

PASS exact match grid-rtl-direction-reverses-grid-column-line-start · rtl-grid-line-numbering
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
With direction:rtl, grid-column:1 / 2 should address the rightmost column line interval; catches physical left-to-right line numbering passes all LTR placement fixtures.

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

PASS visually equivalent · no rejecting defect · thresholded evidence 0.24% · raw 0.24% (750 px) grid-inline-grid-participates-in-inline-flow · inline-gridPASS via CSS-scale observation: conserved sub-CSS coverageMissingmissing 0.8%extra 0.8%ΔE 62.7
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 lacks paint present in reference (0.8%)
An inline-grid between two inline labels should remain on the same text line and occupy only its grid width; catches treating inline-grid as block or ignoring it still passes block-level display:grid fixtures.
regions (3 total; showing 3 representatives)

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

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
Extra125016,0 → 16,40250total 0.6% · largest 0.6%
ColorErr125056,0 → 56,40250total 0.6% · largest 0.6%
Missing125096,0 → 96,40250total 0.6% · largest 0.6%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
Missing96,0 → 96,400.6candidate lacks paint present in reference (0.6%)
Extra16,0 → 16,400.6candidate adds paint absent from reference (0.6%)
AntialiasCoverage56,0 → 56,400.6ΔRGB(-188,115,78)antialiasing coverage residue on a shared outline
source · cases/grid/grid-inline-grid-participates-in-inline-flow.html
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<title>inline-grid-participates-in-inline-flow</title>
6<style>
7  @page { size: 264px 120px; margin: 0; }
8  html {
9    font-family: ParitySans;
10    line-height: 1.5;
11  }
12  * {
13    margin: 0;
14    box-sizing: border-box;
15  }
16  html, body {
17    background: #ffffff;
18  }
19  .line {
20    font-size: 20px;
21    margin: 20px;
22  }
23  .g {
24    display: inline-grid;
25    grid-template-columns: 40px 40px;
26    grid-template-rows: 40px;
27    vertical-align: top;
28  }
29  .a {
30    background: #d7263d;
31  }
32  .b {
33    background: #1b998b;
34  }
35</style>
36</head>
37<body>
38<p class="line">L <span class="g"><span class="a"></span><span class="b"></span></span> R</p>
39</body>
40</html>
PASS exact match grid-display-contents-flattens-children-into-grid · contents-grid-items
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A display:contents wrapper should not consume a grid cell; its two children should become separate grid items; catches treating the wrapper as a normal grid item passes direct-child grid fixtures but stacks both grandchildren inside one cell.
PASS exact match grid-display-grid · grid
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
2x2 grid of fixed-px tracks establishing a grid formatting context; four colored cells fill the tracks.

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

PASS exact match grid-display-contents-auto-rows-text · flattened-text-auto-row-contribution
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Four loud colored rows require display:contents grandchildren to contribute text heights to auto rows; any zero-height row, overlap, missing text or selector ancestry error dominates the page. The authenticated standards-derived source directly substitutes the flattened children required by CSS Display 3 because Chromium clips their text while sizing auto rows through display:contents wrappers.

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

PASS visually equivalent · no rejecting defect · thresholded evidence 0.02% · raw 0.02% (488 px) grid-display-contents-fragmentation-text-survival · display-contents-auto-rows-marker-survival · 3 pagesPASS via CSS-scale observation: sub-CSS shared-colour coverageAntialiasCoverageΔE 23.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
page 3
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
why: page 2: visually accepted coverage phase; raw antialiasing coverage residue on a shared outline
A reduced certificate grid forces flattened auto rows across pages with unique label/value end markers, exposing overlap, duplicate words, dropped text and incorrect continuation placement.
regions (8 total; showing 8 representatives)

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

Complete dominant-class aggregates

classregionspixelsunion bbox (CSS px)largest pxmaximum magnitude
ColorErr8488407,17 → 416,176181total 0.03% · largest 0.01%

Representative region details (worst-first)

classbbox (CSS px)area%magnitudereason
AntialiasCoverage407,17 → 416,260.01ΔRGB(1,2,2)antialiasing coverage residue on a shared outline
AntialiasCoverage408,167 → 415,1750.006382ΔRGB(-15,-19,-20)antialiasing coverage residue on a shared outline
AntialiasCoverage407,170 → 413,1760.004558ΔRGB(26,34,35)antialiasing coverage residue on a shared outline
AntialiasCoverage408,171 → 413,1740.003590ΔRGB(-4,-5,-5)antialiasing coverage residue on a shared outline
AntialiasCoverage409,18 → 414,200.002792ΔRGB(-1,-2,-2)antialiasing coverage residue on a shared outline
AntialiasCoverage411,20 → 411,200.000057ΔRGB(0,1,0)antialiasing coverage residue on a shared outline
AntialiasCoverage412,20 → 412,200.000057ΔRGB(1,1,1)antialiasing coverage residue on a shared outline
AntialiasCoverage413,20 → 413,200.000057ΔRGB(0,1,1)antialiasing coverage residue on a shared outline
source · cases/grid/grid-display-contents-fragmentation-text-survival.html
1<!doctype html>
2<html lang="en">
3<head>
4<meta charset="utf-8">
5<title>grid-display-contents-fragmentation-text-survival</title>
6<style>
7  @page { size: 624px 360px; margin: 24px; }
8  * { box-sizing: border-box; margin: 0; }
9  html, body { background: #fff; color: #111; font: 16px/1.25 ParitySans; }
10  h1 { margin-bottom: 12px; padding: 8px; color: #fff; background: #222; font-size: 24px; }
11  .grid { display: grid; grid-template-columns: fit-content(30%) minmax(0, 1fr); gap: 8px 16px; width: 100%; }
12  .row { display: contents; }
13  .label, .value { padding: 8px; border: 3px solid #111; overflow-wrap: anywhere; }
14  .label { color: #fff; background: #c1121f; font-weight: 700; }
15  .value { background: #a8dadc; }
16</style>
17</head>
18<body>
19  <h1>ALL ROWS AND END MARKERS MUST SURVIVE</h1>
20  <div class="grid">
21    <div class="row"><div class="label">PROVENANCE-LABEL-01-LONG-WRAPPABLE LABEL-END-01</div><div class="value">First record carries enough text to establish an auto row and make overlap immediately visible. The complete value must remain beside its own red label. VALUE-END-01</div></div>
22    <div class="row"><div class="label">MATERIALS-LABEL-02-LONG-WRAPPABLE LABEL-END-02</div><div class="value">Second record is deliberately longer. Alpha beta gamma delta epsilon zeta eta theta iota kappa lambda. Alpha beta gamma delta epsilon zeta eta theta iota kappa lambda. VALUE-END-02</div></div>
23    <div class="row"><div class="label">RESTORATION-LABEL-03-LONG-WRAPPABLE LABEL-END-03</div><div class="value">Third record must continue on a later page without duplicating a previous word or losing this marker. Alpha beta gamma delta epsilon zeta eta theta iota kappa lambda. VALUE-END-03</div></div>
24    <div class="row"><div class="label">PRESENTATION-LABEL-04-LONG-WRAPPABLE LABEL-END-04</div><div class="value">Fourth record proves placement continues after the break. Alpha beta gamma delta epsilon zeta eta theta iota kappa lambda. Alpha beta gamma delta epsilon zeta eta theta iota kappa lambda. VALUE-END-04</div></div>
25    <div class="row"><div class="label">VERIFY</div><div class="value">https://example.invalid/very/long/verification/path/FINAL-VERIFICATION-END</div></div>
26  </div>
27</body>
28</html>
PASS exact match grid-row-spanning-grid-item-fragments-across-spanned-rows · spanned-grid-area · 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 grid item spanning multiple rows should keep its area geometry and fragment content consistently across page breaks; catches approximating spanning items as a single starting-row cell passes simple row-span layout but fails paged output.
PASS exact match grid-rows-fragment-between-pages · grid-rows · 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 grid with fixed-height rows taller than the page should break between rows rather than clipping or overlapping rows on one page; catches single-page grid fixtures cannot detect whether grid row boxes participate in pagination.
PASS exact match grid-tall-grid-item-fragments-inside-its-grid-area · grid-item · 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 tall block child inside one grid item should fragment across pages without escaping the grid item's containing area geometry; catches paginating between grid rows only passes row-break fixtures while clipping tall cell contents.

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

PASS exact match grid-gap · row-column-gap
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
2x2 grid with distinct row-gap (20px) and column-gap (40px) separating the cells.
PASS exact match grid-legacy-grid-row-and-column-gap-aliases-apply-separately · legacy-grid-gap-aliases
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-row-gap and grid-column-gap should map to row-gap and column-gap with independent values; catches supporting only gap or grid-gap passes the current generic gap fixture.
PASS exact match grid-percentage-grid-gaps-resolve-from-container-size · percentage
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A 10% column gap in a 200px grid should create a 20px gutter between two 90px columns; catches parsing percentage gaps but never resolving them in grid layout passes length gap fixtures.

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

PASS exact match grid-container-pseudo-elements-are-grid-items · pseudo-grid-items
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A grid container's ::before generated box should participate as the first grid item before DOM children; catches ignoring generated grid items passes DOM-child-only auto-placement fixtures.

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

PASS exact match grid-shorthand-defines-auto-flow-rows · auto-flow-shorthand
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
The grid shorthand should set explicit columns and grid-auto-flow/auto rows in one declaration; catches supporting only grid-template longhands and shorthand area form misses common grid:auto-flow syntax.
PASS exact match grid-shorthand-resets-omitted-implicit-grid-properties · shorthand-reset
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A later grid shorthand should reset a previous grid-auto-flow:column to row flow when omitted; catches a cascade implementation that treats grid as unrelated leaves stale auto-flow values and still passes isolated shorthand tests.

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

PASS exact match grid-area-line-form · line-form
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-area four-value line form (row-start / col-start / row-end / col-end) places a 2x2 block and a single trailing cell.
PASS exact match grid-area-omitted-end-sides-default-correctly · two-value
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-area: 2 / 2 should place an item at row 2 column 2 with auto end sides resolving to a one-cell span; catches only testing the four-value grid-area form misses omitted-value shorthand behavior.
PASS exact match grid-explicit-start-end-lines-create-an-implicit-named-area · implicit-named-area
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A grid-area name should resolve through explicit matching foo-start/foo-end column and row line names even without grid-template-areas; catches engines that only resolve grid-area names from grid-template-areas pass area-string fixtures.

grid-auto-columns — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-auto-columns-implicit · implicit-columns
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
An item placed in column 3 creates implicit columns sized by grid-auto-columns; catches engines that collapse implicit columns to zero width.
PASS exact match grid-auto-columns-repeats-a-track-size-pattern · pattern
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Implicit columns created by explicit placement should cycle through grid-auto-columns values; catches having no grid-auto-columns model or only a single value passes simple explicit-column fixtures.

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

PASS exact match grid-auto-flow-column · column
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-auto-flow: column places items down each column before wrapping to the next.
PASS exact match grid-auto-flow-dense · row-dense
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-auto-flow:row dense backfills a one-column item into an earlier top-row hole; catches sparse-only auto-placement.
PASS exact match grid-column-dense-auto-placement-backfills-holes · column-dense
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
In column flow, dense packing should backfill a later one-row item into an earlier hole in the first column; catches testing only row dense or sparse column flow misses column-major dense search.

grid-auto-placement — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-auto-placement-handles-definite-column-only · definite-column
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Items pinned to column 3 but with auto rows should stack down column 3 without occupying earlier columns; catches a row-major-only auto placer can pass default placement while mishandling one-axis definite column placement.
PASS exact match grid-auto-placement-handles-definite-row-only · definite-row
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Items pinned to row 2 but with auto columns should fill row 2 columns in order without consuming row 1; catches a simplistic auto-placement implementation can pass fully-auto and fully-definite fixtures while ignoring one-axis definite placement.

grid-auto-rows — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-auto-rows-repeats-a-track-size-pattern · pattern
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Implicit rows should cycle through the grid-auto-rows list: 30px, 70px, 30px, ; catches storing only one grid-auto-rows length passes single-size implicit-row fixtures.
PASS exact match grid-implicit-tracks · implicit-tracks
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Six items in a two-column grid generate implicit rows sized by grid-auto-rows: 60px.

grid-column — 100.00% verified visual parity PASS 9 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-column-line-numbers · line-numbers
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Line-number column placement: grid-column: 2 / 4 places a two-track item at columns 2-3; a second item at 4 / 5 sits in the last track.
PASS exact match grid-column-span · span
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
First cell spans two columns (grid-column: span 2) within a 3x2 grid.
PASS exact match grid-column-span-to-line · start-span
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Definite start line with a span: grid-column: 2 / span 2 places a two-track item starting at column line 2.
PASS exact match grid-named-line-placement · named-line
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Named column lines [c1]..[c4] referenced by grid-column place items between the declared lines.
PASS exact match grid-negative-grid-line-numbers-count-from-the-end · negative-lines
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-column: -3 / -1 should span the last two columns of a four-column explicit grid; catches positive-only line fixtures cannot catch engines that parse negative lines as auto or zero.
PASS exact match grid-repeated-named-lines-resolve-nth-occurrence · repeated-named-lines
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-column: 2 col / 3 col should select later occurrences of the repeated line name; catches resolving every named line to its first occurrence passes basic named-line fixtures.
PASS exact match grid-span-counts-only-matching-named-lines · span-integer-named-line-counting
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-column: start / span 2 target counts only lines named target, so the item crosses three tracks to the second matching line. Catches reducing span N <custom-ident> to either span N tracks or the first named line.
PASS exact match grid-span-integer-named-line-syntax-is-honored · span-integer-named-line
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-column: span 2 target / target 3 should count named lines as well as a numeric span; catches a parser accepting only span N or span name passes simpler span fixtures but treats the combined syntax as span 1 or auto.
PASS exact match grid-span-named-line-searches-to-matching-line · span-named-line
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-column: left / span right should span from the left named line to the next right named line, covering two tracks; catches approximating every named span as span 1 passes numeric span fixtures.

grid-items — 100.00% verified visual parity PASS 5 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-auto-margins-align-grid-items-before-self-alignment · auto-margins
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A grid item with margin-left:auto should absorb free inline space and move to the right edge of its grid area; catches ignoring grid item margins and relying only on justify-self passes explicit justify-self tests.
PASS exact match grid-direct-text-creates-anonymous-grid-items · anonymous-text
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Direct text between element children in a grid container should occupy its own anonymous grid item and shift later cells; catches a grid implementation that filters out text nodes passes element-only grid fixtures.
PASS exact match grid-inline-child-grid-item-is-blockified · blockification
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
An inline span grid child with width and height should be blockified as a grid item and honor its box size/alignment inside the cell; catches an implementation that leaves inline grid items shrink-wrapped to text can pass fixtures using only div children.
PASS exact match grid-item-margins-inset-the-item-box · margins
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A grid item with margins should paint inset from its grid area and leave white space around the item background; catches ignoring grid item margins passes current padding/border/alignment fixtures.
PASS exact match grid-item-percentage-margins-use-grid-area-inline-size · percentage-margins
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A 10% left/right margin on a 200px grid area should create 20px side insets, independent of page width; catches resolving percentages against the page or ignoring margins can pass fixed-margin tests.

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

PASS exact match grid-placement-longhands · longhands
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-column-start/end and grid-row-start/end longhands place a two-column two-row item; catches shorthand-only placement support.

grid-row — 100.00% verified visual parity PASS 2 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-row-line-numbers · line-numbers
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Line-number row placement: grid-row: 1 / 3 spans two rows; grid-row: 3 / 4 places the second item in the third row.
PASS exact match grid-row-span · span
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
First cell spans two rows (grid-row: span 2) within a 2x2 grid.

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

PASS exact match grid-template-shorthand · areas-and-tracks
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
The grid-template shorthand defines area strings plus row and column tracks; catches engines that implement only the longhands.

grid-template-areas — 100.00% verified visual parity PASS 7 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-area-names-generate-start-and-end-lines · implicit-lines
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-template-areas should create hero-start and hero-end lines usable by grid-column/grid-row; catches implementing named areas without generated lines passes grid-area:<name> fixtures.
PASS exact match grid-area-span-rows · span-rows
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-template-areas with a 'nav' area spanning two rows beside stacked main/foot regions.
PASS exact match grid-invalid-template-areas · non-rectangular-invalid
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A non-rectangular named area invalidates grid-template-areas, so named placement falls back to auto; catches bounding-box rendering of invalid areas.
PASS exact match grid-template-areas-basic · basic
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-template-areas names a header spanning both columns over a side/main row; grid-area: <name> places each item into its region.
PASS exact match grid-template-areas-create-implicit-tracks-when-track-lists-are-omitted · implicit-tracks
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-template-areas alone should define a two-column/two-row explicit grid whose unsized tracks use auto implicit sizing; catches deriving placement from areas but not deriving track widths passes fixtures that also set template columns.
PASS exact match grid-template-areas-dot · dot-empty
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-template-areas with dot (.) null cells: area 'a' spans the first two cells of row 1, area 'b' the last two of row 2, leaving diagonal empty cells.
PASS exact match grid-unequal-grid-template-areas-row-lengths-invalidate-declaration · unequal-row-invalid
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Rows with different numbers of cell tokens make grid-template-areas invalid, so grid-area names should not resolve; catches padding shorter rows to a rectangle passes valid-area and non-rectangular invalid tests but accepts a distinct invalid syntax.

grid-template-columns — 100.00% verified visual parity PASS 19 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-calc-track-sizes-are-parsed-in-grid-templates · calc
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
calc(50px + 30px) should resolve to an 80px first column before the 1fr track; catches a parser that drops calc() tracks passes px/fr fixtures but changes the number and width of columns.
PASS exact match grid-fit-content-calc-length-range · fit-content-length-percentage-calc
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Large split-color tracks distinguish fixed lengths, mixed percentage/length calculations, zero and overlarge limits inside fit-content().
PASS exact match grid-fit-content-percentage-basis-boxes · fit-content-percentage-content-box-basis
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Content-box, border-box and nested percentage-width grids prove fit-content percentages resolve against the grid content box before gaps, padding and borders are removed.
PASS exact match grid-fit-content-percentage-range · fit-content-percentage-clamp-range
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Flagrant six-lane matrix exercises fit-content() limits from 0% through 150%, exposing dropped percentages and failure to clamp between min-content and max-content.
PASS exact match grid-fit-content-track · fit-content
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
fit-content(120px) clamps the first track while a 1fr track takes the remainder; catches implementations that approximate fit-content as auto.
PASS exact match grid-intrinsic-track-keywords · min-content-max-content
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
min-content and max-content columns size the same breakable text differently; catches engines that map both intrinsic keywords to auto.
PASS exact match grid-minmax-auto-minimum-honors-content · minmax-auto-min
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A minmax(auto,1fr) column with a long unbreakable word should not shrink below the word's min-content contribution; catches coercing auto minimum to zero passes simple flexible minmax tests.
PASS exact match grid-minmax-fixed-max-caps-the-track · minmax-fixed-max
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A minmax(60px, 100px) track next to 1fr in a 300px grid should cap at 100px, not flex wider; catches treating every minmax as a 1fr flexible track passes minmax(min,1fr) tests.
PASS exact match grid-minmax-intrinsic-endpoints-are-distinct · minmax-intrinsic
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A minmax(min-content,max-content) track should size from intrinsic text constraints, not as a generic auto track; catches mapping intrinsic keywords to auto passes round-1 min-content/max-content tests only when not nested in minmax.
PASS exact match grid-named-lines-basic · named-lines
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Named column lines [start] [mid] [end] referenced by grid-column to place overlapping cells.
PASS exact match grid-repeat-auto-fill-count · repeat-auto-fill
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
repeat(auto-fill, 80px) resolves the repetition count from a 500px grid and keeps five cells on one row; catches hard-coded three-repeat expansion.
PASS exact match grid-repeat-auto-fit-collapse · repeat-auto-fit-collapse
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
repeat(auto-fit, minmax(80px, 1fr)) collapses the unused repeated track and stretches four occupied columns; catches auto-fill or fixed-repeat behavior.
PASS exact match grid-repeat-expands-multi-track-patterns · repeat-multi-track
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
repeat(2, 40px 80px) should expand to four tracks alternating narrow and wide; catches a repeat parser that only handles one repeated track passes repeat(3,80px) fixtures.
PASS exact match grid-spanning-item-contributes-to-auto-columns · auto-spanning-items
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A wide item spanning two auto columns should contribute to both tracks instead of leaving them at zero or only measuring single-span items; catches measuring only items with col_span == 1 passes simple auto-column fixtures.
PASS exact match grid-template-columns-auto · auto
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Three columns sized 100px auto 100px so the auto track absorbs the leftover width.
PASS exact match grid-template-columns-fr-mix · fr-mix
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Three columns sized 1fr 2fr 1fr so the middle track is twice the width of the side tracks.
PASS exact match grid-template-columns-minmax · minmax
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Two flexible columns using minmax(80px,1fr) and minmax(120px,1fr) distributing remaining space.
PASS exact match grid-template-columns-percent · percent
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Three columns sized 25% 50% 25% of a fixed-width grid container.
PASS exact match grid-template-columns-repeat · repeat
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Four equal 80px columns produced by repeat(4, 80px).

grid-template-rows — 100.00% verified visual parity PASS 4 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-auto-rows-use-wrapped-content-height · auto-intrinsic
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
An auto row containing wrapping text should grow to the full multi-line content height before the next row starts; catches measuring only one line of text passes empty or single-line auto row fixtures.
PASS exact match grid-fr-rows-divide-definite-grid-height · fr
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Two 1fr rows in a 160px-tall grid with a 10px gap should each be 75px high; catches a row resolver that treats fr rows as auto/content still passes fixed-row fixtures.
PASS exact match grid-percentage-rows-resolve-against-grid-height · percentage
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Percentage row tracks in a definite-height grid should resolve from the grid content-box height; catches a row resolver that only handles fixed lengths passes column percentage tests.
PASS exact match grid-template-rows · px
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Single column with three explicit-px rows of 50px, 110px and 70px height.

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

PASS exact match grid-justify-content-centers-the-grid-tracks · center
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A grid narrower than its container should be centered along the inline axis by justify-content:center; catches ignoring grid content distribution passes item-level justify-items fixtures.
PASS exact match grid-justify-content-distributes-free-space-between-tracks · space-between
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
space-between should put the first track at the left edge and the second at the right edge of a wider grid container; catches implementing only start/center or item alignment passes simpler alignment fixtures.
PASS exact match grid-safe-alignment-falls-back-to-start-on-grid-overflow · safe-center-overflow
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
justify-content:safe center should behave as start when the grid tracks overflow the container; catches stripping safe and always centering passes fit-content safe-center tests but clips both sides on overflow.

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

PASS exact match grid-justify-items-end · end
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
justify-items: end aligns narrow cells to the inline (right) end of each track.

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

PASS exact match grid-order-auto-placement · grid-auto-placement
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Grid auto-placement follows order-modified document order, yielding yellow-green-red instead of source order; catches engines that ignore order on grid items.
PASS exact match grid-order-modified-placement-also-applies-to-dense-packing · dense-grid-auto-placement
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Dense auto-placement must process items in order-modified document order before deciding which holes to backfill; catches a simple order test can fail, but an implementation might sort painting only and still pack dense holes in source order.

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

PASS exact match grid-place-content-sets-block-and-inline-grid-distribution · end-center
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
place-content:end center should set align-content:end and justify-content:center for the grid tracks; catches engines with place-items but no place-content pass item-alignment shorthand fixtures.

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

PASS exact match grid-place-items-center · center
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
place-items: center centers smaller cells both horizontally and vertically inside larger tracks.

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

PASS exact match grid-place-self-overrides-both-item-alignment-axes · end-center
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A single item with place-self:end center should override container stretch and paint at block-end/inline-center within its cell; catches container-only alignment fixtures do not prove item-level place-self parsing and application.

root-formatting-context — 100.00% verified visual parity PASS 1 · FAIL 0 · REFERENCE-DISPUTED 0all categories ↑

PASS exact match grid-root-page-carrier-single-page · body-grid-page-carrier
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A body grid formatting context keeps three explicitly tracked children on one page instead of flattening them into separate root-flow blocks.

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

PASS exact match grid-subgrid-adopts-parent-row-tracks · rows
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
A nested grid spanning two parent rows should use the parent row sizes for its own children when rows are subgridded; catches round 1 covered subgrid columns only; an implementation could special-case columns and still fail rows.
PASS exact match grid-subgrid-augments-and-exposes-line-names · line-name-augmentation
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Line names declared after subgrid should be usable by grandchildren placed inside the subgrid; catches basic subgrid track adoption does not prove line-name augmentation or name-repeat behavior.
PASS exact match grid-subgrid-columns · columns
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
grid-template-columns:subgrid makes a nested grid adopt parent column tracks; catches independent one-column nested-grid layout.
PASS exact match grid-subgrid-inherits-parent-gutters-on-subgridded-axis · inherited-gutters
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Children of a column subgrid should align to parent columns including the parent's column-gap; catches treating a subgrid as an independent grid with no inherited gap can still pass a no-gap subgrid fixture.

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

PASS exact match grid-vertical-writing-mode-changes-grid-physical-axes · vertical-rl-grid
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
In vertical-rl writing mode, the inline axis is vertical, so grid rows and columns map to different physical directions than horizontal-tb; catches a horizontal-only grid algorithm passes all default writing-mode fixtures.

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

PASS exact match grid-overlap-z-index · static-grid-items
Chrome ref
Chrome ref
ironpress
ironpress
full-page >1.0%/channel diff
full-page >1.0%/channel diff
Overlapping static grid items honor z-index, so an earlier higher-z-index inset item paints above a later lower-z-index item; catches source-order-only stacking.