CSS Grid
Utilities for building two-dimensional layouts with CSS Grid. All classes support responsive prefixes.
Enable grid
Use d-grid or d-inline-grid from the Display utilities to activate a grid context.
<div class="d-grid grid-cols-3 gap-4">
<div>1</div>
<div>2</div>
<div>3</div>
</div>grid-template-columns
Define the number of equal columns using fractional units.
grid-cols-1grid-template-columns: repeat(1, minmax(0, 1fr))grid-cols-2grid-template-columns: repeat(2, minmax(0, 1fr))grid-cols-3grid-template-columns: repeat(3, minmax(0, 1fr))grid-cols-4grid-template-columns: repeat(4, minmax(0, 1fr))grid-cols-6grid-template-columns: repeat(6, minmax(0, 1fr))grid-cols-12grid-template-columns: repeat(12, minmax(0, 1fr))grid-cols-nonegrid-template-columns: noneClasses are generated for 1 through 12.
grid-template-rows
grid-rows-1grid-template-rows: repeat(1, minmax(0, 1fr))grid-rows-2grid-template-rows: repeat(2, minmax(0, 1fr))grid-rows-3grid-template-rows: repeat(3, minmax(0, 1fr))grid-rows-6grid-template-rows: repeat(6, minmax(0, 1fr))grid-rows-nonegrid-template-rows: noneClasses are generated for 1 through 6.
Column span
Control how many columns an item spans.
col-span-1grid-column: span 1 / span 1col-span-2grid-column: span 2 / span 2col-span-6grid-column: span 6 / span 6col-span-12grid-column: span 12 / span 12col-span-fullgrid-column: 1 / -1<div class="d-grid grid-cols-12 gap-4">
<div class="col-span-8">Main content</div>
<div class="col-span-4">Sidebar</div>
</div>Row span
row-span-1grid-row: span 1 / span 1row-span-2grid-row: span 2 / span 2row-span-fullgrid-row: 1 / -1Classes are generated for 1 through 6.
Column start / end
Explicitly place items by line number.
col-start-1 … col-start-13grid-column-start: Ncol-end-1 … col-end-13grid-column-end: Ncol-start-autogrid-column-start: autocol-end-autogrid-column-end: autoRow start / end
row-start-1 … row-start-7grid-row-start: Nrow-end-1 … row-end-7grid-row-end: Nrow-start-autogrid-row-start: autorow-end-autogrid-row-end: autogrid-auto-flow
Control how auto-placed items fill the grid.
grid-flow-rowgrid-auto-flow: rowgrid-flow-colgrid-auto-flow: columngrid-flow-densegrid-auto-flow: densegrid-flow-row-densegrid-auto-flow: row densegrid-flow-col-densegrid-auto-flow: column densegrid-auto-columns / grid-auto-rows
Size implicitly created tracks.
auto-cols-autogrid-auto-columns: autoauto-cols-mingrid-auto-columns: min-contentauto-cols-maxgrid-auto-columns: max-contentauto-cols-frgrid-auto-columns: minmax(0, 1fr)auto-rows-autogrid-auto-rows: autoauto-rows-mingrid-auto-rows: min-contentauto-rows-maxgrid-auto-rows: max-contentauto-rows-frgrid-auto-rows: minmax(0, 1fr)place-items
Shorthand for align-items + justify-items.
place-items-startstartplace-items-endendplace-items-centercenterplace-items-stretchstretchplace-items-baselinebaselineplace-content
Shorthand for align-content + justify-content.
place-content-startstartplace-content-endendplace-content-centercenterplace-content-stretchstretchplace-content-betweenspace-betweenplace-content-aroundspace-aroundplace-content-evenlyspace-evenlyplace-self
Shorthand for align-self + justify-self on a single item.
place-self-autoautoplace-self-startstartplace-self-endendplace-self-centercenterplace-self-stretchstretchResponsive variants
All grid utilities support breakpoint prefixes. Apply from a breakpoint upward (mobile-first):
<!-- 1 col on mobile → 2 on sm → 3 on md → 4 on lg -->
<div class="d-grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>
</div>Responsive column span:
<div class="d-grid grid-cols-12 gap-4">
<!-- full width on mobile, 8/12 on md+ -->
<div class="col-span-12 md:col-span-8">Main</div>
<div class="col-span-12 md:col-span-4">Aside</div>
</div>Examples
Dashboard layout — 12-column grid:
<div class="d-grid grid-cols-12 gap-4">
<div class="col-span-12 md:col-span-3">Sidebar</div>
<div class="col-span-12 md:col-span-6">Content</div>
<div class="col-span-12 md:col-span-3">Widgets</div>
</div>Card grid — auto-responsive:
<div class="d-grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
<div class="col-span-1 sm:col-span-2 lg:col-span-1">Featured card</div>
<div>Card</div>
<div>Card</div>
</div>Centered item:
<div class="d-grid grid-cols-3 grid-rows-3 place-items-center" style="height: 300px">
<div class="col-start-2 row-start-2">Centered</div>
</div>For uncommon grid templates such as
grid-template-columns: repeat(5, 120px), add a project rule with@vueland/utils-jitdefineRule, for example agrid-cols-[...]orgrid-template-[...]utility.
