CSS Grid support (Taffy-backed)
display:grid now computes with a real grid algorithm — a Taffy (WASM) island inside the Yoga engine — validated like everything else: 336/336 layout cases match headless Chromium within 1px; renders pixel-diffed (grid cases worst 0.6%), gated in CI.
Supported
grid/grid-cols-N/grid-rows-N(resolved asminmax(0,1fr), exactly what Tailwind emits)col-span-N/col-span-full/row-span-*, explicitcol/row-start/endincl. negative linesgrid-flow-row/colincl.densepacking,auto-cols/rows-auto/min/max/frjustify-items/self-*,place-items/content/self-*- grids in flex, flex in grid items, nested grids, text directly in cells
- works in
check,render, the MCP server, and the GitHub Action
Out of scope (warned, documented)
Arbitrary track lists (grid-cols-[...]), named areas, subgrid (Taffy upstream limitation), baseline alignment in grid, inline-grid shrink-to-fit in block flow. See the engineering notes.
Notes
- New runtime dependency:
taffy-layout@2.0.3(exact-pinned). The WASM initializes lazily on the first grid — flex-only checks pay nothing. - No breaking changes; flexbox behavior is byte-identical (all 316 pre-existing goldens unchanged).
npx @saifulapm/layoutlint check src/components/Dashboard.tsxFull diff: v0.1.0...v0.2.0