Generate spacing utilities classes with margin, padding, and gap. The classes are named using the format
{property}{sides}-{size}
.
Where property is one of:
m
- for classes that setmargin
p
- for classes that setpadding
g
- for classes that setgap
Where sides is one of:
t
- for classes that setmargin-top
orpadding-top
b
- for classes that setmargin-bottom
orpadding-bottom
l
- for classes that setmargin-left
orpadding-left
r
- for classes that setmargin-right
orpadding-right
x
- for classes that set both*-left
and*-right
y
- for classes that set both*-top
and*-bottom
- blank - for classes that set a
margin
orpadding
on all 4 sides of the element
The size increases exponentially:
auto
- for classes that set themargin
toauto
0
- for classes that eliminate themargin
orpadding
by setting it to0
1
- for classes that set themargin
orpadding
to unit *0.25
2
- for classes that set themargin
orpadding
to unit *0.5
3
- for classes that set themargin
orpadding
to unit *1
4
- for classes that set themargin
orpadding
to unit *2
And so on.
You can also use negative margins by prending n
to the size such as ml-n2
.
Install plugin.
npm i -D @daltontan/postcss-spacing
Add to you PostCSS config:
module.exports = {
plugins: [
require('@daltontan/postcss-spacing'),
]
}
Add to your CSS file:
@generate-spacing();
The argument is important because cssnano will remove it if it does not have an argument.
Options can be set from postcss or from the at-rule.
Default: 0.25
The base unit that will be used to calculate sizes for every subsequent increase in spacing.
Default: 0
The unit size to start from. Set to negative number to generate negative margins.
Default: 4
The highest unit size to generate. Increasing this will generate more classes with exponentially increasing size.