Borders
Utilities for controlling the width of an element's borders.
Use the border
, border-0
, border-2
, border-4
, or border-8
utilities to set the border width for all sides of an element.
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>
<div class="border border-sky-500"></div> <div class="border-2 border-sky-500"></div> <div class="border-4 border-sky-500"></div> <div class="border-8 border-sky-500"></div>
Use the border-*
, border-*-0
, border-*-2
, border-*-4
, or border-*-8
utilities to set the border width for one side of an element.
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>
Use the border-x-*
and border-y-*
utilities to set the border width on two sides of an element at the same time.
border-x-4
border-y-4
<div class="border-x-4 border-indigo-500 ..."></div>
<div class="border-y-4 border-indigo-500 ..."></div>
You can also add borders between child elements using the divide-x-*
and divide-y-*
width utilities along with the divide-*
color utilities.
<div class="divide-y divide-slate-200 ..."> <div>01</div> <div>02</div> <div>03</div> </div>
<div class="divide-y divide-slate-700 ..."> <div>01</div> <div>02</div> <div>03</div> </div>
Learn more in the Divide Width and Divide Color documentation.
Use the border-s-*
and border-e-*
utilities 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.
Left-to-right
Right-to-left
<div dir="ltr">
<div class="border-s-4 ..."></div>
<div>
<div dir="rtl">
<div class="border-s-4 ..."></div>
<div>
For more control, you can also use the LTR and RTL modifiers to conditionally apply specific styles depending on the current text direction.
If you’ve disabled Preflight in your project, you’ll need to include a border style utility any time you use one of the border-width
utilities for the border to actually take effect:
<div class="border-4 border-indigo-500 ...">
<div class="border-4 border-solid border-indigo-500 ...">
<!-- ... -->
</div>
This is because browsers set the border-style
of most elements to none
by default, so adding a border-width
on its own isn’t enough to render a border.
Preflight applies a global border reset that sets border-style
to solid
and border-width
to 0
, which is what makes it possible to add a border to an element using just a border-width
utility in projects using Preflight.
Tailwind lets you conditionally apply utility classes in different states using variant modifiers. For example, use hover:border-t-4
to only apply the border-t-4
utility on hover.
<div class="border-2 hover:border-t-4">
<!-- ... -->
</div>
For a complete list of all available state modifiers, check out the Hover, Focus, & Other States documentation.
You can also use variant modifiers to target media queries like responsive breakpoints, dark mode, prefers-reduced-motion, and more. For example, use md:border-t-4
to apply the border-t-4
utility at only medium screen sizes and above.
<div class="border-2 md:border-t-4">
<!-- ... -->
</div>
To learn more, check out the documentation on Responsive Design, Dark Mode and other media query modifiers.
By default, Tailwind provides five border-width
utilities, and the same number of utilities per side (horizontal, vertical, top, right, bottom, and left). You change, add, or remove these by editing the theme.borderWidth
section of your Tailwind config.
module.exports = {
theme: {
borderWidth: {
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.
If you need to use a one-off border-width
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="border-t-[3px]">
<!-- ... -->
</div>
Learn more about arbitrary value support in the arbitrary values documentation.