web-apps/vendor/bootstrap/less/_functions.less
2020-05-21 19:29:40 +03:00

153 lines
4.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Bootstrap functions
//
// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
@plugin "plugins/index.js";
// LESS PORT: This plugin implements a function for returning a list of keys in a map, like Sass
// [`map-keys()`](http://sass-lang.com/documentation/Sass/Script/Functions.html#map_keys-instance_method)
// function.
@plugin "plugins/map-keys.js";
// LESS PORT: This plugin implements `warn()` and `error()` functions like Sass `@warn` and
// `@error`.
@plugin "plugins/logger.js";
// Ascending
// Used to evaluate Sass maps like our grid breakpoints.
//@mixin _assert-ascending($map, $map-name) {
// $prev-key: null;
// $prev-num: null;
// @each $key, $num in $map {
// @if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" {
// // Do nothing
// } @else if not comparable($prev-num, $num) {
// @warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
// } @else if $prev-num >= $num {
// @warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
// }
// $prev-key: $key;
// $prev-num: $num;
// }
//}
// Starts at zero
// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.
//@mixin _assert-starts-at-zero($map) {
// $values: map-values($map);
// $first-value: nth($values, 1);
// @if $first-value != 0 {
// @warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.";
// }
//}
// Replace `$search` with `$replace` in `$string`
// Used on our SVG icon backgrounds for custom forms.
//
// @author Hugo Giraudel
// @param {String} $string - Initial string
// @param {String} $search - Substring to replace
// @param {String} $replace ('') - New value
// @return {String} - Updated string
//@function str-replace($string, $search, $replace: "") {
// $index: str-index($string, $search);
//
// @if $index {
// @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
// }
//
// @return $string;
//}
// See https://codepen.io/kevinweber/pen/dXWoRw
//@function escape-svg($string) {
// @if str-index($string, "data:image/svg+xml") {
// @each $char, $encoded in $escaped-characters {
// $string: str-replace($string, $char, $encoded);
// }
// }
//
// @return $string;
//}
@plugin "plugins/escape-svg.js";
// Color contrast
//@function color-yiq($color) {
// $r: red($color);
// $g: green($color);
// $b: blue($color);
//
// $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
//
// @if ($yiq >= 150) {
// @return #111;
// } @else {
// @return #fff;
// }
//}
@plugin "plugins/color-yiq.js";
// Retreive color Sass maps
//@function color($key: "blue") {
// @return map-get($colors, $key);
//}
@plugin "plugins/color.js";
//@function theme-color($key: "primary") {
// @return map-get($theme-colors, $key);
//}
@plugin "plugins/theme-color.js";
//@function gray($key: "100") {
// @return map-get($grays, $key);
//}
@plugin "plugins/gray.js";
// Request a theme color level
//@function theme-color-level($color-name: "primary", $level: 0) {
// $color: theme-color($color-name);
// $color-base: if($level > 0, #000, #fff);
// $level: abs($level);
//
// @return mix($color-base, $color, $level * $theme-color-interval);
//}
@plugin "plugins/theme-color-level.js";
// Return valid calc
//@function add($value1, $value2, $return-calc: true) {
// @if $value1 == null {
// @return $value2;
// }
//
// @if $value2 == null {
// @return $value1;
// }
//
// @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
// @return $value1 + $value2;
// }
//
// @return if($return-calc == true, calc(#{$value1} + #{$value2}), #{$value1} + #{$value2});
//}
//
//@function subtract($value1, $value2, $return-calc: true) {
// @if $value1 == null and $value2 == null {
// @return null;
// }
//
// @if $value1 == null {
// @return -$value2;
// }
//
// @if $value2 == null {
// @return $value1;
// }
//
// @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
// @return $value1 - $value2;
// }
//
// @return if($return-calc == true, calc(#{$value1} - #{$value2}), #{$value1} - #{$value2});
//}
@plugin "plugins/valid-calc.js";