website

The files for mattfehrenbach.xyz, a fork of a template.
git clone git://git.mattfehrenbach.xyz/website.git
Log | Files | Refs | LICENSE

_functions.scss (1957B)


      1 /// Removes a specific item from a list.
      2 /// @author Hugo Giraudel
      3 /// @param {list} $list List.
      4 /// @param {integer} $index Index.
      5 /// @return {list} Updated list.
      6 @function remove-nth($list, $index) {
      7 
      8 	$result: null;
      9 
     10 	@if type-of($index) != number {
     11 		@warn "$index: #{quote($index)} is not a number for `remove-nth`.";
     12 	}
     13 	@else if $index == 0 {
     14 		@warn "List index 0 must be a non-zero integer for `remove-nth`.";
     15 	}
     16 	@else if abs($index) > length($list) {
     17 		@warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
     18 	}
     19 	@else {
     20 
     21 		$result: ();
     22 		$index: if($index < 0, length($list) + $index + 1, $index);
     23 
     24 		@for $i from 1 through length($list) {
     25 
     26 			@if $i != $index {
     27 				$result: append($result, nth($list, $i));
     28 			}
     29 
     30 		}
     31 
     32 	}
     33 
     34 	@return $result;
     35 
     36 }
     37 
     38 /// Gets a value from a map.
     39 /// @author Hugo Giraudel
     40 /// @param {map} $map Map.
     41 /// @param {string} $keys Key(s).
     42 /// @return {string} Value.
     43 @function val($map, $keys...) {
     44 
     45 	@if nth($keys, 1) == null {
     46 		$keys: remove-nth($keys, 1);
     47 	}
     48 
     49 	@each $key in $keys {
     50 		$map: map-get($map, $key);
     51 	}
     52 
     53 	@return $map;
     54 
     55 }
     56 
     57 /// Gets a duration value.
     58 /// @param {string} $keys Key(s).
     59 /// @return {string} Value.
     60 @function _duration($keys...) {
     61 	@return val($duration, $keys...);
     62 }
     63 
     64 /// Gets a font value.
     65 /// @param {string} $keys Key(s).
     66 /// @return {string} Value.
     67 @function _font($keys...) {
     68 	@return val($font, $keys...);
     69 }
     70 
     71 /// Gets a misc value.
     72 /// @param {string} $keys Key(s).
     73 /// @return {string} Value.
     74 @function _misc($keys...) {
     75 	@return val($misc, $keys...);
     76 }
     77 
     78 /// Gets a palette value.
     79 /// @param {string} $keys Key(s).
     80 /// @return {string} Value.
     81 @function _palette($keys...) {
     82 	@return val($palette, $keys...);
     83 }
     84 
     85 /// Gets a size value.
     86 /// @param {string} $keys Key(s).
     87 /// @return {string} Value.
     88 @function _size($keys...) {
     89 	@return val($size, $keys...);
     90 }