Utilities for controlling how the browser should calculate an element's total size.
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.
<div class="box-border h-32 w-32 p-4 border-4 ...">
<!-- ... -->
</div>
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.
<div class="box-content h-32 w-32 p-4 border-4 ...">
<!-- ... -->
</div>
To control the box-sizing at a specific breakpoint, add a {screen}:
prefix to any existing box-sizing utility. 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>
For more information about Tailwind's responsive design features, check out the Responsive Design documentation.
By default, only responsive variants are generated for box-sizing utilities.
You can control which variants are generated for the box-sizing utilities by modifying the boxSizing
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: {
// ...
+ boxSizing: ['hover', 'focus'],
}
}
}
If you don't plan to use the box-sizing utilities in your project, you can disable them entirely by setting the boxSizing
property to false
in the corePlugins
section of your config file:
// tailwind.config.js
module.exports = {
corePlugins: {
// ...
+ boxSizing: false,
}
}