/**
  Space values to be used for margins, paddings, etc.

  Inspired by posts like:
  * https://medium.com/eightshapes-llc/space-in-design-systems-188bcbae0d62
*/

@function grav-sp-calc($n) {
  $space-base-size: 1rem;
  $space-multiplier: 2;

  $result: $space-base-size;

  @if $n > 0 {
    @for $i from 1 through $n {
      $result: $result * $space-multiplier;
    }
  }
  @else if $n < 0 {
    @for $i from $n through -1 {
      $result: $result / $space-multiplier;
    }
  }

  @return $result;
}


// Global set of one-dimensional space sizes
$grav-sp-xs: grav-sp-calc(-2);
$grav-sp-s: grav-sp-calc(-1);
$grav-sp-m: grav-sp-calc(0);
$grav-sp-l: grav-sp-calc(1);
$grav-sp-xl: grav-sp-calc(2);
$grav-sp-xxl: grav-sp-calc(3);

// Global set of two-dimensional insets (typically used as padding values)
$grav-sp-inset-xs: $grav-sp-xs $grav-sp-xs;
$grav-sp-inset-s: $grav-sp-s $grav-sp-s;
$grav-sp-inset-m: $grav-sp-m $grav-sp-m;
$grav-sp-inset-l: $grav-sp-l $grav-sp-l;

$grav-sp-inset-squished-xs: $grav-sp-xs $grav-sp-s;
$grav-sp-inset-squished-s: $grav-sp-s $grav-sp-m;
$grav-sp-inset-squished-m: $grav-sp-m $grav-sp-l;
$grav-sp-inset-squished-l: $grav-sp-l $grav-sp-xl;
