80 lines
1.7 KiB
SCSS
80 lines
1.7 KiB
SCSS
@import "variables";
|
|
|
|
/* Base */
|
|
@function bool($value: false) {
|
|
@if $value == false
|
|
or $value == ""
|
|
or $value == "false"
|
|
or $value == 'false'
|
|
or $value == 0
|
|
or $value == null {
|
|
@return false;
|
|
}
|
|
@return true;
|
|
}
|
|
|
|
/// Slightly lighten a color
|
|
/// @access public
|
|
/// @param {Color} $color - color to tint
|
|
/// @param {Number} $percentage - percentage of `$color` in returned color
|
|
/// @return {Color}
|
|
@function tint($color, $percentage) {
|
|
@return mix(white, $color, $percentage);
|
|
}
|
|
|
|
/// Slightly darken a color
|
|
/// @access public
|
|
/// @param {Color} $color - color to shade
|
|
/// @param {Number} $percentage - percentage of `$color` in returned color
|
|
/// @return {Color}
|
|
@function shade($color, $percentage) {
|
|
@return mix(black, $color, $percentage);
|
|
}
|
|
|
|
/* Theme */
|
|
@function theme-filter($map, $included: (), $excluded: ()) {
|
|
$filtered: ();
|
|
|
|
@if $included == () {
|
|
$included: map-keys($map);
|
|
}
|
|
|
|
@each $key in $included {
|
|
@if not map-has-key($map, $key) {
|
|
@error 'There is no `#{$key}` class in your variations list.';
|
|
}
|
|
|
|
@if not index($excluded, $key) {
|
|
$filtered: append($filtered, $key, 'comma');
|
|
}
|
|
}
|
|
|
|
@return $filtered;
|
|
}
|
|
|
|
@function theme-get($key) {
|
|
$value: map-get($theme-map, $key);
|
|
|
|
@if not $value {
|
|
@error 'The entity `#{$entity}` doesn\'t have a value for `#{$key}`.';
|
|
}
|
|
|
|
@return $value;
|
|
}
|
|
|
|
@function theme-pull($key, $entity: $theme-loop-entity, $map: $themes) {
|
|
$entity-map: map-get($map, $entity);
|
|
|
|
@if not $entity-map {
|
|
@error 'There is no `#{$entity}` entity in your variations list.';
|
|
}
|
|
|
|
$value: map-get($entity-map, $key);
|
|
|
|
@if not $value {
|
|
@error 'The entity `#{$entity}` doesn\'t have a value for `#{$key}`.';
|
|
}
|
|
|
|
@return $value;
|
|
}
|