Fluid Container Plugin for Tailwind CSS
Installation
npm install tailwindcss-fluid-container
Usage
module.exports = {
theme: {
screens: {
'sm': '640px',
},
fluidContainer: {
'default': {
maxWidth: '800px',
responsiveMaxWidth: {
'lg': '1200px',
},
padding: '15px',
responsivePadding: {
'sm': '30px',
},
},
},
},
variants: {
fluidContainer: ['responsive'],
},
plugins: [
require('tailwindcss-fluid-container')({
componentPrefix: 'c-',
widthUtilities: true,
paddingUtilities: true,
marginUtilities: true,
negativeMarginUtilities: true,
}),
],
};
The above configuration would generate the following CSS:
html {
--container-max-width: 800px;
--container-padding: 15px;
--container-padding-negative: calc(var(--container-padding) * -1);
}
@media (min-width: 1024px) {
html {
--container-max-width: 1200px;
}
}
@media (min-width: 640px) {
html {
--container-padding: 30px;
}
}
.c-container {
margin-left: auto;
margin-right: auto;
max-width: 800px;
max-width: var(--container-max-width);
padding-left: 15px;
padding-left: var(--container-padding);
padding-right: 15px;
padding-right: var(--container-padding);
}
.w-container {
width: 800px;
width: var(--container-max-width);
}
.min-w-container {
min-width: 800px;
min-width: var(--container-max-width);
}
.max-w-container {
max-width: 800px;
max-width: var(--container-max-width);
}
.px-container {
padding-left: 15px;
padding-left: var(--container-padding);
padding-right: 15px;
padding-right: var(--container-padding);
}
.pl-container {
padding-left: 15px;
padding-left: var(--container-padding);
}
.pr-container {
padding-right: 15px;
padding-right: var(--container-padding);
}
.mx-container {
margin-left: 15px;
margin-left: var(--container-padding);
margin-right: 15px;
margin-right: var(--container-padding);
}
.ml-container {
margin-left: 15px;
margin-left: var(--container-padding);
}
.mr-container {
margin-right: 15px;
margin-right: var(--container-padding);
}
.-mx-container {
margin-left: -15px;
margin-left: var(--container-padding-negative);
margin-right: -15px;
margin-right: var(--container-padding-negative);
}
.-ml-container {
margin-left: -15px;
margin-left: var(--container-padding-negative);
}
.-mr-container {
margin-right: -15px;
margin-right: var(--container-padding-negative);
}
You can also generate multiple containers and name them, like this:
{
theme: {
fluidContainer: {
'sm': {
maxWidth: '1000px',
padding: '20px',
},
'lg': {
maxWidth: '1400px',
padding: '30px',
},
},
},
plugins: [
require('tailwindcss-fluid-container'),
],
}
This will generate classes such as c-container-sm
, w-container-sm
, etc.