Layout
Utilities for controlling the number of columns within an element.
Use the columns-{count}
utilities to set the number of columns that should be created for the content within an element. The column width will be automatically adjusted to accommodate that number.
<div class="columns-3 ...">
<img class="w-full aspect-video ..." src="..." />
<img class="w-full aspect-square ..." src="..." />
<!-- ... -->
</div>
Use the columns-{width}
utilities to set the ideal column width for the content within an element, with the number of columns (the count) automatically adjusting to accommodate that value.
This “t-shirt” scale is the same as the max-width scale, with the addition of 2xs
and 3xs
, since smaller columns may be desirable.
Resize the example to see the expected behaviour
<div class="columns-3xs ...">
<img class="w-full aspect-video ..." src="..." />
<img class="w-full aspect-square ..." src="..." />
<!-- ... -->
</div>
To specify the width between columns, you can use the gap-x utilities:
<div class="gap-8 columns-3 ...">
<img class="w-full aspect-video ..." src="..." />
<img class="w-full aspect-square ..." src="..." />
<!-- ... -->
</div>
Tailwind lets you conditionally apply utility classes in different states using variant modifiers. For example, use hover:columns-3
to only apply the columns-3
utility on hover.
<div class="columns-2 hover:columns-3">
<!-- ... -->
</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:columns-3
to apply the columns-3
utility at only medium screen sizes and above.
<div class="columns-2 md:columns-3">
<!-- ... -->
</div>
To learn more, check out the documentation on Responsive Design, Dark Mode and other media query modifiers.
By default, Tailwind provides a column count scale from 1-12
as well as a column t-shirt scale from 3xs-7xl
. You can customize these values by editing theme.columns
or theme.extend.columns
in your tailwind.config.js
file.
module.exports = {
theme: {
extend: {
columns: {
'4xs': '14rem',
}
},
}
}
Learn more about customizing the default theme in the theme customization documentation.
If you need to use a one-off 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="columns-[10rem]">
<!-- ... -->
</div>
Learn more about arbitrary value support in the arbitrary values documentation.