// Gutter Syntax // ============= // Gutters // ------- // Set gutters on an element. // - [$span] : @mixin gutters( $span: $susy ) { $span: parse-gutters($span); $gutters: get-gutters($span); $output: ( before: map-get($gutters, before), after: map-get($gutters, after), flow: susy-get(flow, $span), ); @if is-inside($span) { @include padding-output($output...); } @else { @include margin-output($output...); } } @mixin gutter( $span: $susy ) { @include gutters($span); } // Gutter // ------ // Return the width of a gutter. // - [$span] : @function gutter( $span: $susy ) { $span: parse-gutters($span); $gutters: get-gutters($span); $gutters: map-get($gutters, before) or map-get($gutters, after); @return $gutters; } @function gutters( $span: $susy ) { @return gutter($span); } // Get Gutter Width // ---------------- // Return gutter width. // - [$context]: @function get-gutter-width( $context: $susy ) { $context : parse-gutters($context); $gutters : susy-get(gutters, $context); $gutter : susy-get(gutter-override, $context); @if $gutters and ($gutters > 0) and not $gutter { $column-width: susy-get(column-width, $context); @if $column-width and gutter-math($context) == static { $gutter: $gutters * $column-width; } @else { $columns : susy-get(columns, $context); $spread : if(is-split($context), wide, susy-get(spread, $context)); $gutter : percentage($gutters / column-sum($columns, $gutters, $spread)); } } $gutter: if($gutter == 'no-gutters' or $gutter == 'no-gutter', null, $gutter); @return $gutter; } // Get Gutters // ----------- // Return before and after gutter values. // - [$context]: @function get-gutters( $context: $susy ) { $context : parse-gutters($context); $gutter-position : susy-get(gutter-position, $context); $gutter : get-gutter-width($context); $return : (before: null, after: null); @if is-split($context) and $gutter { $gutter: $gutter / 2; $return: map-merge($return, (before: $gutter, after: $gutter)); } @else { $return: map-merge($return, ($gutter-position: $gutter)); } @return $return; } // Is Inside // --------- // Returns true if gutters are inside. // $context: @function is-inside( $context ) { $inside: inside inside-static; $gutter-position: susy-get(gutter-position, $context); @return if(index($inside, $gutter-position), true, false); } // Is Split // -------- // Returns true if gutters are split. // $context: @function is-split( $context ) { $split: split inside inside-static; $gutter-position: susy-get(gutter-position, $context); @return if(index($split, $gutter-position), true, false); } // Gutter Math // ----------- // Return the math to use for gutter calculations // $context: @function gutter-math( $context: $susy ) { $return : susy-get(math, $context); $return : if(susy-get(gutter-position, $context) == inside-static, static, $return); @return $return; }