Mercurial > nebulaweb3
diff default/assets/scss/vendors/bourbon/utilities/_collapse-directionals.scss @ 0:1d038bc9b3d2 default tip
Up:default
author | Liny <dev@neowd.com> |
---|---|
date | Sat, 31 May 2025 09:21:51 +0800 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/default/assets/scss/vendors/bourbon/utilities/_collapse-directionals.scss Sat May 31 09:21:51 2025 +0800 @@ -0,0 +1,51 @@ +@charset "UTF-8"; + +// scss-lint:disable ElsePlacement + +/// Directional-property mixins are shorthands for writing properties like +/// the following. +/// +/// @ignore You can also use `false` instead of `null`. +/// +/// @argument {list} $values +/// List of directional values. +/// +/// @example scss +/// .element { +/// @include border-style(dotted null); +/// @include margin(null 0 10px); +/// } +/// +/// // CSS Output +/// .element { +/// border-bottom-style: dotted; +/// border-top-style: dotted; +/// margin-bottom: 10px; +/// margin-left: 0; +/// margin-right: 0; +/// } +/// +/// @return {list} +/// +/// @access private + +@function _collapse-directionals($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; +}