/** * functions * * * * * @author Björn Hase * @license http://opensource.org/licenses/MIT The MIT License * @link https://gitlab.tentakelfabrik.de/tentakelfabrik/crispy * */ /** * px to em, wrapper of toRelatives * * @param {mixed} $values * @param {mixed} $base * @return {rem} */ @function toEm($values, $base: $crispy__font-size) { @return toRelatives($values, 1em, $base); } /** * px to rem, wrapper of toRelatives * * @param {mixed} $values * @param {mixed} $base * @return {rem} */ @function toRem($values, $base: $crispy__font-size) { @return toRelatives($values, 1rem, $base); } /** * values to relative * * @param {mixed} $values * @param {mixed} $unit * @param {mixed} $base * @return {number} */ @function toRelatives($values, $unit, $base: $crispy__font-size) { $results: 0; @if type-of($values) == 'number' { $results: toRelative($values, $base) * $unit; } @else { $results: (); @each $value in $values { @if $value == 0 { $results: append($results, $value); } @else { $results: append($results, toRelative($value, $base) * $unit); } } } @return $results; } /** * to relative * * @param {mixed} $value * @param {mixed} $base * @return {number} */ @function toRelative($value, $base: $crispy__font-size) { @return stripUnit($value) / stripUnit($base); } /** * strip unit from value * * @param {mixed} $value * @return {number} */ @function stripUnit($value) { @return $value / ($value * 0 + 1); } /** * function: z-index * * uses map $crispy__z-index to get value by key * * @author Björn Hase * */ @function zIndex($name) { @if map-has-key($crispy__z-index, $name) { @return map-get($crispy__z-index, $name); } @else { @warn 'There is no item "#{$name}" in this list; choose one of: #{$crispy__z-index}'; @return null; } } /** * * * * @param {[type]} $directions [description] * @return {[type]} [description] * */ @function opposite-direction($directions) { $opposite-directions: (); $direction-map: ( 'top': 'bottom', 'right': 'left', 'bottom': 'top', 'left': 'right', 'center': 'center', 'ltr': 'rtl', 'rtl': 'ltr' ); @each $direction in $directions { $direction: to-lower-case($direction); @if map-has-key($direction-map, $direction) { $opposite-directions: append($opposite-directions, unquote(map-get($direction-map, $direction))); } @else { @warn "No opposite direction can be found for `#{$direction}`. Direction omitted."; } } @return $opposite-directions; }