Flexbox & Grid
Utilities for specifying the columns in a grid layout.
Use the grid-cols-*
utilities to create grids with n equally sized columns.
<div class="grid grid-cols-4 gap-4">
<div>01</div>
<!-- ... -->
<div>09</div>
</div>
Use the grid-cols-subgrid
utility to adopt the column tracks defined by the item’s parent.
<div class="grid grid-cols-4 gap-4">
<div>01</div>
<!-- ... -->
<div>05</div>
<div class="grid grid-cols-subgrid gap-4 col-span-3">
<div class="col-start-2">06</div>
</div>
</div>
Tailwind lets you conditionally apply utility classes in different states using variant modifiers. For example, use hover:grid-cols-6
to only apply the grid-cols-6
utility on hover.
<div class="grid grid-cols-1 hover:grid-cols-6">
<!-- ... -->
</div>
For a complete list of all available state modifiers, check out the Hover, Focus, & Other States documentation.
You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:grid-cols-6
to apply the grid-cols-6
utility at only medium screen sizes and above.
<div class="grid grid-cols-1 md:grid-cols-6">
<!-- ... -->
</div>
To learn more, check out the documentation on Responsive Design, Dark Mode and other media query modifiers.
By default, Tailwind includes grid-template-column
utilities for creating basic grids with up to 12 equal width columns. You can customize these values by editing theme.gridTemplateColumns
or theme.extend.gridTemplateColumns
in your tailwind.config.js
file.
You have direct access to the grid-template-columns
CSS property here so you can make your custom column values as generic or as complicated and site-specific as you like.
module.exports = {
theme: {
extend: {
gridTemplateColumns: {
// Simple 16 column grid
'16': 'repeat(16, minmax(0, 1fr))',
// Complex site-specific column configuration
'footer': '200px minmax(900px, 1fr) 100px',
}
}
}
}
Learn more about customizing the default theme in the theme customization documentation.
If you need to use a one-off grid-template-columns
value that doesn’t make sense to include in your theme, use square brackets to generate a property on the fly using any arbitrary value.
<div class="grid grid-cols-[200px_minmax(900px,_1fr)_100px]">
<!-- ... -->
</div>
Learn more about arbitrary value support in the arbitrary values documentation.