@function min($value1, $value2: 0) { @if type-of($value1) == list { $min: nth($value1, 1); @if is-null($min) { $min: 0; } @each $item in $value1 { @if is-null($item) { $item: 0; } @if ($item < $min) { $min: $item; } } @return $min; } @else { @if is-null($value1) { $value1: 0; } @if is-null($value2) { $value2: 0; } @if $value1 > $value2 { @return $value2; } @else if $value2 > $value1 { @return $value1; } } @return $value1; } @function max($value1, $value2: 0) { @if type-of($value1) == list { $max: nth($value1, 1); @if is-null($max) { $max: 0; } @each $item in $value1 { @if is-null($item) { $item: 0; } @if ($item > $max) { $max: $item; } } @return $max; } @else { @if is-null($value1) { $value1: 0; } @if is-null($value2) { $value2: 0; } @if $value1 > $value2 { @return $value1; } @else if $value2 > $value1 { @return $value2; } } @return $value1; } @function x($position) { @return parsebox($position, 1); } @function y($position) { @return parsebox($position, 2); } @function before($position) { @return parsebox($position, 1); } @function after($position) { @return parsebox($position, 2); } @function top($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return parsebox($box, 1); } @function right($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return parsebox($box, 2); } @function bottom($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return parsebox($box, 3); } @function left($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return parsebox($box, 4); } @function vertical($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return top($box) + bottom($box); } @function horizontal($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return left($box) + right($box); } @function boxmax($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return max(max(top($box), right($box)), max(bottom($box), left($box))); } @function boxmin($box, $fallbackBox) { @if $box == null { $box: $fallbackBox; } @return min(min(top($box), right($box)), min(bottom($box), left($box))); } @function rotate90($box) { @return left($box) top($box) right($box) bottom($box); } @function rotate180($box) { @return bottom($box) left($box) top($box) right($box); } @function rotate270($box) { @return right($box) bottom($box) left($box) top($box); } @function flip-vertical($box) { @return bottom($box) right($box) top($box) left($box); } @function flip-horizontal($box) { @return top($box) left($box) bottom($box) right($box); } @function rtl($box) { @return top($box) left($box) bottom($box) right($box); } @function rtl-background-position($pos) { $x: parsebox($pos, 1); $new-x: null; @if $x == right or $x == 100% { $new-x: 0; } @else if $x == 0 or $x == left { $new-x: right; } @else { $new-x: $x; } @return $new-x parsebox($pos, 2); } @function nopx ($value) { @if $value == 0 { @return 0; } @return $value / 1px; }