Grid
The Grid system provides a flexible way to create both column-based and row-based layouts. It supports various column counts, column spans, and responsive behaviors to create complex layouts easily.
Ways to Define the Grid
The grid system provides two ways to define column layouts:
-
Column Count: Set
grid--cols-{number}
on the parent to create equal-width columns -
Column Spans: Set
col--span-{number}
on individual columns to control their width
Column Count
Use grid--cols-{number}
to specify any number of columns.
Here are examples with 4 and 3 columns:
<div class="grid grid--cols-4">
<div>1/4</div>
<div>1/4</div>
<div>1/4</div>
<div>1/4</div>
</div>
<div class="grid grid--cols-3">
<div>1/3</div>
<div>1/3</div>
<div>1/3</div>
</div>
Column Spans
Use col--span-{number}
to make a column
span multiple grid columns. In a grid row, the sum of all column spans should equal the total number of grid columns.
For example, you might have spans of 1 and 2, or spans of 3, 6, and 2.
<div class="grid">
<div class="col--span-1">Span 1</div>
<div class="col--span-2">Span 2</div>
</div>
<div class="grid">
<div class="col--span-3">Span 3</div>
<div class="col--span-6">Span 6</div>
<div class="col--span-2">Span 2</div>
</div>
Column Layouts
Use columns to create vertical layouts within the grid. Columns can be positioned and aligned using modifier classes.
Basic Column Layout
Use the col
class to create vertical layouts.
<div class="grid">
<div class="col">
{{ Item }}
{{ Item }}
{{ Item }}
{{ Item }}
</div>
</div>
Column Positioning
Use col--{position}
where position can be
start
, center
, or end
to control vertical alignment:
<div class="grid grid--cols-3">
<div class="col col--start">
{{ Item }}
</div>
<div class="col col--center">
{{ Item }}
</div>
<div class="col col--end">
{{ Item }}
</div>
</div>
Row Layouts
Use rows to create horizontal layouts within the grid. Rows can be positioned and aligned using modifier classes.
Basic Row Layout
Use the row
class to create horizontal layouts.
<div class="grid">
<div class="row">
{{ Item }}
{{ Item }}
{{ Item }}
{{ Item }}
</div>
</div>
Row Positioning
Use row--{position}
where position can be
start
, center
, or end
to control horizontal alignment:
<div class="grid grid--cols-1">
<div class="row row--start">
{{ Item }}
</div>
<div class="row row--center">
{{ Item }}
</div>
<div class="row row--end">
{{ Item }}
</div>
</div>