Box Sizing – Tailwind CSS

Utilities for controlling how the browser should calculate an element’s total size.

Basic usage

Including borders and padding

Use box-border to set an element’s box-sizing to border-box, telling the browser to include the element’s borders and padding when you give it a height or width.

This means a 100px × 100px element with a 2px border and 4px of padding on all sides will be rendered as 100px × 100px, with an internal content area of 88px × 88px.

Tailwind makes this the default for all elements in our preflight base styles.

128px

128px

<

div

class

=

"

box-border

h-32 w-32 p-4 border-4 ...

"

>

</

div

>

Excluding borders and padding

Use box-content to set an element’s box-sizing to content-box, telling the browser to add borders and padding on top of the element’s specified width or height.

This means a 100px × 100px element with a 2px border and 4px of padding on all sides will actually be rendered as 112px × 112px, with an internal content area of 100px × 100px.

128px

128px

<

div

class

=

"

box-content

h-32 w-32 p-4 border-4 ...

"

>

</

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 : box-content to only apply the box-content utility on hover .

<

div

class

=

"

box-border

hover:box-content

"

>

</

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: box-content to apply the box-content utility at only medium screen sizes and above.

<

div

class

=

"

box-border

md:box-content

"

>

</

div

>

To learn more, check out the documentation on Responsive Design, Dark Mode and other media query modifiers.