Grid
The grid component is a 12-column CSS grid layout with configurable gutters, alignment, and row gaps.
The grid component (flix-grid) is the layout container for arranging content in columns.
It is designed to be used together with grid cell (flix-grid__cell) items.
Default grid
By default, the grid uses:
- gutter
2; - no row gap;
Cell
Cell
Cell
Cell
Cell
Cell
<div class="flix-grid">
<div class="flix-grid__cell flix-grid__cell--col-span-4" >
<div class="flix-box flix-box--small">
Cell
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-4" >
<div class="flix-box flix-box--small">
Cell
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-4" >
<div class="flix-box flix-box--small">
Cell
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-4" >
<div class="flix-box flix-box--small">
Cell
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-4" >
<div class="flix-box flix-box--small">
Cell
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-4" >
<div class="flix-box flix-box--small">
Cell
</div>
</div>
</div>Modifiers
flix-grid--gutter-4- Increases the grid gutter space to `space-4` value.
flix-grid--align-startflix-grid--align-centerflix-grid--align-end- Controls vertical alignment of the grid items (cross axis).
flix-grid--justify-startflix-grid--justify-centerflix-grid--justify-end- Controls horizontal alignment of the grid items (main axis).
flix-grid--with-row-gap- Applies the gutter value as a row gap as well.
Gutter 4
The component currently supports gutter: 2 (default) and gutter: 4.
Gutter 4
Gutter 4
<div class="flix-grid flix-grid--gutter-4">
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Gutter 4
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Gutter 4
</div>
</div>
</div>Align variations
Use --align-{start|center|end} to position grid items along the cross axis: top/start, center, or bottom/end.
Align start
<div class="flix-grid flix-grid--align-start" style="min-height: 180px; background-color: var(--flix-highlight-color); border: 1px dashed var(--flix-ui-primary-color);">
<div class="flix-grid__cell flix-grid__cell--col-span-12">
<div class="flix-box">
Align start
</div>
</div>
</div>
Align center
<div class="flix-grid flix-grid--align-center" style="min-height: 180px; background-color: var(--flix-highlight-color); border: 1px dashed var(--flix-ui-primary-color);">
<div class="flix-grid__cell flix-grid__cell--col-span-12">
<div class="flix-box">
Align center
</div>
</div>
</div>
Align end
<div class="flix-grid flix-grid--align-end" style="min-height: 180px; background-color: var(--flix-highlight-color); border: 1px dashed var(--flix-ui-primary-color);">
<div class="flix-grid__cell flix-grid__cell--col-span-12">
<div class="flix-box">
Align end
</div>
</div>
</div>Justify variations
Use --justify-{start|center|end} modifier to position grid items along the main axis: left/start, center, or right/end.
Justify start
Justify start
<div class="flix-grid flix-grid--justify-start" style="background-color: var(--flix-highlight-color); border: 1px dashed var(--flix-ui-primary-color);">
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Justify start
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Justify start
</div>
</div>
</div>
Justify center
Justify center
<div class="flix-grid flix-grid--justify-center" style="background-color: var(--flix-highlight-color); border: 1px dashed var(--flix-ui-primary-color);">
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Justify center
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Justify center
</div>
</div>
</div>
Justify end
Justify end
<div class="flix-grid flix-grid--justify-end" style="background-color: var(--flix-highlight-color); border: 1px dashed var(--flix-ui-primary-color);">
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Justify end
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Justify end
</div>
</div>
</div>With gap between rows
Use the --with-row-gap to add a gap between the rows.
Rows are formed when the number of columns spanned by the grid columns exceeds 12.
Column 1 / Row 1
Column 2 / Row 1
Column 1 / Row 2
Column 2 / Row 2
<div class="flix-grid flix-grid--with-row-gap">
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Column 1 / Row 1
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Column 2 / Row 1
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Column 1 / Row 2
</div>
</div>
<div class="flix-grid__cell flix-grid__cell--col-span-6">
<div class="flix-box">
Column 2 / Row 2
</div>
</div>
</div>