Spaces:
Running
Running
/// Removes a specific item from a list. | |
/// @author Hugo Giraudel | |
/// @param {list} $list List. | |
/// @param {integer} $index Index. | |
/// @return {list} Updated list. | |
@function remove-nth($list, $index) { | |
$result: null; | |
@if type-of($index) != number { | |
@warn "$index: #{quote($index)} is not a number for `remove-nth`."; | |
} | |
@else if $index == 0 { | |
@warn "List index 0 must be a non-zero integer for `remove-nth`."; | |
} | |
@else if abs($index) > length($list) { | |
@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`."; | |
} | |
@else { | |
$result: (); | |
$index: if($index < 0, length($list) + $index + 1, $index); | |
@for $i from 1 through length($list) { | |
@if $i != $index { | |
$result: append($result, nth($list, $i)); | |
} | |
} | |
} | |
@return $result; | |
} | |
/// Gets a value from a map. | |
/// @author Hugo Giraudel | |
/// @param {map} $map Map. | |
/// @param {string} $keys Key(s). | |
/// @return {string} Value. | |
@function val($map, $keys...) { | |
@if nth($keys, 1) == null { | |
$keys: remove-nth($keys, 1); | |
} | |
@each $key in $keys { | |
$map: map-get($map, $key); | |
} | |
@return $map; | |
} | |
/// Gets a duration value. | |
/// @param {string} $keys Key(s). | |
/// @return {string} Value. | |
@function _duration($keys...) { | |
@return val($duration, $keys...); | |
} | |
/// Gets a font value. | |
/// @param {string} $keys Key(s). | |
/// @return {string} Value. | |
@function _font($keys...) { | |
@return val($font, $keys...); | |
} | |
/// Gets a misc value. | |
/// @param {string} $keys Key(s). | |
/// @return {string} Value. | |
@function _misc($keys...) { | |
@return val($misc, $keys...); | |
} | |
/// Gets a palette value. | |
/// @param {string} $keys Key(s). | |
/// @return {string} Value. | |
@function _palette($keys...) { | |
@return val($palette, $keys...); | |
} | |
/// Gets a size value. | |
/// @param {string} $keys Key(s). | |
/// @return {string} Value. | |
@function _size($keys...) { | |
@return val($size, $keys...); | |
} |