Layout
Columns
Utilities for controlling the number of columns within an element.
Quick reference
Class | Properties |
---|---|
columns-1 | columns: 1; |
columns-2 | columns: 2; |
columns-3 | columns: 3; |
columns-4 | columns: 4; |
columns-5 | columns: 5; |
columns-6 | columns: 6; |
columns-7 | columns: 7; |
columns-8 | columns: 8; |
columns-9 | columns: 9; |
columns-10 | columns: 10; |
columns-11 | columns: 11; |
columns-12 | columns: 12; |
columns-auto | columns: auto; |
columns-3xs | columns: 16rem; / 256px / |
columns-2xs | columns: 18rem; / 288px / |
columns-xs | columns: 20rem; / 320px / |
columns-sm | columns: 24rem; / 384px / |
columns-md | columns: 28rem; / 448px / |
columns-lg | columns: 32rem; / 512px / |
columns-xl | columns: 36rem; / 576px / |
columns-2xl | columns: 42rem; / 672px / |
columns-3xl | columns: 48rem; / 768px / |
columns-4xl | columns: 56rem; / 896px / |
columns-5xl | columns: 64rem; / 1024px / |
columns-6xl | columns: 72rem; / 1152px / |
columns-7xl | columns: 80rem; / 1280px / |
Show all classes
Basic usage
Adding based on column count
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>
Adding based on column width
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>
Setting the column gap
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>
Applying conditionally
Hover, focus, and other states
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.
Breakpoints and media queries
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.
Using custom values
Customizing your theme
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.
tailwind.config.js
module.exports = {
theme: {
extend: {
columns: {
'4xs': '14rem',
}
},
}
}
Learn more about customizing the default theme in the theme customization documentation.
Arbitrary values
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.