PluginProbe ʕ •ᴥ•ʔ
VK Blocks / trunk
VK Blocks vtrunk
1.123.0 1.122.0 1.121.0 1.120.0 1.119.2 1.119.1 1.119.0 1.118.7 1.82.0.0 1.82.0.1 1.83.0.0 1.83.0.1 1.84.0.0 1.84.0.1 1.85.0.2 1.85.0.3 1.85.1.0 1.85.1.1 1.86.0.0 1.86.0.1 1.86.1.0 1.87.0.0 1.87.0.1 1.88.0.1 1.88.0.2 1.89.0.0 1.9.2 1.90.0.0 1.90.0.1 1.90.1.1 1.91.0.0 1.91.1.1 1.92.0.0 1.92.0.1 1.92.1.0 1.92.1.1 1.93.0.0 trunk 1.93.0.1 0.1.1 1.93.1.0 0.10.3 1.93.1.1 0.11.0 1.94.0.0 0.12.6 1.94.0.1 0.15.1 1.94.1.0 0.16.2 1.94.2.1 0.17.6 1.94.2.2 0.2.2 1.95.0.3 0.22.4 1.95.0.4 0.26.7 1.96.2.0 0.3.2 1.96.2.1 0.31.0 1.97.0.1 0.35.5 1.97.0.2 0.37.5 1.99.0.0 0.38.8 1.99.0.1 0.39.4 0.4.7 0.41.0 0.42.0 0.44.13 0.45.2 0.46.1 0.47.0 0.48.0 0.49.8 0.5.2 0.50.3 0.51.0 0.52.2 0.53.2 0.54.0 0.55.0 0.56.2 0.56.3 0.57.6 0.58.10 0.59.0 0.6.0 0.60.1 0.61.2 0.7.1 0.8.2 1.0.16 1.10.0 1.100.0.0 1.100.0.1 1.102.0.0 1.102.0.1 1.103.0.0 1.104.0.0 1.104.0.1 1.105.1.0 1.105.1.1 1.106.0.0 1.106.0.1 1.107.0.0 1.107.0.1 1.107.0.2 1.108.0.0 1.108.0.1 1.109.0.0 1.109.0.1 1.11.4 1.110.0.0 1.110.0.1 1.111.0.0 1.111.0.1 1.111.0.2 1.112.0.0 1.112.0.1 1.113.0.0 1.113.0.1 1.114.0.0 1.114.0.1 1.114.2.0 1.114.2.1 1.115.0.0 1.115.0.1 1.115.1.0 1.115.1.1 1.115.2.0 1.115.2.1 1.116.0.0 1.116.0.1 1.116.1.0 1.116.1.1 1.116.2.0 1.117.0.0 1.117.0.1 1.117.1.0 1.118.2 1.118.5 1.12.0 1.13.2 1.14.1 1.15.1 1.16.11 1.17.0 1.18.6 1.19.0 1.19.1 1.2.3 1.20.7 1.21.0 1.22.4 1.23.0 1.24.5 1.25.1 1.26.2 1.27.7.2 1.28.0.1 1.29.2.0 1.3.9 1.30.0.1 1.31.0.1 1.32.0.2 1.33.2.1 1.36.1.5 1.37.0.0 1.39.2.1 1.4.6 1.40.0.1 1.40.1.0 1.40.1.1 1.41.0.0 1.41.0.1 1.41.2.2 1.41.2.3 1.43.0.0 1.43.0.1 1.43.0.2 1.44.0.0 1.44.0.1 1.45.0.0 1.45.0.1 1.46.0.0 1.46.0.1 1.47.0.0 1.47.0.1 1.47.1.0 1.48.0.0 1.48.0.1 1.48.0.2 1.48.1.0 1.48.1.1 1.5.0 1.50.0.0 1.50.0.1 1.51.0.0 1.51.0.1 1.52.0.0 1.52.0.1 1.53.0.0 1.53.0.1 1.54.0.0 1.54.0.1 1.55.0.0 1.55.0.1 1.56.0.0 1.56.0.1 1.57.0.0 1.57.0.2 1.57.0.3 1.57.0.4 1.57.0.5 1.57.1.0 1.57.1.1 1.57.1.2 1.58.0.0 1.58.0.1 1.59.0.0 1.59.0.1 1.6.0 1.60.0.0 1.60.0.1 1.63.0.0 1.63.0.1 1.64.0.0 1.64.0.1 1.64.1.0 1.64.1.2 1.67.0.0 1.67.0.1 1.68.0.0 1.68.0.1 1.69.0.0 1.69.0.1 1.69.1.1 1.69.1.2 1.7.1 1.70.0.0 1.70.0.1 1.71.0.0 1.71.0.1 1.72.0.0 1.72.1.0 1.72.1.1 1.73.0.0 1.73.0.1 1.74.0.0 1.74.0.1 1.75.0.0 1.75.1.0 1.75.1.1 1.76.0.0 1.76.0.1 1.76.1.0 1.76.1.1 1.76.2.0 1.76.2.1 1.77.0.0 1.77.0.1 1.78.0.0 1.78.0.1 1.79.0.0 1.79.0.1 1.79.0.2 1.79.0.3 1.79.1.0 1.79.1.1 1.8.2 1.80.1.0 1.80.1.1 1.80.1.2 1.81.0.1 1.81.0.2
vk-blocks / lib / bootstrap / scss / _functions.scss
vk-blocks / lib / bootstrap / scss Last commit date
mixins 3 years ago utilities 3 years ago vendor 3 years ago _alert.scss 3 years ago _badge.scss 3 years ago _breadcrumb.scss 3 years ago _button-group.scss 3 years ago _buttons.scss 3 years ago _card.scss 3 years ago _carousel.scss 3 years ago _close.scss 3 years ago _code.scss 3 years ago _custom-forms.scss 3 years ago _dropdown.scss 3 years ago _forms.scss 3 years ago _functions.scss 3 years ago _grid.scss 3 years ago _images.scss 3 years ago _input-group.scss 3 years ago _jumbotron.scss 3 years ago _list-group.scss 3 years ago _media.scss 3 years ago _mixins.scss 3 years ago _modal.scss 3 years ago _nav.scss 3 years ago _navbar.scss 3 years ago _pagination.scss 3 years ago _popover.scss 3 years ago _print.scss 3 years ago _progress.scss 3 years ago _reboot.scss 3 years ago _root.scss 3 years ago _spinners.scss 3 years ago _tables.scss 3 years ago _toasts.scss 3 years ago _tooltip.scss 3 years ago _transitions.scss 3 years ago _type.scss 3 years ago _utilities.scss 3 years ago _variables.scss 3 years ago bootstrap-grid.scss 3 years ago bootstrap-reboot.scss 3 years ago bootstrap-sidepanel.scss 3 years ago bootstrap.scss 1 year ago
_functions.scss
142 lines
1 // Bootstrap functions
2 //
3 // Utility mixins and functions for evaluating source code across our variables, maps, and mixins.
4
5 // Ascending
6 // Used to evaluate Sass maps like our grid breakpoints.
7 @mixin _assert-ascending($map, $map-name) {
8 $prev-key: null;
9 $prev-num: null;
10 @each $key, $num in $map {
11 @if $prev-num == null or unit($num) == "%" or unit($prev-num) == "%" {
12 // Do nothing
13 } @else if not comparable($prev-num, $num) {
14 @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}' !";
15 } @else if $prev-num >= $num {
16 @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}' !";
17 }
18 $prev-key: $key;
19 $prev-num: $num;
20 }
21 }
22
23 // Starts at zero
24 // Used to ensure the min-width of the lowest breakpoint starts at 0.
25 @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
26 @if length($map) > 0 {
27 $values: map-values($map);
28 $first-value: nth($values, 1);
29 @if $first-value != 0 {
30 @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
31 }
32 }
33 }
34
35 // Replace `$search` with `$replace` in `$string`
36 // Used on our SVG icon backgrounds for custom forms.
37 //
38 // @author Hugo Giraudel
39 // @param {String} $string - Initial string
40 // @param {String} $search - Substring to replace
41 // @param {String} $replace ('') - New value
42 // @return {String} - Updated string
43 @function str-replace($string, $search, $replace: "") {
44 $index: str-index($string, $search);
45
46 @if $index {
47 @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
48 }
49
50 @return $string;
51 }
52
53 // See https://codepen.io/kevinweber/pen/dXWoRw
54 @function escape-svg($string) {
55 @if str-index($string, "data:image/svg+xml") {
56 @each $char, $encoded in $escaped-characters {
57 // Do not escape the url brackets
58 @if str-index($string, "url(") == 1 {
59 $string: url("#{str-replace(str-slice($string, 6, -3), $char, $encoded)}");
60 } @else {
61 $string: str-replace($string, $char, $encoded);
62 }
63 }
64 }
65
66 @return $string;
67 }
68
69 // Color contrast
70 @function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {
71 $r: red($color);
72 $g: green($color);
73 $b: blue($color);
74
75 $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
76
77 @if ($yiq >= $yiq-contrasted-threshold) {
78 @return $dark;
79 } @else {
80 @return $light;
81 }
82 }
83
84 // Retrieve color Sass maps
85 @function color($key: "blue") {
86 @return map-get($colors, $key);
87 }
88
89 @function theme-color($key: "primary") {
90 @return map-get($theme-colors, $key);
91 }
92
93 @function gray($key: "100") {
94 @return map-get($grays, $key);
95 }
96
97 // Request a theme color level
98 @function theme-color-level($color-name: "primary", $level: 0) {
99 $color: theme-color($color-name);
100 $color-base: if($level > 0, $black, $white);
101 $level: abs($level);
102
103 @return mix($color-base, $color, $level * $theme-color-interval);
104 }
105
106 // Return valid calc
107 @function add($value1, $value2, $return-calc: true) {
108 @if $value1 == null {
109 @return $value2;
110 }
111
112 @if $value2 == null {
113 @return $value1;
114 }
115
116 @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
117 @return $value1 + $value2;
118 }
119
120 @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
121 }
122
123 @function subtract($value1, $value2, $return-calc: true) {
124 @if $value1 == null and $value2 == null {
125 @return null;
126 }
127
128 @if $value1 == null {
129 @return -$value2;
130 }
131
132 @if $value2 == null {
133 @return $value1;
134 }
135
136 @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {
137 @return $value1 - $value2;
138 }
139
140 @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
141 }
142