// Margin Syntax // =============
// Pre // — // Add spanning-margins before an element. // - $span : <span> @mixin pre(
$span
) {
$inspect: $span; $span : map-merge((spread: wide), parse-span($span)); $flow : susy-get(flow, $span); $split : if(susy-get(gutter-position, $span) == split, true, false); $gutter : gutter($span); $span : span($span); $width : if($split and $gutter, $span + $gutter, $span); @include susy-inspect(pre, $inspect); @include margin-output($width, null, $flow);
}
// Post // —- // Add spanning-margins after an element. // - $span : <span> @mixin post(
$span
) {
$inspect : $span; $span : map-merge((spread: wide), parse-span($span)); $flow : susy-get(flow, $span); $split : if(susy-get(gutter-position, $span) == split, true, false); $width : if($split, span($span) + gutter($span), span($span)); @include susy-inspect(post, $inspect); @include margin-output(null, $width, $flow);
}
// Push // —- // Simple synonymn for pre. // - $span : <span> @mixin push(
$span
) {
@include pre($span);
}
// Pull // —- // Add negative spanning-margins before an element. // - $span : <span> @mixin pull(
$span
) {
$inspect : $span; $span : map-merge((spread: wide), parse-span($span)); $flow : susy-get(flow, $span); $split : if(susy-get(gutter-position, $span) == split, true, false); $width : if($split, 0 - span($span) + gutter($span), 0 - span($span)); @include susy-inspect(pull, $inspect); @include margin-output($width, null, $flow);
}
// Squish // —— // Add spanning-margins before and after an element. // - $pre : <span> // - [$post] : <span> @mixin squish(
$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(squish, $inspect); @include pre($pre); @include post($post);
}