SU-SWS/decanter

View on GitHub
core/src/scss/utilities/mixins/grid/_responsive-grid-columns.scss

Summary

Maintainability
Test Coverage

///
/// A mixin to create a responsive grid layout.
///
/// @name responsive-su-grid-columns
///
/// @param {map} $grid-map - A sass map with the columns per breakpoint.
/// @param {map} $gutters-map - A complimentary map to the $grid-map.
/// @param {bool} $ie-fix-mobile - Set the mobile breakpoint to block for IE 11.
///
/// @group mixin
@mixin responsive-grid-columns($grid-map: $su-responsive-columns-default, $gutters-map: $su-responsive-gutters-default, $ie-fix-mobile: true) {
  @include display-grid;

  /// Loop through each breakpoint generating the media query and grid.
  @each $breakpoint, $columns in $grid-map {

    /// Media Query is passed in.
    @media #{$breakpoint} {

      /// Add column and row gaps based on the responsive breakpoint sizes.
      /// These gaps increase as screen sizes get larger.
      @include grid-gap(map-get($gutters-map, $breakpoint));

      /// Create the grid.
      @include grid-columns($columns);
    }
  }

  /// IE 11 FIX.
  @if $ie-fix-mobile {
    @include grid-media-only('xs') {
      display: block;
    }
  }
}