Grids
Tailwind doesn't include purpose-built grid classes out of the box, but grid layouts are simple to build using the existing Flexbox and width utilities.
Basic Grids
Use the existing Flexbox and percentage width utilities to construct basic grids.
<!-- Full width column -->
<div class="flex mb-4">
<div class="w-full bg-grey h-12"></div>
</div>
<!-- Two columns -->
<div class="flex mb-4">
<div class="w-1/2 bg-grey-light h-12"></div>
<div class="w-1/2 bg-grey h-12"></div>
</div>
<!-- Three columns -->
<div class="flex mb-4">
<div class="w-1/3 bg-grey-light h-12"></div>
<div class="w-1/3 bg-grey h-12"></div>
<div class="w-1/3 bg-grey-light h-12"></div>
</div>
<!-- Four columns -->
<div class="flex mb-4">
<div class="w-1/4 bg-grey h-12"></div>
<div class="w-1/4 bg-grey-light h-12"></div>
<div class="w-1/4 bg-grey h-12"></div>
<div class="w-1/4 bg-grey-light h-12"></div>
</div>
<!-- Five columns -->
<div class="flex mb-4">
<div class="w-1/5 bg-grey h-12"></div>
<div class="w-1/5 bg-grey-light h-12"></div>
<div class="w-1/5 bg-grey h-12"></div>
<div class="w-1/5 bg-grey-light h-12"></div>
<div class="w-1/5 bg-grey h-12"></div>
</div>
<!-- Six columns -->
<div class="flex">
<div class="w-1/6 bg-grey-light h-12"></div>
<div class="w-1/6 bg-grey h-12"></div>
<div class="w-1/6 bg-grey-light h-12"></div>
<div class="w-1/6 bg-grey h-12"></div>
<div class="w-1/6 bg-grey-light h-12"></div>
<div class="w-1/6 bg-grey h-12"></div>
</div>
Responsive Grids
Use the responsive variants of the width utilities to build responsive grid layouts.
Mixed Column Sizes
Mix different percentage width utilities to build mixed size grids.
<!-- Narrower side column -->
<div class="flex mb-4">
<div class="w-3/4 bg-grey h-12"></div>
<div class="w-1/4 bg-grey-light h-12"></div>
</div>
<!-- Wide center column -->
<div class="flex">
<div class="w-1/5 bg-grey h-12"></div>
<div class="w-3/5 bg-grey-light h-12"></div>
<div class="w-1/5 bg-grey h-12"></div>
</div>
Wrapping Columns
Add flex-wrap
to your column container to allow columns to wrap when they run out of room.
<div class="flex flex-wrap -mb-4">
<div class="w-1/3 mb-4 bg-grey-light h-12"></div>
<div class="w-1/3 mb-4 bg-grey h-12"></div>
<div class="w-1/3 mb-4 bg-grey-light h-12"></div>
<div class="w-1/3 mb-4 bg-grey h-12"></div>
<div class="w-1/3 mb-4 bg-grey-light h-12"></div>
</div>
Column Spacing
Add a negative horizontal margin like -mx-2
to your column container and an equal horizontal padding like px-2
to each column to add gutters.
To prevent horizontal scrolling in full width layouts, add overflow-hidden
to another parent container, or compensate for the negative margin with matching horizontal padding.
<div class="px-2">
<div class="flex -mx-2">
<div class="w-1/3 px-2">
<div class="bg-grey-light h-12"></div>
</div>
<div class="w-1/3 px-2">
<div class="bg-grey h-12"></div>
</div>
<div class="w-1/3 px-2">
<div class="bg-grey-light h-12"></div>
</div>
</div>
</div>
Automatic Column Widths
Use flex-1
instead of an explicit width on your columns to have them size automatically to fill the row.
<!-- Full width column -->
<div class="flex mb-4">
<div class="flex-1 bg-grey h-12"></div>
</div>
<!-- Five columns -->
<div class="flex mb-4">
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
</div>
<!-- Seven columns -->
<div class="flex mb-4">
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
</div>
<!-- Eleven columns -->
<div class="flex mb-4">
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
<div class="flex-1 bg-grey h-12"></div>
<div class="flex-1 bg-grey-light h-12"></div>
</div>
Column Order
Use flex-row-reverse
to reverse column order. Useful for two-column responsive layouts where the column on right should appear first on smaller screens.
<div class="flex md:flex-row-reverse flex-wrap">
<div class="w-full md:w-3/4 bg-grey p-4 text-center text-grey-lighter">1</div>
<div class="w-full md:w-1/4 bg-grey-light p-4 text-center text-grey-darker">2</div>
</div>
Simple Offsets
Use auto margin utilities like ml-auto
and mr-auto
to offset columns in a row.
<div class="flex flex-wrap">
<div class="w-1/3 ml-auto bg-grey h-12"></div>
<div class="w-1/3 mr-auto bg-grey-light h-12"></div>
</div>