
// stylelint-disable declaration-no-important

// Margin and Padding

@each $breakpoint in map-keys($grid-breakpoints) {
    @include media-breakpoint-up($breakpoint) {
      $infix: breakpoint-infix($breakpoint, $grid-breakpoints);

      @each $prop, $abbrev in (margin: m, padding: p) {
        @each $size, $length in $spacers {

          .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length; }
          .#{$abbrev}t#{$infix}-#{$size},
          .#{$abbrev}y#{$infix}-#{$size} {
            #{$prop}-top: $length;
          }
          .#{$abbrev}r#{$infix}-#{$size},
          .#{$abbrev}x#{$infix}-#{$size} {
            #{$prop}-right: $length;
          }
          .#{$abbrev}b#{$infix}-#{$size},
          .#{$abbrev}y#{$infix}-#{$size} {
            #{$prop}-bottom: $length;
          }
          .#{$abbrev}l#{$infix}-#{$size},
          .#{$abbrev}x#{$infix}-#{$size} {
            #{$prop}-left: $length;
          }
        }
      }

      // Some special margin utils
      .m#{$infix}-auto { margin: auto; }
      .mt#{$infix}-auto,
      .my#{$infix}-auto {
        margin-top: auto;
      }
      .mr#{$infix}-auto,
      .mx#{$infix}-auto {
        margin-right: auto;
      }
      .mb#{$infix}-auto,
      .my#{$infix}-auto {
        margin-bottom: auto;
      }
      .ml#{$infix}-auto,
      .mx#{$infix}-auto {
        margin-left: auto;
      }
    }
  }
