.is-marginless
  margin: 0 !important

.is-paddingless
  padding: 0 !important

$spacing-shortcuts: ("margin": "m", "padding": "p") !default
$spacing-directions: ("top": "t", "right": "r", "bottom": "b", "left": "l") !default
$spacing-horizontal: "x" !default
$spacing-vertical: "y" !default
$spacing-values: ("0": 0, "1": 0.25rem, "2": 0.5rem, "3": 0.75rem, "4": 1rem, "5": 1.5rem, "6": 3rem, "auto": auto) !default

@each $property, $shortcut in $spacing-shortcuts
  @each $name, $value in $spacing-values
    // All directions
    .#{$shortcut}-#{$name}
      #{$property}: $value !important
    // Cardinal directions
    @each $direction, $suffix in $spacing-directions
      .#{$shortcut}#{$suffix}-#{$name}
        #{$property}-#{$direction}: $value !important
    // Horizontal axis
    @if $spacing-horizontal != null
      .#{$shortcut}#{$spacing-horizontal}-#{$name}
        #{$property}-left: $value !important
        #{$property}-right: $value !important
    // Vertical axis
    @if $spacing-vertical != null
      .#{$shortcut}#{$spacing-vertical}-#{$name}
        #{$property}-top: $value !important
        #{$property}-bottom: $value !important