Skip to content

border-width

Utilities for controlling the width of an element's borders.

Quick reference

ClassStyles
borderborder-width: 1px;
border-<number>border-width: <number>px;
border-(length:<custom-property>)border-width: var(<custom-property>);
border-[<value>]border-width: <value>;
border-xborder-inline-width: 1px;
border-x-<number>border-inline-width: <number>px;
border-x-(length:<custom-property>)border-inline-width: var(<custom-property>);
border-x-[<value>]border-inline-width: <value>;
border-yborder-block-width: 1px;
border-y-<number>border-block-width: <number>px;
border-y-(length:<custom-property>)border-block-width: var(<custom-property>);
border-y-[<value>]border-block-width: <value>;
border-sborder-inline-start-width: 1px;
border-s-<number>border-inline-start-width: <number>px;
border-s-(length:<custom-property>)border-inline-start-width: var(<custom-property>);
border-s-[<value>]border-inline-start-width: <value>;
border-eborder-inline-end-width: 1px;
border-e-<number>border-inline-end-width: <number>px;
border-e-(length:<custom-property>)border-inline-end-width: var(<custom-property>);
border-e-[<value>]border-inline-end-width: <value>;
border-tborder-top-width: 1px;
border-t-<number>border-top-width: <number>px;
border-t-(length:<custom-property>)border-top-width: var(<custom-property>);
border-t-[<value>]border-top-width: <value>;
border-rborder-right-width: 1px;
border-r-<number>border-right-width: <number>px;
border-r-(length:<custom-property>)border-right-width: var(<custom-property>);
border-r-[<value>]border-right-width: <value>;
border-bborder-bottom-width: 1px;
border-b-<number>border-bottom-width: <number>px;
border-b-(length:<custom-property>)border-bottom-width: var(<custom-property>);
border-b-[<value>]border-bottom-width: <value>;
border-lborder-left-width: 1px;
border-l-<number>border-left-width: <number>px;
border-l-(length:<custom-property>)border-left-width: var(<custom-property>);
border-l-[<value>]border-left-width: <value>;
divide-x& > :not(:last-child) { border-inline-start-width: 0px; border-inline-end-width: 1px; }
divide-x-<number>& > :not(:last-child) { border-inline-start-width: 0px; border-inline-end-width: <number>px; }
divide-x-(length:<custom-property>)& > :not(:last-child) { border-inline-start-width: 0px; border-inline-end-width: var(<custom-property>); }
divide-x-[<value>]& > :not(:last-child) { border-inline-start-width: 0px; border-inline-end-width: <value>; }
divide-y& > :not(:last-child) { border-top-width: 0px; border-bottom-width: 1px; }
divide-y-<number>& > :not(:last-child) { border-top-width: 0px; border-bottom-width: <number>px; }
divide-y-(length:<custom-property>)& > :not(:last-child) { border-top-width: 0px; border-bottom-width: var(<custom-property>); }
divide-y-[<value>]& > :not(:last-child) { border-top-width: 0px; border-bottom-width: <value>; }
divide-x-reverse--tw-divide-x-reverse: 1;
divide-y-reverse--tw-divide-y-reverse: 1;

Source: https://tailwindcss.com/guide/border-width

Examples

Basic example

Use border or border-<number> utilities like border-2 and border-4 to set the border width for all sides of an element:

html
<!-- [!code classes:border,border-2,border-4,border-8] -->
<div class="border border-indigo-600 ..."></div>
<div class="border-2 border-indigo-600 ..."></div>
<div class="border-4 border-indigo-600 ..."></div>
<div class="border-8 border-indigo-600 ..."></div>

Individual sides

Use utilities like border-r and border-t-4 to set the border width for one side of an element:

html
<!-- [!code classes:border-t-4,border-r-4,border-b-4,border-l-4] -->
<div class="border-t-4 border-indigo-500 ..."></div>
<div class="border-r-4 border-indigo-500 ..."></div>
<div class="border-b-4 border-indigo-500 ..."></div>
<div class="border-l-4 border-indigo-500 ..."></div>

Horizontal and vertical sides

Use utilities like border-x and border-y-4 to set the border width on two sides of an element at the same time:

html
<!-- [!code classes:border-x-4,border-y-4] -->
<div class="border-x-4 border-indigo-500 ..."></div>
<div class="border-y-4 border-indigo-500 ..."></div>

Using logical properties

Use utilities like border-s and border-e-4 to set the border-inline-start-width and border-inline-end-width logical properties, which map to either the left or right border based on the text direction:

html
<!-- [!code word:dir="ltr"] -->
<!-- [!code word:dir="rtl"] -->
<!-- [!code classes:border-s-4] -->
<div dir="ltr">
  <div class="border-s-4 ..."></div>
</div>
<div dir="rtl">
  <div class="border-s-4 ..."></div>
</div>

Between children

Use utilities like divide-x and divide-y-4 to add borders between child elements:

html
<!-- [!code classes:divide-x-4] -->
<div class="grid grid-cols-3 divide-x-4">
  <div>01</div>
  <div>02</div>
  <div>03</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:

html
<!-- [!code classes:flex-col-reverse,divide-y-4,divide-y-reverse] -->
<div class="flex flex-col-reverse divide-y-4 divide-y-reverse divide-gray-200">
  <div>01</div>
  <div>02</div>
  <div>03</div>
</div>

Using a custom value

Use the border-[&lt;value&gt;] syntax to set the border width based on a completely custom value:

html
<div class="border-[2vw] ...">
  <!-- ... -->
</div>

For CSS variables, you can also use the border-(length:&lt;custom-property&gt;) syntax:

html
<div class="border-(length:--my-border-width) ...">
  <!-- ... -->
</div>

This is just a shorthand for border-[var(&lt;custom-property&gt;)] that adds the var() function for you automatically.

Responsive design

Prefix a border-width utility with a breakpoint variant like md: to only apply the utility at medium screen sizes and above:

html
<div class="border-2 md:border-t-4 ...">
  <!-- ... -->
</div>

Learn more about using variants in the variants documentation.

Released under the MIT License.