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;
columns-2xscolumns: 18rem;
columns-xscolumns: 20rem;
columns-smcolumns: 24rem;
columns-mdcolumns: 28rem;
columns-lgcolumns: 32rem;
columns-xlcolumns: 36rem;
columns-2xlcolumns: 42rem;
columns-3xlcolumns: 48rem;
columns-4xlcolumns: 56rem;
columns-5xlcolumns: 64rem;
columns-6xlcolumns: 72rem;
columns-7xlcolumns: 80rem;

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 = { 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.

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

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