Flexbox & Grid

grid-columns

Create equal grid columns with a zero minimum and fractional width.

Overview

ClassDeclarations
grid-cols:<integer>display: grid; grid-template-columns: repeat(<integer>, minmax(0, 1fr));

Basic usage

Create equal columns

grid-cols:3 establishes display:grid and three equal tracks using repeat(3,minmax(0,1fr)). The six items fill across each row. In this 280px container, two 16px gaps are subtracted before the remaining width is divided into thirds.

Create equal columns
The columns share the width left after gaps. Additional items create new rows while preserving source order.
<div id="layout" class="grid-cols:3 grid-auto-rows:48px gap-md w:17.5rem max-w:100%">  <div id="target" class="p-sm">01</div>  <div id="peer" class="p-sm">02</div>  <div id="item-3" class="p-sm">03</div>  <div id="item-4" class="p-sm">04</div>  <div id="item-5" class="p-sm">05</div>  <div id="item-6" class="p-sm">06</div></div>
Generated CSS
@layer utilities {  .grid-cols\:3 {    display: grid;    grid-template-columns: repeat(3, minmax(0, 1fr))  }}

The zero track minimum allows the columns to stay equal. Long or fixed-width content can still overflow its cell; wrapping, clipping or scrolling is a separate content decision. Use grid-template-columns for unequal tracks or content-based sizing.

Apply conditionally

Use conditional queries to change the layout at a real viewport width. The same six items use two columns, then three from sm and four from lg. The container stays 280px wide so the change in track count is easy to compare.

Apply conditionally
grid-columns: Apply conditionally controls
The columns share the width left after gaps. Additional items create new rows while preserving source order.
<div id="layout" class="grid-cols:2 grid-auto-rows:48px gap-md w:17.5rem max-w:100% grid-cols:3@sm grid-cols:4@lg">  <div id="target" class="p-sm">01</div>  <div id="peer" class="p-sm">02</div>  <div id="item-3" class="p-sm">03</div>  <div id="item-4" class="p-sm">04</div>  <div id="item-5" class="p-sm">05</div>  <div id="item-6" class="p-sm">06</div></div>


© 2026 Aoyue Design LLC.MIT License
Trademark Policy