Flex
Commonly used flex display property utilities with module mixins for responsive modifiers.
Utilities (anchor)
Utility class | Property values |
---|---|
.flex | display: flex |
.flex-inline | display: inline-flex |
.flex-row | flex-direction: row |
.flex-column | flex-direction: column |
.flex-wrap | flex-wrap: wrap |
.flex-nowrap | flex-wrap: nowrap |
.flex-grow-0 | flex-grow: 0 |
.flex-grow-1 | flex-grow: 1 |
.flex-shrink-0 | flex-shrink: 0 |
.flex-shrink-1 | flex-shrink: 1 |
Responsive mixins (anchor)
Responsive modifier mixins are provided to include where required in custom breakpoints, the utilities available use the following modifier class naming convention:
.flex
.flex-xxl
.flex-xl
.flex-lg
.flex-md
.flex-sm
.flex-xs
.flex-xxs
Using the module (anchor)
To use the module load the StyleMods scss
directory as follows (changing the path to suit the source files location as required) then include the Sass mixin anywhere below.
custom.scss
@use "stylemods/scss" as *;
@include flex-css;
// Example breakpoint
@media (max-width: 480px) {
@include flex-sm-css;
}
Source code (anchor)
flex.scss
// ------------------------------------------------------------
// Flex
// ------------------------------------------------------------
$flex-display: (
"flex": flex,
"flex-inline": inline-flex,
) !default;
$flex-direction: (
"flex-row": row,
"flex-column": column,
) !default;
$flex-wrap: (
"flex-wrap": wrap,
"flex-nowrap": nowrap,
) !default;
$flex-grow: (
"flex-grow-0": 0,
"flex-grow-1": 1,
) !default;
$flex-shrink: (
"flex-shrink-0": 0,
"flex-shrink-1": 1,
) !default;
@mixin flex-css {
@each $name, $value in $flex-display {
.#{$name} {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name} {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name} {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name} {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name} {
flex-shrink: #{$value};
}
}
}
// XXL
@mixin flex-xxl-css {
@each $name, $value in $flex-display {
.#{$name}-xxl {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name}-xxl {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name}-xxl {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name}-xxl {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name}-xxl {
flex-shrink: #{$value};
}
}
}
// XL
@mixin flex-xl-css {
@each $name, $value in $flex-display {
.#{$name}-xl {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name}-xl {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name}-xl {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name}-xl {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name}-xl {
flex-shrink: #{$value};
}
}
}
// LG
@mixin flex-lg-css {
@each $name, $value in $flex-display {
.#{$name}-lg {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name}-lg {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name}-lg {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name}-lg {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name}-lg {
flex-shrink: #{$value};
}
}
}
// MD
@mixin flex-md-css {
@each $name, $value in $flex-display {
.#{$name}-md {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name}-md {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name}-md {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name}-md {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name}-md {
flex-shrink: #{$value};
}
}
}
// SM
@mixin flex-sm-css {
@each $name, $value in $flex-display {
.#{$name}-sm {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name}-sm {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name}-sm {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name}-sm {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name}-sm {
flex-shrink: #{$value};
}
}
}
// XS
@mixin flex-xs-css {
@each $name, $value in $flex-display {
.#{$name}-xs {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name}-xs {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name}-xs {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name}-xs {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name}-xs {
flex-shrink: #{$value};
}
}
}
// XXS
@mixin flex-xxs-css {
@each $name, $value in $flex-display {
.#{$name}-xxs {
display: #{$value};
}
}
@each $name, $value in $flex-direction {
.#{$name}-xxs {
flex-direction: #{$value};
}
}
@each $name, $value in $flex-wrap {
.#{$name}-xxs {
flex-wrap: #{$value};
}
}
@each $name, $value in $flex-grow {
.#{$name}-xxs {
flex-grow: #{$value};
}
}
@each $name, $value in $flex-shrink {
.#{$name}-xxs {
flex-shrink: #{$value};
}
}
}