Tailwind CSS on GitHub

Divide Width

Utilities for controlling the border width between elements.

Default class reference

Class
Properties
divide-y-0 > * + *--tw-divide-y-reverse: 0; border-top-width: calc(0px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(0px * var(--tw-divide-y-reverse));
divide-x-0 > * + *--tw-divide-x-reverse: 0; border-right-width: calc(0px * var(--tw-divide-x-reverse)); border-left-width: calc(0px * calc(1 - var(--tw-divide-x-reverse)));
divide-y-2 > * + *--tw-divide-y-reverse: 0; border-top-width: calc(2px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(2px * var(--tw-divide-y-reverse));
divide-x-2 > * + *--tw-divide-x-reverse: 0; border-right-width: calc(2px * var(--tw-divide-x-reverse)); border-left-width: calc(2px * calc(1 - var(--tw-divide-x-reverse)));
divide-y-4 > * + *--tw-divide-y-reverse: 0; border-top-width: calc(4px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(4px * var(--tw-divide-y-reverse));
divide-x-4 > * + *--tw-divide-x-reverse: 0; border-right-width: calc(4px * var(--tw-divide-x-reverse)); border-left-width: calc(4px * calc(1 - var(--tw-divide-x-reverse)));
divide-y-8 > * + *--tw-divide-y-reverse: 0; border-top-width: calc(8px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(8px * var(--tw-divide-y-reverse));
divide-x-8 > * + *--tw-divide-x-reverse: 0; border-right-width: calc(8px * var(--tw-divide-x-reverse)); border-left-width: calc(8px * calc(1 - var(--tw-divide-x-reverse)));
divide-y > * + *--tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
divide-x > * + *--tw-divide-x-reverse: 0; border-right-width: calc(1px * var(--tw-divide-x-reverse)); border-left-width: calc(1px * calc(1 - var(--tw-divide-x-reverse)));
divide-y-reverse > * + *--tw-divide-y-reverse: 1;
divide-x-reverse > * + *--tw-divide-x-reverse: 1;

Add borders between horizontal children

Add borders between horizontal elements using the divide-x-{amount} utilities.

1
2
3
<div class="grid grid-cols-3 divide-x divide-green-500">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

Add borders between stacked children

Add borders between stacked elements using the divide-y-{amount} utilities.

1
2
3
<div class="grid grid-cols-1 divide-y divide-yellow-500">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

Reversing children order

If your elements are in reverse order (using say flex-row-reverse or flex-col-reverse), use the divide-x-reverse or divide-y-reverse utilities to ensure the border is added to the correct side of each element.

1
2
3
<div class="flex flex-col-reverse divide-y divide-y-reverse divide-rose-400">
  <div>1</div>
  <div>2</div>
  <div>3</div>
</div>

Responsive

To control the borders between elements at a specific breakpoint, add a {screen}: prefix to any existing divide utility. For example, adding the class md:divide-y-8 to an element would apply the divide-y-8 utility at medium screen sizes and above.

<div class="divide-y divide-gray-400 md:divide-y-8">
  <div class="py-2">1</div>
  <div class="py-2">2</div>
  <div class="py-2">3</div>
</div>

For more information about Tailwind's responsive design features, check out the Responsive Design documentation.


Customizing

Divide width scale

The divide width scale inherits its values from the borderWidth scale by default, so if you'd like to customize your values for both border width and divide width together, use the theme.borderWidth section of your tailwind.config.js file.

  // tailwind.config.js
  module.exports = {
    theme: {
      borderWidth: {
        DEFAULT: '1px',
        '0': '0',
        '2': '2px',
+       '3': '3px',
        '4': '4px',
+       '6': '6px',
-       '8': '8px',
      }
    }
  }

To customize only the divide width values, use the theme.divideWidth section of your tailwind.config.js file.

  // tailwind.config.js
  module.exports = {
    theme: {
      divideWidth: {
        DEFAULT: '1px',
        '0': '0',
        '2': '2px',
+       '3': '3px',
        '4': '4px',
+       '6': '6px',
-       '8': '8px',
      }
    }
  }

Learn more about customizing the default theme in the theme customization documentation.

Variants

By default, only responsive variants are generated for divide width utilities.

You can control which variants are generated for the divide width utilities by modifying the divideWidth property in the variants section of your tailwind.config.js file.

For example, this config will also generate hover and focus variants:

  // tailwind.config.js
  module.exports = {
    variants: {
      extend: {
        // ...
+       divideWidth: ['hover', 'focus'],
      }
    }
  }

Disabling

If you don't plan to use the divide width utilities in your project, you can disable them entirely by setting the divideWidth property to false in the corePlugins section of your config file:

  // tailwind.config.js
  module.exports = {
    corePlugins: {
      // ...
+     divideWidth: false,
    }
  }