// Margin Syntax // ============= // Pre // --- // Add spanning-margins before an element. // - $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); $width : if($split, span($span) + gutter($span), span($span)); @include susy-inspect(pre, $inspect); @include margin-output($width, null, $flow); } // Post // ---- // Add spanning-margins after an element. // - $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 : @mixin push( $span ) { @include pre($span); } // Pull // ---- // Add negative spanning-margins before an element. // - $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 : // - [$post] : @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); }