$spacing: 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100;
$unit: px; // Modify this to specify your unit eg: em, pt, %.

$directions: (
  l: left,
  t: top,
  r: right,
  b: bottom,
  v: top,
  h: left,
);
@mixin generateSpacing($prop, $short) {
  @each $space in $spacing {
    .#{$short}a-#{$space} {
      #{$prop}: $space + $unit + ' !important';
    }
    @each $key, $val in $directions {
      .#{$short}#{$key}-#{$space} {
        #{$prop}-#{$val}: $space + $unit + ' !important';
        @if $key == v {
          #{$prop}-bottom: $space + $unit + ' !important';
        }
        @if $key == h {
          #{$prop}-right: $space + $unit + ' !important';
        }
      }
    }
  }
}

@include generateSpacing(padding, p);
@include generateSpacing(margin, m);
