core-concepts

Grid System

Our powerful mobile-first flexbox grid system enables complex layouts of all shapes and sizes thanks to a twelve column system enhanced by dozens of predefined classes.

The grid system is built on top of the flexbox architecture, providing full access to its utilities—such as justify-content, align-items, and spacing—applied to individual columns or column groups.

Setting up

Use the columns class to create a columns container. Use the columns-X class to define the width of individual columns or entire groups of columns.

<div class="columns">
  <div class="md:columns-4 bg-neutral-100 p-xs">One of 3 columns</div>
  <div class="md:columns-4 bg-neutral-100 p-xs">One of 3 columns</div>
  <div class="md:columns-4 bg-neutral-100 p-xs">One of 3 columns</div>
</div>

<!-- Or use the shorthand `columns md:columns-4` -->

<div class="columns md:columns-4">
  <div class="bg-neutral-100 p-xs">One of 3 columns</div>
  <div class="bg-neutral-100 p-xs">One of 3 columns</div>
  <div class="bg-neutral-100 p-xs">One of 3 columns</div>
</div>
One of 3 columns
One of 3 columns
One of 3 columns
Horizontal alignment

Change the horizontal alignment with any of the responsive justify-* classes.

<div class="columns md:columns-5 justify-between">
  <div class="bg-neutral-100 p-xs">One of 2 columns</div>
  <div class="bg-neutral-100 p-xs">One of 2 columns</div>
</div>
One of 2 columns
One of 2 columns
Vertical alignment

Change the vertical alignment with any of the responsive items-* classes.

<div class="columns md:columns-6 items-center aspect-ultrawide">
  <div class="bg-neutral-100 p-xs">One of 2 columns</div>
  <div class="bg-neutral-100 p-xs">One of 2 columns</div>
</div>
One of 2 columns
One of 2 columns

Or, change the alignment of each column individually with any of the responsive .self-* classes.

<div class="columns md:columns-4 aspect-ultrawide">
  <div class="bg-neutral-100 p-xs self-start">One of 3 columns</div>
  <div class="bg-neutral-100 p-xs self-center">One of 3 columns</div>
  <div class="bg-neutral-100 p-xs self-end">One of 3 columns</div>
</div>
One of 3 columns
One of 3 columns
One of 3 columns
Wrapping

If more than 12 columns are placed within a single row, each group of extra columns will, as one unit, wrap onto a new line.

One of 3 columns
One of 3 columns
One of 3 columns
Reordering

Use .order-* classes for controlling the visual order of your content.

<div class="columns md:columns-6">
  <div class="bg-neutral-100 p-xs order-last">1.
First in DOM, last visually.</div> <div class="bg-neutral-100 p-xs">2.
One of 3 columns</div> <div class="bg-neutral-100 p-xs">3.
One of 3 columns</div> </div>
1.
First in DOM, last visually.
2.
One of 3 columns
3.
One of 3 columns
Gutters

Gutters are the gaps between column content.

Use .--column-gap-* and .--row-gap-* classes to control the x and y gutter size.

<div class="columns md:columns-6 --column-gap-2xs --row-gap-2xs">
  <div class="bg-neutral-100 p-xs">One of 4 columns</div>
  <div class="bg-neutral-100 p-xs">One of 4 columns</div>
  <div class="bg-neutral-100 p-xs">One of 4 columns</div>
  <div class="bg-neutral-100 p-xs">One of 4 columns</div>
</div>
One of 4 columns
One of 4 columns
One of 4 columns
One of 4 columns
Offsetting columns

Move columns to the right using .ml-* classes. These classes increase the left margin of a column by * columns or by auto.

<div class="columns md:columns-5">
  <div class="bg-neutral-100 p-xs">One of 2 columns</div>
  <div class="bg-neutral-100 p-xs ml-auto">One of 2 columns</div>
</div>
One of 2 columns
One of 2 columns