Flex

Commonly used flex display property utilities with module mixins for responsive modifiers.

Utilities (anchor)

Flex utilities and property values
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};
    }
  }
}