43 lines
909 B
SCSS
43 lines
909 B
SCSS
@charset "UTF-8";
|
|
|
|
/// Transforms shorthand to its shortest possible form.
|
|
///
|
|
/// @argument {list} $values
|
|
/// List of directional values.
|
|
///
|
|
/// @example scss
|
|
/// $values: _compact-shorthand(10px 20px 10px 20px);
|
|
///
|
|
/// // Output
|
|
/// $values: 10px 20px;
|
|
///
|
|
/// @return {list}
|
|
///
|
|
/// @access private
|
|
|
|
@function _compact-shorthand($values) {
|
|
$output: null;
|
|
|
|
$a: nth($values, 1);
|
|
$b: if(length($values) < 2, $a, nth($values, 2));
|
|
$c: if(length($values) < 3, $a, nth($values, 3));
|
|
$d: if(length($values) < 2, $a, nth($values, if(length($values) < 4, 2, 4)));
|
|
|
|
@if $a == 0 { $a: 0; }
|
|
@if $b == 0 { $b: 0; }
|
|
@if $c == 0 { $c: 0; }
|
|
@if $d == 0 { $d: 0; }
|
|
|
|
@if $a == $b and $a == $c and $a == $d {
|
|
$output: $a;
|
|
} @else if $a == $c and $b == $d {
|
|
$output: $a $b;
|
|
} @else if $b == $d {
|
|
$output: $a $b $c;
|
|
} @else {
|
|
$output: $a $b $c $d;
|
|
}
|
|
|
|
@return $output;
|
|
}
|