bootstrap-scss 4.6.0 → 4.6.1

Sign up to get free protection for your applications and to get access to all the features.
package/README.md CHANGED
@@ -40,8 +40,8 @@
40
40
 
41
41
  Several quick start options are available:
42
42
 
43
- - Install with [npm](https://www.npmjs.com/): `npm install bootstrap-scss@4.6.0`
44
- - Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap-scss@4.6.0`
43
+ - Install with [npm](https://www.npmjs.com/): `npm install bootstrap-scss@4.6.1`
44
+ - Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap-scss@4.6.1`
45
45
 
46
46
  Read the [Getting started page](https://getbootstrap.com/docs/4.6/getting-started/introduction/) for information on the framework contents, templates and examples, and more.
47
47
 
@@ -76,8 +76,8 @@ For simplicity, this project will use the same version numbers as Bootstrap.
76
76
 
77
77
  ## Changelog
78
78
 
79
- https://blog.getbootstrap.com/2021/01/19/bootstrap-4.6.0/
79
+ https://blog.getbootstrap.com/2021/10/28/bootstrap-4.6.1/
80
80
 
81
81
  ## Copyright and license
82
82
 
83
- Code and documentation copyright 2011-2020 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors) and [Twitter, Inc.](https://twitter.com) Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/master/LICENSE).
83
+ Code and documentation copyright 2011-2021 the [Bootstrap Authors](https://github.com/twbs/bootstrap/graphs/contributors) and [Twitter, Inc.](https://twitter.com) Code released under the [MIT License](https://github.com/twbs/bootstrap/blob/master/LICENSE).
package/_card.scss CHANGED
@@ -58,7 +58,7 @@
58
58
  }
59
59
 
60
60
  .card-subtitle {
61
- margin-top: -$card-spacer-y / 2;
61
+ margin-top: -$card-spacer-y * .5;
62
62
  margin-bottom: 0;
63
63
  }
64
64
 
@@ -109,15 +109,15 @@
109
109
  //
110
110
 
111
111
  .card-header-tabs {
112
- margin-right: -$card-spacer-x / 2;
112
+ margin-right: -$card-spacer-x * .5;
113
113
  margin-bottom: -$card-spacer-y;
114
- margin-left: -$card-spacer-x / 2;
114
+ margin-left: -$card-spacer-x * .5;
115
115
  border-bottom: 0;
116
116
  }
117
117
 
118
118
  .card-header-pills {
119
- margin-right: -$card-spacer-x / 2;
120
- margin-left: -$card-spacer-x / 2;
119
+ margin-right: -$card-spacer-x * .5;
120
+ margin-left: -$card-spacer-x * .5;
121
121
  }
122
122
 
123
123
  // Card image
package/_carousel.scss CHANGED
@@ -95,8 +95,11 @@
95
95
  align-items: center; // 2. vertically center contents
96
96
  justify-content: center; // 3. horizontally center contents
97
97
  width: $carousel-control-width;
98
+ padding: 0;
98
99
  color: $carousel-control-color;
99
100
  text-align: center;
101
+ background: none;
102
+ border: 0;
100
103
  opacity: $carousel-control-opacity;
101
104
  @include transition($carousel-control-transition);
102
105
 
@@ -186,9 +189,9 @@
186
189
 
187
190
  .carousel-caption {
188
191
  position: absolute;
189
- right: (100% - $carousel-caption-width) / 2;
192
+ right: (100% - $carousel-caption-width) * .5;
190
193
  bottom: 20px;
191
- left: (100% - $carousel-caption-width) / 2;
194
+ left: (100% - $carousel-caption-width) * .5;
192
195
  z-index: 10;
193
196
  padding-top: 20px;
194
197
  padding-bottom: 20px;
@@ -26,7 +26,7 @@
26
26
  left: 0;
27
27
  z-index: -1; // Put the input behind the label so it doesn't overlay text
28
28
  width: $custom-control-indicator-size;
29
- height: ($font-size-base * $line-height-base + $custom-control-indicator-size) / 2;
29
+ height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * .5;
30
30
  opacity: 0;
31
31
 
32
32
  &:checked ~ .custom-control-label::before {
@@ -83,7 +83,7 @@
83
83
  // Background-color and (when enabled) gradient
84
84
  &::before {
85
85
  position: absolute;
86
- top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
86
+ top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
87
87
  left: -($custom-control-gutter + $custom-control-indicator-size);
88
88
  display: block;
89
89
  width: $custom-control-indicator-size;
@@ -98,7 +98,7 @@
98
98
  // Foreground (icon)
99
99
  &::after {
100
100
  position: absolute;
101
- top: ($font-size-base * $line-height-base - $custom-control-indicator-size) / 2;
101
+ top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
102
102
  left: -($custom-control-gutter + $custom-control-indicator-size);
103
103
  display: block;
104
104
  width: $custom-control-indicator-size;
@@ -186,7 +186,7 @@
186
186
  }
187
187
 
188
188
  &::after {
189
- top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) / 2, $custom-control-indicator-border-width * 2);
189
+ top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) * .5, $custom-control-indicator-border-width * 2);
190
190
  left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);
191
191
  width: $custom-switch-indicator-size;
192
192
  height: $custom-switch-indicator-size;
@@ -406,7 +406,7 @@
406
406
  &::-webkit-slider-thumb {
407
407
  width: $custom-range-thumb-width;
408
408
  height: $custom-range-thumb-height;
409
- margin-top: ($custom-range-track-height - $custom-range-thumb-height) / 2; // Webkit specific
409
+ margin-top: ($custom-range-track-height - $custom-range-thumb-height) * .5; // Webkit specific
410
410
  @include gradient-bg($custom-range-thumb-bg);
411
411
  border: $custom-range-thumb-border;
412
412
  @include border-radius($custom-range-thumb-border-radius);
@@ -481,7 +481,7 @@
481
481
  cursor: $custom-range-track-cursor;
482
482
  background-color: transparent;
483
483
  border-color: transparent;
484
- border-width: $custom-range-thumb-height / 2;
484
+ border-width: $custom-range-thumb-height * .5;
485
485
  @include box-shadow($custom-range-track-box-shadow);
486
486
  }
487
487
 
package/_forms.scss CHANGED
@@ -30,12 +30,6 @@
30
30
  border: 0;
31
31
  }
32
32
 
33
- // Remove select outline from select box in FF
34
- &:-moz-focusring {
35
- color: transparent;
36
- text-shadow: 0 0 0 $input-color;
37
- }
38
-
39
33
  // Customize the `:focus` state to imitate native WebKit styles.
40
34
  @include form-control-focus($ignore-warning: true);
41
35
 
@@ -69,6 +63,12 @@ input[type="month"] {
69
63
  }
70
64
 
71
65
  select.form-control {
66
+ // Remove select outline from select box in FF
67
+ &:-moz-focusring {
68
+ color: transparent;
69
+ text-shadow: 0 0 0 $input-color;
70
+ }
71
+
72
72
  &:focus::-ms-value {
73
73
  // Suppress the nested default white text on blue background highlight given to
74
74
  // the selected option text when the (still closed) <select> receives focus
@@ -199,13 +199,13 @@ textarea.form-control {
199
199
  .form-row {
200
200
  display: flex;
201
201
  flex-wrap: wrap;
202
- margin-right: -$form-grid-gutter-width / 2;
203
- margin-left: -$form-grid-gutter-width / 2;
202
+ margin-right: -$form-grid-gutter-width * .5;
203
+ margin-left: -$form-grid-gutter-width * .5;
204
204
 
205
205
  > .col,
206
206
  > [class*="col-"] {
207
- padding-right: $form-grid-gutter-width / 2;
208
- padding-left: $form-grid-gutter-width / 2;
207
+ padding-right: $form-grid-gutter-width * .5;
208
+ padding-left: $form-grid-gutter-width * .5;
209
209
  }
210
210
  }
211
211
 
package/_functions.scss CHANGED
@@ -75,7 +75,7 @@
75
75
  $g: green($color);
76
76
  $b: blue($color);
77
77
 
78
- $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
78
+ $yiq: (($r * 299) + ($g * 587) + ($b * 114)) * .001;
79
79
 
80
80
  @if ($yiq >= $yiq-contrasted-threshold) {
81
81
  @return $dark;
@@ -140,5 +140,51 @@
140
140
  @return $value1 - $value2;
141
141
  }
142
142
 
143
+ @if type-of($value2) != number {
144
+ $value2: unquote("(") + $value2 + unquote(")");
145
+ }
146
+
143
147
  @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
144
148
  }
149
+
150
+ @function divide($dividend, $divisor, $precision: 10) {
151
+ $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
152
+ $dividend: abs($dividend);
153
+ $divisor: abs($divisor);
154
+ @if $dividend == 0 {
155
+ @return 0;
156
+ }
157
+ @if $divisor == 0 {
158
+ @error "Cannot divide by 0";
159
+ }
160
+ $remainder: $dividend;
161
+ $result: 0;
162
+ $factor: 10;
163
+ @while ($remainder > 0 and $precision >= 0) {
164
+ $quotient: 0;
165
+ @while ($remainder >= $divisor) {
166
+ $remainder: $remainder - $divisor;
167
+ $quotient: $quotient + 1;
168
+ }
169
+ $result: $result * 10 + $quotient;
170
+ $factor: $factor * .1;
171
+ $remainder: $remainder * 10;
172
+ $precision: $precision - 1;
173
+ @if ($precision < 0 and $remainder >= $divisor * 5) {
174
+ $result: $result + 1;
175
+ }
176
+ }
177
+ $result: $result * $factor * $sign;
178
+ $dividend-unit: unit($dividend);
179
+ $divisor-unit: unit($divisor);
180
+ $unit-map: (
181
+ "px": 1px,
182
+ "rem": 1rem,
183
+ "em": 1em,
184
+ "%": 1%
185
+ );
186
+ @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
187
+ $result: $result * map-get($unit-map, $dividend-unit);
188
+ }
189
+ @return $result;
190
+ }
package/_images.scss CHANGED
@@ -32,7 +32,7 @@
32
32
  }
33
33
 
34
34
  .figure-img {
35
- margin-bottom: $spacer / 2;
35
+ margin-bottom: $spacer * .5;
36
36
  line-height: 1;
37
37
  }
38
38
 
package/_input-group.scss CHANGED
@@ -52,12 +52,14 @@
52
52
  align-items: center;
53
53
 
54
54
  &:not(:last-child) .custom-file-label,
55
+ &:not(:last-child) .custom-file-label::after { @include border-right-radius(0); }
55
56
  &:not(:first-child) .custom-file-label { @include border-left-radius(0); }
56
57
  }
57
58
 
58
59
  &:not(.has-validation) {
59
60
  > .form-control:not(:last-child),
60
61
  > .custom-select:not(:last-child),
62
+ > .custom-file:not(:last-child) .custom-file-label,
61
63
  > .custom-file:not(:last-child) .custom-file-label::after {
62
64
  @include border-right-radius(0);
63
65
  }
@@ -66,6 +68,7 @@
66
68
  &.has-validation {
67
69
  > .form-control:nth-last-child(n + 3),
68
70
  > .custom-select:nth-last-child(n + 3),
71
+ > .custom-file:nth-last-child(n + 3) .custom-file-label,
69
72
  > .custom-file:nth-last-child(n + 3) .custom-file-label::after {
70
73
  @include border-right-radius(0);
71
74
  }
package/_jumbotron.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  .jumbotron {
2
- padding: $jumbotron-padding ($jumbotron-padding / 2);
2
+ padding: $jumbotron-padding ($jumbotron-padding * .5);
3
3
  margin-bottom: $jumbotron-padding;
4
4
  color: $jumbotron-color;
5
5
  background-color: $jumbotron-bg;
package/_modal.scss CHANGED
@@ -175,7 +175,7 @@
175
175
  flex-wrap: wrap;
176
176
  align-items: center; // vertically center
177
177
  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
178
- padding: $modal-inner-padding - $modal-footer-margin-between / 2;
178
+ padding: $modal-inner-padding - $modal-footer-margin-between * .5;
179
179
  border-top: $modal-footer-border-width solid $modal-footer-border-color;
180
180
  @include border-bottom-radius($modal-content-inner-border-radius);
181
181
 
@@ -183,7 +183,7 @@
183
183
  // This solution is far from ideal because of the universal selector usage,
184
184
  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
185
185
  > * {
186
- margin: $modal-footer-margin-between / 2;
186
+ margin: $modal-footer-margin-between * .5;
187
187
  }
188
188
  }
189
189
 
package/_popover.scss CHANGED
@@ -43,13 +43,13 @@
43
43
 
44
44
  &::before {
45
45
  bottom: 0;
46
- border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
46
+ border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
47
47
  border-top-color: $popover-arrow-outer-color;
48
48
  }
49
49
 
50
50
  &::after {
51
51
  bottom: $popover-border-width;
52
- border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
52
+ border-width: $popover-arrow-height ($popover-arrow-width * .5) 0;
53
53
  border-top-color: $popover-arrow-color;
54
54
  }
55
55
  }
@@ -66,13 +66,13 @@
66
66
 
67
67
  &::before {
68
68
  left: 0;
69
- border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
69
+ border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
70
70
  border-right-color: $popover-arrow-outer-color;
71
71
  }
72
72
 
73
73
  &::after {
74
74
  left: $popover-border-width;
75
- border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
75
+ border-width: ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5) 0;
76
76
  border-right-color: $popover-arrow-color;
77
77
  }
78
78
  }
@@ -86,13 +86,13 @@
86
86
 
87
87
  &::before {
88
88
  top: 0;
89
- border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
89
+ border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
90
90
  border-bottom-color: $popover-arrow-outer-color;
91
91
  }
92
92
 
93
93
  &::after {
94
94
  top: $popover-border-width;
95
- border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
95
+ border-width: 0 ($popover-arrow-width * .5) $popover-arrow-height ($popover-arrow-width * .5);
96
96
  border-bottom-color: $popover-arrow-color;
97
97
  }
98
98
  }
@@ -104,7 +104,7 @@
104
104
  left: 50%;
105
105
  display: block;
106
106
  width: $popover-arrow-width;
107
- margin-left: -$popover-arrow-width / 2;
107
+ margin-left: -$popover-arrow-width * .5;
108
108
  content: "";
109
109
  border-bottom: $popover-border-width solid $popover-header-bg;
110
110
  }
@@ -121,13 +121,13 @@
121
121
 
122
122
  &::before {
123
123
  right: 0;
124
- border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
124
+ border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
125
125
  border-left-color: $popover-arrow-outer-color;
126
126
  }
127
127
 
128
128
  &::after {
129
129
  right: $popover-border-width;
130
- border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
130
+ border-width: ($popover-arrow-width * .5) 0 ($popover-arrow-width * .5) $popover-arrow-height;
131
131
  border-left-color: $popover-arrow-color;
132
132
  }
133
133
  }
package/_print.scss CHANGED
@@ -55,15 +55,6 @@
55
55
  page-break-inside: avoid;
56
56
  }
57
57
 
58
- //
59
- // Printing Tables:
60
- // https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
61
- //
62
-
63
- thead {
64
- display: table-header-group;
65
- }
66
-
67
58
  tr,
68
59
  img {
69
60
  page-break-inside: avoid;
package/_spinners.scss CHANGED
@@ -10,7 +10,7 @@
10
10
  display: inline-block;
11
11
  width: $spinner-width;
12
12
  height: $spinner-height;
13
- vertical-align: text-bottom;
13
+ vertical-align: $spinner-vertical-align;
14
14
  border: $spinner-border-width solid currentColor;
15
15
  border-right-color: transparent;
16
16
  // stylelint-disable-next-line property-disallowed-list
@@ -42,7 +42,7 @@
42
42
  display: inline-block;
43
43
  width: $spinner-width;
44
44
  height: $spinner-height;
45
- vertical-align: text-bottom;
45
+ vertical-align: $spinner-vertical-align;
46
46
  background-color: currentColor;
47
47
  // stylelint-disable-next-line property-disallowed-list
48
48
  border-radius: 50%;
package/_tooltip.scss CHANGED
@@ -37,7 +37,7 @@
37
37
 
38
38
  &::before {
39
39
  top: 0;
40
- border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
40
+ border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
41
41
  border-top-color: $tooltip-arrow-color;
42
42
  }
43
43
  }
@@ -53,7 +53,7 @@
53
53
 
54
54
  &::before {
55
55
  right: 0;
56
- border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
56
+ border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
57
57
  border-right-color: $tooltip-arrow-color;
58
58
  }
59
59
  }
@@ -67,7 +67,7 @@
67
67
 
68
68
  &::before {
69
69
  bottom: 0;
70
- border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
70
+ border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
71
71
  border-bottom-color: $tooltip-arrow-color;
72
72
  }
73
73
  }
@@ -83,7 +83,7 @@
83
83
 
84
84
  &::before {
85
85
  left: 0;
86
- border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
86
+ border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
87
87
  border-left-color: $tooltip-arrow-color;
88
88
  }
89
89
  }
package/_variables.scss CHANGED
@@ -299,7 +299,7 @@ $h4-font-size: $font-size-base * 1.5 !default;
299
299
  $h5-font-size: $font-size-base * 1.25 !default;
300
300
  $h6-font-size: $font-size-base !default;
301
301
 
302
- $headings-margin-bottom: $spacer / 2 !default;
302
+ $headings-margin-bottom: $spacer * .5 !default;
303
303
  $headings-font-family: null !default;
304
304
  $headings-font-weight: 500 !default;
305
305
  $headings-line-height: 1.2 !default;
@@ -495,7 +495,7 @@ $input-height-border: $input-border-width * 2 !default;
495
495
 
496
496
  $input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;
497
497
  $input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;
498
- $input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;
498
+ $input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y * .5) !default;
499
499
 
500
500
  $input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;
501
501
  $input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;
@@ -565,7 +565,7 @@ $custom-radio-indicator-border-radius: 50% !default;
565
565
  $custom-radio-indicator-icon-checked: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'><circle r='3' fill='#{$custom-control-indicator-checked-color}'/></svg>") !default;
566
566
 
567
567
  $custom-switch-width: $custom-control-indicator-size * 1.75 !default;
568
- $custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;
568
+ $custom-switch-indicator-border-radius: $custom-control-indicator-size * .5 !default;
569
569
  $custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;
570
570
 
571
571
  $custom-select-padding-y: $input-padding-y !default;
@@ -710,12 +710,12 @@ $nav-pills-link-active-color: $component-active-color !default;
710
710
  $nav-pills-link-active-bg: $component-active-bg !default;
711
711
 
712
712
  $nav-divider-color: $gray-200 !default;
713
- $nav-divider-margin-y: $spacer / 2 !default;
713
+ $nav-divider-margin-y: $spacer * .5 !default;
714
714
 
715
715
 
716
716
  // Navbar
717
717
 
718
- $navbar-padding-y: $spacer / 2 !default;
718
+ $navbar-padding-y: $spacer * .5 !default;
719
719
  $navbar-padding-x: $spacer !default;
720
720
 
721
721
  $navbar-nav-link-padding-x: .5rem !default;
@@ -724,7 +724,7 @@ $navbar-brand-font-size: $font-size-lg !default;
724
724
  // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
725
725
  $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
726
726
  $navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
727
- $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
727
+ $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) * .5 !default;
728
728
 
729
729
  $navbar-toggler-padding-y: .25rem !default;
730
730
  $navbar-toggler-padding-x: .75rem !default;
@@ -821,6 +821,7 @@ $pagination-disabled-border-color: $gray-300 !default;
821
821
  $pagination-border-radius-sm: $border-radius-sm !default;
822
822
  $pagination-border-radius-lg: $border-radius-lg !default;
823
823
 
824
+
824
825
  // Jumbotron
825
826
 
826
827
  $jumbotron-padding: 2rem !default;
@@ -844,7 +845,7 @@ $card-bg: $white !default;
844
845
 
845
846
  $card-img-overlay-padding: 1.25rem !default;
846
847
 
847
- $card-group-margin: $grid-gutter-width / 2 !default;
848
+ $card-group-margin: $grid-gutter-width * .5 !default;
848
849
  $card-deck-margin: $card-group-margin !default;
849
850
 
850
851
  $card-columns-count: 3 !default;
@@ -1100,9 +1101,10 @@ $carousel-transition: transform $carousel-transition-duration eas
1100
1101
 
1101
1102
  // Spinners
1102
1103
 
1103
- $spinner-width: 2rem !default;
1104
- $spinner-height: $spinner-width !default;
1105
- $spinner-border-width: .25em !default;
1104
+ $spinner-width: 2rem !default;
1105
+ $spinner-height: $spinner-width !default;
1106
+ $spinner-vertical-align: -.125em !default;
1107
+ $spinner-border-width: .25em !default;
1106
1108
 
1107
1109
  $spinner-width-sm: 1rem !default;
1108
1110
  $spinner-height-sm: $spinner-width-sm !default;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Grid v4.6.0 (https://getbootstrap.com/)
2
+ * Bootstrap Grid v4.6.1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)
2
+ * Bootstrap Reboot v4.6.1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
package/bootstrap.scss CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap v4.6.0 (https://getbootstrap.com/)
2
+ * Bootstrap v4.6.1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2021 The Bootstrap Authors
4
4
  * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -69,7 +69,7 @@
69
69
  // Align tooltip to form elements
70
70
  .form-row > .col > &,
71
71
  .form-row > [class*="col-"] > & {
72
- left: $form-grid-gutter-width / 2;
72
+ left: $form-grid-gutter-width * .5;
73
73
  }
74
74
  }
75
75
 
@@ -85,7 +85,7 @@
85
85
  border-color: $color;
86
86
 
87
87
  @if $enable-validation-icons {
88
- padding-right: $input-height-inner;
88
+ padding-right: $input-height-inner !important; // stylelint-disable-line declaration-no-important
89
89
  background-image: escape-svg($icon);
90
90
  background-repeat: no-repeat;
91
91
  background-position: right $input-height-inner-quarter center;
@@ -99,6 +99,16 @@
99
99
  }
100
100
  }
101
101
 
102
+ // stylelint-disable-next-line selector-no-qualifying-type
103
+ select.form-control {
104
+ @include form-validation-state-selector($state) {
105
+ @if $enable-validation-icons {
106
+ padding-right: $input-padding-x * 4 !important; // stylelint-disable-line declaration-no-important
107
+ background-position: right $input-padding-x * 2 center;
108
+ }
109
+ }
110
+ }
111
+
102
112
  // stylelint-disable-next-line selector-no-qualifying-type
103
113
  textarea.form-control {
104
114
  @include form-validation-state-selector($state) {
@@ -114,7 +124,7 @@
114
124
  border-color: $color;
115
125
 
116
126
  @if $enable-validation-icons {
117
- padding-right: $custom-select-feedback-icon-padding-right;
127
+ padding-right: $custom-select-feedback-icon-padding-right !important; // stylelint-disable-line declaration-no-important
118
128
  background: $custom-select-background, $custom-select-bg escape-svg($icon) $custom-select-feedback-icon-position / $custom-select-feedback-icon-size no-repeat;
119
129
  }
120
130
 
@@ -8,8 +8,8 @@
8
8
  %grid-column {
9
9
  position: relative;
10
10
  width: 100%;
11
- padding-right: $gutter / 2;
12
- padding-left: $gutter / 2;
11
+ padding-right: $gutter * .5;
12
+ padding-left: $gutter * .5;
13
13
  }
14
14
 
15
15
  @each $breakpoint in map-keys($breakpoints) {
package/mixins/_grid.scss CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  @mixin make-container($gutter: $grid-gutter-width) {
6
6
  width: 100%;
7
- padding-right: $gutter / 2;
8
- padding-left: $gutter / 2;
7
+ padding-right: $gutter * .5;
8
+ padding-left: $gutter * .5;
9
9
  margin-right: auto;
10
10
  margin-left: auto;
11
11
  }
@@ -13,8 +13,8 @@
13
13
  @mixin make-row($gutter: $grid-gutter-width) {
14
14
  display: flex;
15
15
  flex-wrap: wrap;
16
- margin-right: -$gutter / 2;
17
- margin-left: -$gutter / 2;
16
+ margin-right: -$gutter * .5;
17
+ margin-left: -$gutter * .5;
18
18
  }
19
19
 
20
20
  // For each breakpoint, define the maximum width of the container in a media query
@@ -33,16 +33,16 @@
33
33
  // always setting `width: 100%;`. This works because we use `flex` values
34
34
  // later on to override this initial width.
35
35
  width: 100%;
36
- padding-right: $gutter / 2;
37
- padding-left: $gutter / 2;
36
+ padding-right: $gutter * .5;
37
+ padding-left: $gutter * .5;
38
38
  }
39
39
 
40
40
  @mixin make-col($size, $columns: $grid-columns) {
41
- flex: 0 0 percentage($size / $columns);
41
+ flex: 0 0 percentage(divide($size, $columns));
42
42
  // Add a `max-width` to ensure content within each column does not blow out
43
43
  // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
44
44
  // do not appear to require this.
45
- max-width: percentage($size / $columns);
45
+ max-width: percentage(divide($size, $columns));
46
46
  }
47
47
 
48
48
  @mixin make-col-auto() {
@@ -52,7 +52,7 @@
52
52
  }
53
53
 
54
54
  @mixin make-col-offset($size, $columns: $grid-columns) {
55
- $num: $size / $columns;
55
+ $num: divide($size, $columns);
56
56
  margin-left: if($num == 0, 0, percentage($num));
57
57
  }
58
58
 
@@ -63,7 +63,7 @@
63
63
  // style grid.
64
64
  @mixin row-cols($count) {
65
65
  > * {
66
- flex: 0 0 100% / $count;
67
- max-width: 100% / $count;
66
+ flex: 0 0 divide(100%, $count);
67
+ max-width: divide(100%, $count);
68
68
  }
69
69
  }
@@ -1,7 +1,7 @@
1
1
  // Only display content to screen readers
2
2
  //
3
3
  // See: https://www.a11yproject.com/posts/2013-01-11-how-to-hide-content/
4
- // See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
4
+ // See: https://kittygiraudel.com/2016/10/13/css-hide-and-seek/
5
5
 
6
6
  @mixin sr-only() {
7
7
  position: absolute;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bootstrap-scss",
3
- "version": "4.6.0",
3
+ "version": "4.6.1",
4
4
  "description": "Bootstrap's SCSS files (only)",
5
5
  "main": "bootstrap.scss",
6
6
  "repository": {
@@ -33,7 +33,7 @@
33
33
 
34
34
  .embed-responsive-#{$embed-responsive-aspect-ratio-x}by#{$embed-responsive-aspect-ratio-y} {
35
35
  &::before {
36
- padding-top: percentage($embed-responsive-aspect-ratio-y / $embed-responsive-aspect-ratio-x);
36
+ padding-top: percentage(divide($embed-responsive-aspect-ratio-y, $embed-responsive-aspect-ratio-x));
37
37
  }
38
38
  }
39
39
  }
@@ -30,7 +30,7 @@
30
30
 
31
31
  // Negative margins (e.g., where `.mb-n1` is negative version of `.mb-1`)
32
32
  @each $size, $length in $spacers {
33
- @if $size != 0 {
33
+ @if "#{$size}" != "0" {
34
34
  .m#{$infix}-n#{$size} { margin: -$length !important; }
35
35
  .mt#{$infix}-n#{$size},
36
36
  .my#{$infix}-n#{$size} {
package/vendor/_rfs.scss CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  // SCSS RFS mixin
4
4
  //
5
- // Automated font-resizing
5
+ // Automated responsive font sizes
6
6
  //
7
- // See https://github.com/twbs/rfs
7
+ // Licensed under MIT (https://github.com/twbs/rfs/blob/v8.x/LICENSE)
8
8
 
9
9
  // Configuration
10
10
 
@@ -12,11 +12,19 @@
12
12
  $rfs-base-font-size: 1.25rem !default;
13
13
  $rfs-font-size-unit: rem !default;
14
14
 
15
+ @if $rfs-font-size-unit != rem and $rfs-font-size-unit != px {
16
+ @error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
17
+ }
18
+
15
19
  // Breakpoint at where font-size starts decreasing if screen width is smaller
16
20
  $rfs-breakpoint: 1200px !default;
17
21
  $rfs-breakpoint-unit: px !default;
18
22
 
19
- // Resize font-size based on screen height and width
23
+ @if $rfs-breakpoint-unit != px and $rfs-breakpoint-unit != em and $rfs-breakpoint-unit != rem {
24
+ @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
25
+ }
26
+
27
+ // Resize font size based on screen height and width
20
28
  $rfs-two-dimensional: false !default;
21
29
 
22
30
  // Factor of decrease
@@ -41,12 +49,54 @@ $enable-responsive-font-sizes: true !default;
41
49
  // Cache $rfs-base-font-size unit
42
50
  $rfs-base-font-size-unit: unit($rfs-base-font-size);
43
51
 
52
+ @function divide($dividend, $divisor, $precision: 10) {
53
+ $sign: if($dividend > 0 and $divisor > 0 or $dividend < 0 and $divisor < 0, 1, -1);
54
+ $dividend: abs($dividend);
55
+ $divisor: abs($divisor);
56
+ @if $dividend == 0 {
57
+ @return 0;
58
+ }
59
+ @if $divisor == 0 {
60
+ @error "Cannot divide by 0";
61
+ }
62
+ $remainder: $dividend;
63
+ $result: 0;
64
+ $factor: 10;
65
+ @while ($remainder > 0 and $precision >= 0) {
66
+ $quotient: 0;
67
+ @while ($remainder >= $divisor) {
68
+ $remainder: $remainder - $divisor;
69
+ $quotient: $quotient + 1;
70
+ }
71
+ $result: $result * 10 + $quotient;
72
+ $factor: $factor * .1;
73
+ $remainder: $remainder * 10;
74
+ $precision: $precision - 1;
75
+ @if ($precision < 0 and $remainder >= $divisor * 5) {
76
+ $result: $result + 1;
77
+ }
78
+ }
79
+ $result: $result * $factor * $sign;
80
+ $dividend-unit: unit($dividend);
81
+ $divisor-unit: unit($divisor);
82
+ $unit-map: (
83
+ "px": 1px,
84
+ "rem": 1rem,
85
+ "em": 1em,
86
+ "%": 1%
87
+ );
88
+ @if ($dividend-unit != $divisor-unit and map-has-key($unit-map, $dividend-unit)) {
89
+ $result: $result * map-get($unit-map, $dividend-unit);
90
+ }
91
+ @return $result;
92
+ }
93
+
44
94
  // Remove px-unit from $rfs-base-font-size for calculations
45
95
  @if $rfs-base-font-size-unit == "px" {
46
- $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);
96
+ $rfs-base-font-size: divide($rfs-base-font-size, $rfs-base-font-size * 0 + 1);
47
97
  }
48
98
  @else if $rfs-base-font-size-unit == "rem" {
49
- $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);
99
+ $rfs-base-font-size: divide($rfs-base-font-size, divide($rfs-base-font-size * 0 + 1, $rfs-rem-value));
50
100
  }
51
101
 
52
102
  // Cache $rfs-breakpoint unit to prevent multiple calls
@@ -54,13 +104,55 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
54
104
 
55
105
  // Remove unit from $rfs-breakpoint for calculations
56
106
  @if $rfs-breakpoint-unit-cache == "px" {
57
- $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);
107
+ $rfs-breakpoint: divide($rfs-breakpoint, $rfs-breakpoint * 0 + 1);
58
108
  }
59
109
  @else if $rfs-breakpoint-unit-cache == "rem" or $rfs-breakpoint-unit-cache == "em" {
60
- $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);
110
+ $rfs-breakpoint: divide($rfs-breakpoint, divide($rfs-breakpoint * 0 + 1, $rfs-rem-value));
111
+ }
112
+
113
+ // Internal mixin that adds disable classes to the selector if needed.
114
+ @mixin _rfs-disable-class {
115
+ @if $rfs-class == "disable" {
116
+ // Adding an extra class increases specificity, which prevents the media query to override the font size
117
+ &,
118
+ .disable-responsive-font-size &,
119
+ &.disable-responsive-font-size {
120
+ @content;
121
+ }
122
+ }
123
+ @else {
124
+ @content;
125
+ }
126
+ }
127
+
128
+ // Internal mixin that adds enable classes to the selector if needed.
129
+ @mixin _rfs-enable-class {
130
+ @if $rfs-class == "enable" {
131
+ .enable-responsive-font-size &,
132
+ &.enable-responsive-font-size {
133
+ @content;
134
+ }
135
+ }
136
+ @else {
137
+ @content;
138
+ }
61
139
  }
62
140
 
63
- // Responsive font-size mixin
141
+ // Internal mixin used to determine which media query needs to be used
142
+ @mixin _rfs-media-query($mq-value) {
143
+ @if $rfs-two-dimensional {
144
+ @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
145
+ @content;
146
+ }
147
+ }
148
+ @else {
149
+ @media (max-width: #{$mq-value}) {
150
+ @content;
151
+ }
152
+ }
153
+ }
154
+
155
+ // Responsive font size mixin
64
156
  @mixin rfs($fs, $important: false) {
65
157
  // Cache $fs unit
66
158
  $fs-unit: if(type-of($fs) == "number", unit($fs), false);
@@ -73,128 +165,60 @@ $rfs-breakpoint-unit-cache: unit($rfs-breakpoint);
73
165
  font-size: #{$fs}#{$rfs-suffix};
74
166
  }
75
167
  @else {
76
- // Variables for storing static and fluid rescaling
77
- $rfs-static: null;
78
- $rfs-fluid: null;
79
-
80
- // Remove px-unit from $fs for calculations
168
+ // Remove unit from $fs for calculations
81
169
  @if $fs-unit == "px" {
82
- $fs: $fs / ($fs * 0 + 1);
170
+ $fs: divide($fs, $fs * 0 + 1);
83
171
  }
84
172
  @else if $fs-unit == "rem" {
85
- $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);
173
+ $fs: divide($fs, divide($fs * 0 + 1, $rfs-rem-value));
86
174
  }
87
175
 
88
- // Set default font-size
89
- @if $rfs-font-size-unit == rem {
90
- $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};
91
- }
92
- @else if $rfs-font-size-unit == px {
93
- $rfs-static: #{$fs}px#{$rfs-suffix};
176
+ // Set default font size
177
+ $rfs-static: if($rfs-font-size-unit == rem, #{divide($fs, $rfs-rem-value)}rem, #{$fs}px);
178
+
179
+ // Only add the media query if the font size is bigger than the minimum font size
180
+ @if $fs <= $rfs-base-font-size or not $enable-responsive-font-sizes {
181
+ font-size: #{$rfs-static}#{$rfs-suffix};
94
182
  }
95
183
  @else {
96
- @error "`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.";
97
- }
98
-
99
- // Only add media query if font-size is bigger as the minimum font-size
100
- // If $rfs-factor == 1, no rescaling will take place
101
- @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {
102
- $min-width: null;
103
- $variable-unit: null;
184
+ // Calculate the minimum font size for $fs
185
+ $fs-min: $rfs-base-font-size + divide($fs - $rfs-base-font-size, $rfs-factor);
104
186
 
105
- // Calculate minimum font-size for given font-size
106
- $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;
107
-
108
- // Calculate difference between given font-size and minimum font-size for given font-size
187
+ // Calculate difference between $fs and the minimum font size
109
188
  $fs-diff: $fs - $fs-min;
110
189
 
111
190
  // Base font-size formatting
112
- // No need to check if the unit is valid, because we did that before
113
- $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);
191
+ $min-width: if($rfs-font-size-unit == rem, #{divide($fs-min, $rfs-rem-value)}rem, #{$fs-min}px);
114
192
 
115
- // If two-dimensional, use smallest of screen width and height
193
+ // Use `vmin` if two-dimensional is enabled
116
194
  $variable-unit: if($rfs-two-dimensional, vmin, vw);
117
195
 
118
196
  // Calculate the variable width between 0 and $rfs-breakpoint
119
- $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};
197
+ $variable-width: #{divide($fs-diff * 100, $rfs-breakpoint)}#{$variable-unit};
120
198
 
121
- // Set the calculated font-size.
199
+ // Set the calculated font-size
122
200
  $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};
123
- }
124
201
 
125
- // Rendering
126
- @if $rfs-fluid == null {
127
- // Only render static font-size if no fluid font-size is available
128
- font-size: $rfs-static;
129
- }
130
- @else {
131
- $mq-value: null;
202
+ // Breakpoint formatting
203
+ $mq-value: if($rfs-breakpoint-unit == px, #{$rfs-breakpoint}px, #{divide($rfs-breakpoint, $rfs-rem-value)}#{$rfs-breakpoint-unit});
132
204
 
133
- // RFS breakpoint formatting
134
- @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {
135
- $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};
136
- }
137
- @else if $rfs-breakpoint-unit == px {
138
- $mq-value: #{$rfs-breakpoint}px;
139
- }
140
- @else {
141
- @error "`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.";
205
+ @include _rfs-disable-class {
206
+ font-size: #{$rfs-static}#{$rfs-suffix};
142
207
  }
143
208
 
144
- @if $rfs-class == "disable" {
145
- // Adding an extra class increases specificity,
146
- // which prevents the media query to override the font size
147
- &,
148
- .disable-responsive-font-size &,
149
- &.disable-responsive-font-size {
150
- font-size: $rfs-static;
209
+ @include _rfs-media-query($mq-value) {
210
+ @include _rfs-enable-class {
211
+ font-size: $rfs-fluid;
151
212
  }
152
- }
153
- @else {
154
- font-size: $rfs-static;
155
- }
156
213
 
157
- @if $rfs-two-dimensional {
158
- @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {
159
- @if $rfs-class == "enable" {
160
- .enable-responsive-font-size &,
161
- &.enable-responsive-font-size {
162
- font-size: $rfs-fluid;
163
- }
164
- }
165
- @else {
166
- font-size: $rfs-fluid;
167
- }
168
-
169
- @if $rfs-safari-iframe-resize-bug-fix {
170
- // stylelint-disable-next-line length-zero-no-unit
171
- min-width: 0vw;
172
- }
173
- }
174
- }
175
- @else {
176
- @media (max-width: #{$mq-value}) {
177
- @if $rfs-class == "enable" {
178
- .enable-responsive-font-size &,
179
- &.enable-responsive-font-size {
180
- font-size: $rfs-fluid;
181
- }
182
- }
183
- @else {
184
- font-size: $rfs-fluid;
185
- }
186
-
187
- @if $rfs-safari-iframe-resize-bug-fix {
188
- // stylelint-disable-next-line length-zero-no-unit
189
- min-width: 0vw;
190
- }
191
- }
214
+ // Include safari iframe resize fix if needed
215
+ min-width: if($rfs-safari-iframe-resize-bug-fix, (0 * 1vw), null);
192
216
  }
193
217
  }
194
218
  }
195
219
  }
196
220
 
197
- // The font-size & responsive-font-size mixin uses RFS to rescale font sizes
221
+ // The font-size & responsive-font-size mixins use RFS to rescale the font size
198
222
  @mixin font-size($fs, $important: false) {
199
223
  @include rfs($fs, $important);
200
224
  }