bootstrap-scss 4.6.0 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
  }