-
-
Save hougasian/63b519f6d74674087de5dcdac5ad7861 to your computer and use it in GitHub Desktop.
Generated by SassMeister.com.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ---- | |
// libsass (v3.5.4) | |
// ---- | |
// padding and margin | |
$spacer: 1rem; | |
$spacers: ( | |
0: 0, | |
1: ($spacer * .25), | |
2: ($spacer * .5), | |
3: $spacer, | |
4: ($spacer * 2), | |
5: ($spacer * 3), | |
6: ($spacer * 4.5), | |
7: ($spacer * 6.5) | |
); | |
$xy-border: ( | |
top: t, | |
bottom: b, | |
left: l, | |
right: r | |
); | |
// set solid borders | |
@each $direction in $xy-border { | |
.border-#{nth($direction, 1)} { | |
border-#{nth($direction, 1)}: 1px solid; | |
border-color: grey; | |
} | |
} | |
// padding and spacers | |
@each $prop, $letter in (margin: m, padding: p) { | |
@each $direction, $d in $xy-border { | |
@each $unit, $rem in $spacers { | |
.#{$letter}#{$d}-#{$unit} { | |
#{$prop}-#{$direction}: #{$rem}; | |
} | |
.#{$letter}x-#{$unit} { | |
#{$prop}: 0 $rem; | |
} | |
.#{$letter}y-#{$unit} { | |
#{$prop}: $rem 0; | |
} | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.border-top { | |
border-top: 1px solid; | |
border-color: grey; | |
} | |
.border-bottom { | |
border-bottom: 1px solid; | |
border-color: grey; | |
} | |
.border-left { | |
border-left: 1px solid; | |
border-color: grey; | |
} | |
.border-right { | |
border-right: 1px solid; | |
border-color: grey; | |
} | |
.mt-0 { | |
margin-top: 0; | |
} | |
.mx-0 { | |
margin: 0 0; | |
} | |
.my-0 { | |
margin: 0 0; | |
} | |
.mt-1 { | |
margin-top: 0.25rem; | |
} | |
.mx-1 { | |
margin: 0 0.25rem; | |
} | |
.my-1 { | |
margin: 0.25rem 0; | |
} | |
.mt-2 { | |
margin-top: 0.5rem; | |
} | |
.mx-2 { | |
margin: 0 0.5rem; | |
} | |
.my-2 { | |
margin: 0.5rem 0; | |
} | |
.mt-3 { | |
margin-top: 1rem; | |
} | |
.mx-3 { | |
margin: 0 1rem; | |
} | |
.my-3 { | |
margin: 1rem 0; | |
} | |
.mt-4 { | |
margin-top: 2rem; | |
} | |
.mx-4 { | |
margin: 0 2rem; | |
} | |
.my-4 { | |
margin: 2rem 0; | |
} | |
.mt-5 { | |
margin-top: 3rem; | |
} | |
.mx-5 { | |
margin: 0 3rem; | |
} | |
.my-5 { | |
margin: 3rem 0; | |
} | |
.mt-6 { | |
margin-top: 4.5rem; | |
} | |
.mx-6 { | |
margin: 0 4.5rem; | |
} | |
.my-6 { | |
margin: 4.5rem 0; | |
} | |
.mt-7 { | |
margin-top: 6.5rem; | |
} | |
.mx-7 { | |
margin: 0 6.5rem; | |
} | |
.my-7 { | |
margin: 6.5rem 0; | |
} | |
.mb-0 { | |
margin-bottom: 0; | |
} | |
.mx-0 { | |
margin: 0 0; | |
} | |
.my-0 { | |
margin: 0 0; | |
} | |
.mb-1 { | |
margin-bottom: 0.25rem; | |
} | |
.mx-1 { | |
margin: 0 0.25rem; | |
} | |
.my-1 { | |
margin: 0.25rem 0; | |
} | |
.mb-2 { | |
margin-bottom: 0.5rem; | |
} | |
.mx-2 { | |
margin: 0 0.5rem; | |
} | |
.my-2 { | |
margin: 0.5rem 0; | |
} | |
.mb-3 { | |
margin-bottom: 1rem; | |
} | |
.mx-3 { | |
margin: 0 1rem; | |
} | |
.my-3 { | |
margin: 1rem 0; | |
} | |
.mb-4 { | |
margin-bottom: 2rem; | |
} | |
.mx-4 { | |
margin: 0 2rem; | |
} | |
.my-4 { | |
margin: 2rem 0; | |
} | |
.mb-5 { | |
margin-bottom: 3rem; | |
} | |
.mx-5 { | |
margin: 0 3rem; | |
} | |
.my-5 { | |
margin: 3rem 0; | |
} | |
.mb-6 { | |
margin-bottom: 4.5rem; | |
} | |
.mx-6 { | |
margin: 0 4.5rem; | |
} | |
.my-6 { | |
margin: 4.5rem 0; | |
} | |
.mb-7 { | |
margin-bottom: 6.5rem; | |
} | |
.mx-7 { | |
margin: 0 6.5rem; | |
} | |
.my-7 { | |
margin: 6.5rem 0; | |
} | |
.ml-0 { | |
margin-left: 0; | |
} | |
.mx-0 { | |
margin: 0 0; | |
} | |
.my-0 { | |
margin: 0 0; | |
} | |
.ml-1 { | |
margin-left: 0.25rem; | |
} | |
.mx-1 { | |
margin: 0 0.25rem; | |
} | |
.my-1 { | |
margin: 0.25rem 0; | |
} | |
.ml-2 { | |
margin-left: 0.5rem; | |
} | |
.mx-2 { | |
margin: 0 0.5rem; | |
} | |
.my-2 { | |
margin: 0.5rem 0; | |
} | |
.ml-3 { | |
margin-left: 1rem; | |
} | |
.mx-3 { | |
margin: 0 1rem; | |
} | |
.my-3 { | |
margin: 1rem 0; | |
} | |
.ml-4 { | |
margin-left: 2rem; | |
} | |
.mx-4 { | |
margin: 0 2rem; | |
} | |
.my-4 { | |
margin: 2rem 0; | |
} | |
.ml-5 { | |
margin-left: 3rem; | |
} | |
.mx-5 { | |
margin: 0 3rem; | |
} | |
.my-5 { | |
margin: 3rem 0; | |
} | |
.ml-6 { | |
margin-left: 4.5rem; | |
} | |
.mx-6 { | |
margin: 0 4.5rem; | |
} | |
.my-6 { | |
margin: 4.5rem 0; | |
} | |
.ml-7 { | |
margin-left: 6.5rem; | |
} | |
.mx-7 { | |
margin: 0 6.5rem; | |
} | |
.my-7 { | |
margin: 6.5rem 0; | |
} | |
.mr-0 { | |
margin-right: 0; | |
} | |
.mx-0 { | |
margin: 0 0; | |
} | |
.my-0 { | |
margin: 0 0; | |
} | |
.mr-1 { | |
margin-right: 0.25rem; | |
} | |
.mx-1 { | |
margin: 0 0.25rem; | |
} | |
.my-1 { | |
margin: 0.25rem 0; | |
} | |
.mr-2 { | |
margin-right: 0.5rem; | |
} | |
.mx-2 { | |
margin: 0 0.5rem; | |
} | |
.my-2 { | |
margin: 0.5rem 0; | |
} | |
.mr-3 { | |
margin-right: 1rem; | |
} | |
.mx-3 { | |
margin: 0 1rem; | |
} | |
.my-3 { | |
margin: 1rem 0; | |
} | |
.mr-4 { | |
margin-right: 2rem; | |
} | |
.mx-4 { | |
margin: 0 2rem; | |
} | |
.my-4 { | |
margin: 2rem 0; | |
} | |
.mr-5 { | |
margin-right: 3rem; | |
} | |
.mx-5 { | |
margin: 0 3rem; | |
} | |
.my-5 { | |
margin: 3rem 0; | |
} | |
.mr-6 { | |
margin-right: 4.5rem; | |
} | |
.mx-6 { | |
margin: 0 4.5rem; | |
} | |
.my-6 { | |
margin: 4.5rem 0; | |
} | |
.mr-7 { | |
margin-right: 6.5rem; | |
} | |
.mx-7 { | |
margin: 0 6.5rem; | |
} | |
.my-7 { | |
margin: 6.5rem 0; | |
} | |
.pt-0 { | |
padding-top: 0; | |
} | |
.px-0 { | |
padding: 0 0; | |
} | |
.py-0 { | |
padding: 0 0; | |
} | |
.pt-1 { | |
padding-top: 0.25rem; | |
} | |
.px-1 { | |
padding: 0 0.25rem; | |
} | |
.py-1 { | |
padding: 0.25rem 0; | |
} | |
.pt-2 { | |
padding-top: 0.5rem; | |
} | |
.px-2 { | |
padding: 0 0.5rem; | |
} | |
.py-2 { | |
padding: 0.5rem 0; | |
} | |
.pt-3 { | |
padding-top: 1rem; | |
} | |
.px-3 { | |
padding: 0 1rem; | |
} | |
.py-3 { | |
padding: 1rem 0; | |
} | |
.pt-4 { | |
padding-top: 2rem; | |
} | |
.px-4 { | |
padding: 0 2rem; | |
} | |
.py-4 { | |
padding: 2rem 0; | |
} | |
.pt-5 { | |
padding-top: 3rem; | |
} | |
.px-5 { | |
padding: 0 3rem; | |
} | |
.py-5 { | |
padding: 3rem 0; | |
} | |
.pt-6 { | |
padding-top: 4.5rem; | |
} | |
.px-6 { | |
padding: 0 4.5rem; | |
} | |
.py-6 { | |
padding: 4.5rem 0; | |
} | |
.pt-7 { | |
padding-top: 6.5rem; | |
} | |
.px-7 { | |
padding: 0 6.5rem; | |
} | |
.py-7 { | |
padding: 6.5rem 0; | |
} | |
.pb-0 { | |
padding-bottom: 0; | |
} | |
.px-0 { | |
padding: 0 0; | |
} | |
.py-0 { | |
padding: 0 0; | |
} | |
.pb-1 { | |
padding-bottom: 0.25rem; | |
} | |
.px-1 { | |
padding: 0 0.25rem; | |
} | |
.py-1 { | |
padding: 0.25rem 0; | |
} | |
.pb-2 { | |
padding-bottom: 0.5rem; | |
} | |
.px-2 { | |
padding: 0 0.5rem; | |
} | |
.py-2 { | |
padding: 0.5rem 0; | |
} | |
.pb-3 { | |
padding-bottom: 1rem; | |
} | |
.px-3 { | |
padding: 0 1rem; | |
} | |
.py-3 { | |
padding: 1rem 0; | |
} | |
.pb-4 { | |
padding-bottom: 2rem; | |
} | |
.px-4 { | |
padding: 0 2rem; | |
} | |
.py-4 { | |
padding: 2rem 0; | |
} | |
.pb-5 { | |
padding-bottom: 3rem; | |
} | |
.px-5 { | |
padding: 0 3rem; | |
} | |
.py-5 { | |
padding: 3rem 0; | |
} | |
.pb-6 { | |
padding-bottom: 4.5rem; | |
} | |
.px-6 { | |
padding: 0 4.5rem; | |
} | |
.py-6 { | |
padding: 4.5rem 0; | |
} | |
.pb-7 { | |
padding-bottom: 6.5rem; | |
} | |
.px-7 { | |
padding: 0 6.5rem; | |
} | |
.py-7 { | |
padding: 6.5rem 0; | |
} | |
.pl-0 { | |
padding-left: 0; | |
} | |
.px-0 { | |
padding: 0 0; | |
} | |
.py-0 { | |
padding: 0 0; | |
} | |
.pl-1 { | |
padding-left: 0.25rem; | |
} | |
.px-1 { | |
padding: 0 0.25rem; | |
} | |
.py-1 { | |
padding: 0.25rem 0; | |
} | |
.pl-2 { | |
padding-left: 0.5rem; | |
} | |
.px-2 { | |
padding: 0 0.5rem; | |
} | |
.py-2 { | |
padding: 0.5rem 0; | |
} | |
.pl-3 { | |
padding-left: 1rem; | |
} | |
.px-3 { | |
padding: 0 1rem; | |
} | |
.py-3 { | |
padding: 1rem 0; | |
} | |
.pl-4 { | |
padding-left: 2rem; | |
} | |
.px-4 { | |
padding: 0 2rem; | |
} | |
.py-4 { | |
padding: 2rem 0; | |
} | |
.pl-5 { | |
padding-left: 3rem; | |
} | |
.px-5 { | |
padding: 0 3rem; | |
} | |
.py-5 { | |
padding: 3rem 0; | |
} | |
.pl-6 { | |
padding-left: 4.5rem; | |
} | |
.px-6 { | |
padding: 0 4.5rem; | |
} | |
.py-6 { | |
padding: 4.5rem 0; | |
} | |
.pl-7 { | |
padding-left: 6.5rem; | |
} | |
.px-7 { | |
padding: 0 6.5rem; | |
} | |
.py-7 { | |
padding: 6.5rem 0; | |
} | |
.pr-0 { | |
padding-right: 0; | |
} | |
.px-0 { | |
padding: 0 0; | |
} | |
.py-0 { | |
padding: 0 0; | |
} | |
.pr-1 { | |
padding-right: 0.25rem; | |
} | |
.px-1 { | |
padding: 0 0.25rem; | |
} | |
.py-1 { | |
padding: 0.25rem 0; | |
} | |
.pr-2 { | |
padding-right: 0.5rem; | |
} | |
.px-2 { | |
padding: 0 0.5rem; | |
} | |
.py-2 { | |
padding: 0.5rem 0; | |
} | |
.pr-3 { | |
padding-right: 1rem; | |
} | |
.px-3 { | |
padding: 0 1rem; | |
} | |
.py-3 { | |
padding: 1rem 0; | |
} | |
.pr-4 { | |
padding-right: 2rem; | |
} | |
.px-4 { | |
padding: 0 2rem; | |
} | |
.py-4 { | |
padding: 2rem 0; | |
} | |
.pr-5 { | |
padding-right: 3rem; | |
} | |
.px-5 { | |
padding: 0 3rem; | |
} | |
.py-5 { | |
padding: 3rem 0; | |
} | |
.pr-6 { | |
padding-right: 4.5rem; | |
} | |
.px-6 { | |
padding: 0 4.5rem; | |
} | |
.py-6 { | |
padding: 4.5rem 0; | |
} | |
.pr-7 { | |
padding-right: 6.5rem; | |
} | |
.px-7 { | |
padding: 0 6.5rem; | |
} | |
.py-7 { | |
padding: 6.5rem 0; | |
} |
thanks for posting @PauliCZ44
i forgot about this gist; the production code for this changed years ago 😀
Handy gist. Using @PauliCZ44's update, I added negative margin classes that follow Bootstrap 5's naming convention:
$spacers: (
1: ($spacer * .25),
2: ($spacer * .5),
3: $spacer,
4: ($spacer * 2),
5: ($spacer * 3),
);
$negative-spacers: (
1: ($spacer * -.25),
2: ($spacer * -.5),
3: ($spacer * -1),
4: ($spacer * -2),
5: ($spacer * -3),
);
$xy-border: ( top: t, right: r, bottom: b, left: l );
// padding and margin classes
@each $prop, $letter in (margin: m, padding: p) {
@each $unit, $rem in $spacers {
// For x and y is it sufficient to loop on this level.
.#{$letter}x-#{$unit} {
#{$prop}: 0 $rem;
}
.#{$letter}y-#{$unit} {
#{$prop}: $rem 0;
}
@each $direction, $d in $xy-border {
.#{$letter}#{$d}-#{$unit} {
#{$prop}-#{$direction}: #{$rem};
}
}
}
}
// negative margin classes
@each $prop, $letter in (margin: m) {
@each $unit, $rem in $negative-spacers {
// For x and y is it sufficient to loop on this level.
.#{$letter}x-n#{$unit} {
#{$prop}: 0 $rem;
}
.#{$letter}y-n#{$unit} {
#{$prop}: $rem 0;
}
@each $direction, $d in $xy-border {
.#{$letter}#{$d}-n#{$unit} {
#{$prop}-#{$direction}: #{$rem};
}
}
}
}
nice @peterankelein 😄
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Problem with this code is that it does produce multiple mx/my and px/py classes. That is because of wrong use of nested loops. Use this code, where i nested loops little bit differently.