A utility-first CSS framework for rapidly building custom user interfaces.
This is a Tailwind CSS plugin that adds utilities to modifiy the CSS Box Model property: box-sizing. It's useful to override defaults coming from Preflight or normalize.css or any other CSS reset.
Note: box-sizing utilities were added to Tailwind 1.2.0 as .box-border and .box-content.
Maintained by: Joan Piedra → @neojp
Install as a node module with either npm or yarn on your command line
# Install via npm npm install --save-dev @neojp/tailwindcss-box-sizing-utilities # Install via yarn yarn add --dev @neojp/tailwindcss-box-sizing-utilities
Add this module as a plugin on your Tailwind configuration file (tailwind.config.js).
module.exports = { plugins: [ require('@neojp/tailwindcss-box-sizing-utilities') ] };
Note that this plugin allows the usage of variants through the key boxSizing and will default to your global variant setting.
module.exports = { variants: { boxSizing: ['responsive'] } };
Use the Tailwind utility classes provided by this plugin.
<div class="border-box"></div> <div class="content-box"></div>
There is a debate about whether border-box is better than content-box, and how it should be used by default across projects and browsers. Hence it's been included in several popular CSS libraries as a hard-set default. Preflight is one of them.
The browsers' default box-sizing value is content-box.
Overriding the default to border-box with Preflight or any other CSS reset can do wonders for your project's code, but it can and probably will wreak havoc to third-party code, plugins, and widgets that expect it to be content-box.
This utility should help remediate this scenario:
<div class="content-box"> <!-- insert third-party code here --> </div>
My personal preference is to avoid Preflight, and just use the .border-box utility classes as needed.
Tailwind will be outputed as follows.
.border-box { box-sizing: border-box; } .content-box { box-sizing: content-box; }
Feel free to submit an issue or a pull request, and send me a message on Twitter (@neojp) about it.
This project has been licensed under the Hippocratic License.