// Padding Syntax // ==============

// Prefix // —— // Add spanning-padding before an element. // - $span : <span> @mixin prefix(

$span

) {

$inspect  : $span;
$span     : map-merge((spread: wide), parse-span($span));
$flow     : susy-get(flow, $span);
$width    : span($span);

@if is-inside($span) {
  $gutter: gutter($span);
  $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width);
}

@include susy-inspect(prefix, $inspect);
@include padding-output($width, null, $flow);

}

// Suffix // —— // Add spanning-padding after an element. // - $span : <span> @mixin suffix(

$span

) {

$inspect  : $span;
$span     : map-merge((spread: wide), parse-span($span));
$flow     : susy-get(flow, $span);
$width    : span($span);

@if is-inside($span) {
  $gutter: gutter($span);
  $width: if($gutter and comparable($width, $gutter), $width + $gutter, $width);
}

@include susy-inspect(suffix, $inspect);
@include padding-output(null, $width, $flow);

}

// Pad // — // Add spanning-padding before and after an element. // - $pre : <span> // - [$post] : <span> @mixin pad(

$pre,
$post: false

) {

$inspect  : ($pre, $post);
$pre      : map-merge((spread: wide), parse-span($pre));

@if $post {
  $post: map-merge((spread: wide), parse-span($post));
} @else {
  $span: susy-get(span, $pre);
  @if length($span) > 1 {
    $pre: map-merge($pre, (span: nth($span, 1)));
    $post: map-merge($pre, (span: nth($span, 2)));
  } @else {
    $post: $pre;
  }
}

@include susy-inspect(pad, $inspect);
@include prefix($pre);
@include suffix($post);

}