// Gutter Syntax // =============
// Gutters // ——- // Set gutters on an element. // - [$span] : <settings> @mixin gutters(
$span: $susy
) {
$inspect : $span; $span : parse-gutters($span); $_gutters : get-gutters($span); $_output: ( before: map-get($_gutters, before), after: map-get($_gutters, after), flow: susy-get(flow, $span), ); @include susy-inspect(gutters, $inspect); @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] : <settings> @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]: <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); $_math: gutter-math($context); @if $_math == static { $_gutter: $_gutters * valid-column-math($_math, $_column-width); } @else { $_columns : susy-get(columns, $context); $_spread : if(is-split($context), wide, susy-get(spread, $context)); $_gutter : percentage($_gutters / susy-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]: <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: <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: <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: <context> @function gutter-math(
$context: $susy
) {
$_return : susy-get(math, $context); $_return : if(susy-get(gutter-position, $context) == inside-static, static, $_return); @return $_return;
}