Layout

Columns

Utilities for controlling the number of columns within an element.

Quick reference

Class
Properties
columns-1columns: 1;
columns-2columns: 2;
columns-3columns: 3;
columns-4columns: 4;
columns-5columns: 5;
columns-6columns: 6;
columns-7columns: 7;
columns-8columns: 8;
columns-9columns: 9;
columns-10columns: 10;
columns-11columns: 11;
columns-12columns: 12;
columns-autocolumns: auto;
columns-3xscolumns: 16rem; / 256px /
columns-2xscolumns: 18rem; / 288px /
columns-xscolumns: 20rem; / 320px /
columns-smcolumns: 24rem; / 384px /
columns-mdcolumns: 28rem; / 448px /
columns-lgcolumns: 32rem; / 512px /
columns-xlcolumns: 36rem; / 576px /
columns-2xlcolumns: 42rem; / 672px /
columns-3xlcolumns: 48rem; / 768px /
columns-4xlcolumns: 56rem; / 896px /
columns-5xlcolumns: 64rem; / 1024px /
columns-6xlcolumns: 72rem; / 1152px /
columns-7xlcolumns: 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.

Columns - 图1

  1. <div class="columns-3 ...">
  2. <img class="w-full aspect-video ..." src="..." />
  3. <img class="w-full aspect-square ..." src="..." />
  4. <!-- ... -->
  5. </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.

Columns - 图2

Resize the example to see the expected behaviour

Columns - 图3

  1. <div class="columns-3xs ...">
  2. <img class="w-full aspect-video ..." src="..." />
  3. <img class="w-full aspect-square ..." src="..." />
  4. <!-- ... -->
  5. </div>

Setting the column gap

To specify the width between columns, you can use the gap-x utilities:

Columns - 图4

  1. <div class="gap-8 columns-3 ...">
  2. <img class="w-full aspect-video ..." src="..." />
  3. <img class="w-full aspect-square ..." src="..." />
  4. <!-- ... -->
  5. </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.

  1. <div class="columns-2 hover:columns-3">
  2. <!-- ... -->
  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.

  1. <div class="columns-2 md:columns-3">
  2. <!-- ... -->
  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

  1. module.exports = {
  2. theme: {
  3. extend: {
  4. columns: {
  5. '4xs': '14rem',
  6. }
  7. },
  8. }
  9. }

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.

  1. <div class="columns-[10rem]">
  2. <!-- ... -->
  3. </div>

Learn more about arbitrary value support in the arbitrary values documentation.