bootstrap-scss 4.4.0 → 4.5.2

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/LICENSE CHANGED
@@ -1,22 +1,22 @@
1
- The MIT License (MIT)
2
-
3
- Copyright (c) 2011-2019 Twitter, Inc.
4
- Copyright (c) 2011-2019 The Bootstrap Authors
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in
14
- all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
- THE SOFTWARE.
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2011-2020 Twitter, Inc.
4
+ Copyright (c) 2011-2020 The Bootstrap Authors
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  <p align="center">
6
6
  <a href="https://getbootstrap.com/">
7
- <img src="https://getbootstrap.com/docs/4.4/assets/brand/bootstrap-solid.svg" alt="Bootstrap logo" width="72" height="72">
7
+ <img src="https://getbootstrap.com/docs/4.5/assets/brand/bootstrap-solid.svg" alt="Bootstrap logo" width="72" height="72">
8
8
  </a>
9
9
  </p>
10
10
 
@@ -13,7 +13,7 @@
13
13
  <p align="center">
14
14
  Sleek, intuitive, and powerful front-end framework for faster and easier web development.
15
15
  <br>
16
- <a href="https://getbootstrap.com/docs/4.4/"><strong>Explore Bootstrap docs »</strong></a>
16
+ <a href="https://getbootstrap.com/docs/4.5/"><strong>Explore Bootstrap docs »</strong></a>
17
17
  <br>
18
18
  <br>
19
19
  <a href="https://github.com/twbs/bootstrap/issues/new?template=bug.md">Report bug</a>
@@ -40,10 +40,10 @@
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.4.0`
44
- - Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap-scss@4.4.0`
43
+ - Install with [npm](https://www.npmjs.com/): `npm install bootstrap-scss@4.5.2`
44
+ - Install with [yarn](https://yarnpkg.com/): `yarn add bootstrap-scss@4.5.2`
45
45
 
46
- Read the [Getting started page](https://getbootstrap.com/docs/4.4/getting-started/introduction/) for information on the framework contents, templates and examples, and more.
46
+ Read the [Getting started page](https://getbootstrap.com/docs/4.5/getting-started/introduction/) for information on the framework contents, templates and examples, and more.
47
47
 
48
48
  ## Status
49
49
 
@@ -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/2019/11/26/bootstrap-4-4-0/
79
+ https://blog.getbootstrap.com/2020/08/06/bootstrap-4-5-2/
80
80
 
81
81
  ## Copyright and license
82
82
 
83
- Code and documentation copyright 2011-2019 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-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).
package/_breadcrumb.scss CHANGED
@@ -10,6 +10,8 @@
10
10
  }
11
11
 
12
12
  .breadcrumb-item {
13
+ display: flex;
14
+
13
15
  // The separator between breadcrumbs (by default, a forward-slash: "/")
14
16
  + .breadcrumb-item {
15
17
  padding-left: $breadcrumb-item-padding;
package/_buttons.scss CHANGED
@@ -10,9 +10,9 @@
10
10
  font-weight: $btn-font-weight;
11
11
  color: $body-color;
12
12
  text-align: center;
13
+ text-decoration: if($link-decoration == none, null, none);
13
14
  white-space: $btn-white-space;
14
15
  vertical-align: middle;
15
- cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
16
16
  user-select: none;
17
17
  background-color: transparent;
18
18
  border: $btn-border-width solid transparent;
@@ -37,12 +37,16 @@
37
37
  @include box-shadow(none);
38
38
  }
39
39
 
40
- &:not(:disabled):not(.disabled):active,
41
- &:not(:disabled):not(.disabled).active {
42
- @include box-shadow($btn-active-box-shadow);
40
+ &:not(:disabled):not(.disabled) {
41
+ cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
43
42
 
44
- &:focus {
45
- @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
43
+ &:active,
44
+ &.active {
45
+ @include box-shadow($btn-active-box-shadow);
46
+
47
+ &:focus {
48
+ @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
49
+ }
46
50
  }
47
51
  }
48
52
  }
@@ -89,7 +93,6 @@ fieldset:disabled a.btn {
89
93
  &:focus,
90
94
  &.focus {
91
95
  text-decoration: $link-hover-decoration;
92
- box-shadow: none;
93
96
  }
94
97
 
95
98
  &:disabled,
package/_card.scss CHANGED
@@ -19,17 +19,27 @@
19
19
  margin-left: 0;
20
20
  }
21
21
 
22
- > .list-group:first-child {
23
- .list-group-item:first-child {
24
- @include border-top-radius($card-border-radius);
22
+ > .list-group {
23
+ border-top: inherit;
24
+ border-bottom: inherit;
25
+
26
+ &:first-child {
27
+ border-top-width: 0;
28
+ @include border-top-radius($card-inner-border-radius);
25
29
  }
26
- }
27
30
 
28
- > .list-group:last-child {
29
- .list-group-item:last-child {
30
- @include border-bottom-radius($card-border-radius);
31
+ &:last-child {
32
+ border-bottom-width: 0;
33
+ @include border-bottom-radius($card-inner-border-radius);
31
34
  }
32
35
  }
36
+
37
+ // Due to specificity of the above selector (`.card > .list-group`), we must
38
+ // use a child selector here to prevent double borders.
39
+ > .card-header + .list-group,
40
+ > .list-group + .card-footer {
41
+ border-top: 0;
42
+ }
33
43
  }
34
44
 
35
45
  .card-body {
@@ -80,16 +90,11 @@
80
90
  &:first-child {
81
91
  @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
82
92
  }
83
-
84
- + .list-group {
85
- .list-group-item:first-child {
86
- border-top: 0;
87
- }
88
- }
89
93
  }
90
94
 
91
95
  .card-footer {
92
96
  padding: $card-spacer-y $card-spacer-x;
97
+ color: $card-cap-color;
93
98
  background-color: $card-cap-bg;
94
99
  border-top: $card-border-width solid $card-border-color;
95
100
 
@@ -123,6 +128,7 @@
123
128
  bottom: 0;
124
129
  left: 0;
125
130
  padding: $card-img-overlay-padding;
131
+ @include border-radius($card-inner-border-radius);
126
132
  }
127
133
 
128
134
  .card-img,
@@ -258,6 +264,8 @@
258
264
  //
259
265
 
260
266
  .accordion {
267
+ overflow-anchor: none;
268
+
261
269
  > .card {
262
270
  overflow: hidden;
263
271
 
package/_close.scss CHANGED
@@ -30,7 +30,6 @@ button.close {
30
30
  padding: 0;
31
31
  background-color: transparent;
32
32
  border: 0;
33
- appearance: none;
34
33
  }
35
34
 
36
35
  // Future-proof disabling of clicks on `<a>` elements
@@ -9,6 +9,7 @@
9
9
 
10
10
  .custom-control {
11
11
  position: relative;
12
+ z-index: 1;
12
13
  display: block;
13
14
  min-height: $font-size-base * $line-height-base;
14
15
  padding-left: $custom-control-gutter + $custom-control-indicator-size;
@@ -54,9 +55,9 @@
54
55
  @include box-shadow($custom-control-indicator-active-box-shadow);
55
56
  }
56
57
 
57
- // Use disabled attribute instead of :disabled pseudo-class
58
- // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231
59
- &[disabled] {
58
+ // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
59
+ &[disabled],
60
+ &:disabled {
60
61
  ~ .custom-control-label {
61
62
  color: $custom-control-label-disabled-color;
62
63
 
@@ -135,10 +136,10 @@
135
136
 
136
137
  .custom-control-input:disabled {
137
138
  &:checked ~ .custom-control-label::before {
138
- background-color: $custom-control-indicator-checked-disabled-bg;
139
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
139
140
  }
140
141
  &:indeterminate ~ .custom-control-label::before {
141
- background-color: $custom-control-indicator-checked-disabled-bg;
142
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
142
143
  }
143
144
  }
144
145
  }
@@ -161,7 +162,7 @@
161
162
 
162
163
  .custom-control-input:disabled {
163
164
  &:checked ~ .custom-control-label::before {
164
- background-color: $custom-control-indicator-checked-disabled-bg;
165
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
165
166
  }
166
167
  }
167
168
  }
@@ -204,7 +205,7 @@
204
205
 
205
206
  .custom-control-input:disabled {
206
207
  &:checked ~ .custom-control-label::before {
207
- background-color: $custom-control-indicator-checked-disabled-bg;
208
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
208
209
  }
209
210
  }
210
211
  }
@@ -237,8 +238,9 @@
237
238
  border-color: $custom-select-focus-border-color;
238
239
  outline: 0;
239
240
  @if $enable-shadows {
240
- box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;
241
+ @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);
241
242
  } @else {
243
+ // Avoid using mixin so we can pass custom focus shadow properly
242
244
  box-shadow: $custom-select-focus-box-shadow;
243
245
  }
244
246
 
@@ -319,9 +321,9 @@
319
321
  box-shadow: $custom-file-focus-box-shadow;
320
322
  }
321
323
 
322
- // Use disabled attribute instead of :disabled pseudo-class
323
- // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231
324
- &[disabled] ~ .custom-file-label {
324
+ // Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
325
+ &[disabled] ~ .custom-file-label,
326
+ &:disabled ~ .custom-file-label {
325
327
  background-color: $custom-file-disabled-bg;
326
328
  }
327
329
 
package/_dropdown.scss CHANGED
@@ -128,6 +128,7 @@
128
128
  font-weight: $font-weight-normal;
129
129
  color: $dropdown-link-color;
130
130
  text-align: inherit; // For `<button>`s
131
+ text-decoration: if($link-decoration == none, null, none);
131
132
  white-space: nowrap; // prevent links from randomly breaking onto new lines
132
133
  background-color: transparent; // For `<button>`s
133
134
  border: 0; // For `<button>`s
@@ -176,7 +177,7 @@
176
177
  // Dropdown section headers
177
178
  .dropdown-header {
178
179
  display: block;
179
- padding: $dropdown-padding-y $dropdown-item-padding-x;
180
+ padding: $dropdown-header-padding;
180
181
  margin-bottom: 0; // for use with heading elements
181
182
  @include font-size($font-size-sm);
182
183
  color: $dropdown-header-color;
package/_forms.scss CHANGED
@@ -59,6 +59,15 @@
59
59
  }
60
60
  }
61
61
 
62
+ input[type="date"],
63
+ input[type="time"],
64
+ input[type="datetime-local"],
65
+ input[type="month"] {
66
+ &.form-control {
67
+ appearance: none; // Fix appearance for date inputs in Safari
68
+ }
69
+ }
70
+
62
71
  select.form-control {
63
72
  &:focus::-ms-value {
64
73
  // Suppress the nested default white text on blue background highlight given to
@@ -216,9 +225,9 @@ textarea.form-control {
216
225
  margin-top: $form-check-input-margin-y;
217
226
  margin-left: -$form-check-input-gutter;
218
227
 
219
- // Use disabled attribute instead of :disabled pseudo-class
220
- // Workaround for: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/11295231
221
- &[disabled] ~ .form-check-label {
228
+ // Use [disabled] and :disabled for workaround https://github.com/twbs/bootstrap/issues/28247
229
+ &[disabled] ~ .form-check-label,
230
+ &:disabled ~ .form-check-label {
222
231
  color: $text-muted;
223
232
  }
224
233
  }
package/_functions.scss CHANGED
@@ -23,10 +23,12 @@
23
23
  // Starts at zero
24
24
  // Used to ensure the min-width of the lowest breakpoint starts at 0.
25
25
  @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints") {
26
- $values: map-values($map);
27
- $first-value: nth($values, 1);
28
- @if $first-value != 0 {
29
- @warn "First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.";
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
+ }
30
32
  }
31
33
  }
32
34
 
@@ -52,7 +54,12 @@
52
54
  @function escape-svg($string) {
53
55
  @if str-index($string, "data:image/svg+xml") {
54
56
  @each $char, $encoded in $escaped-characters {
55
- $string: str-replace($string, $char, $encoded);
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
+ }
56
63
  }
57
64
  }
58
65
 
@@ -110,7 +117,7 @@
110
117
  @return $value1 + $value2;
111
118
  }
112
119
 
113
- @return if($return-calc == true, calc(#{$value1} + #{$value2}), #{$value1} + #{$value2});
120
+ @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(" + ") + $value2);
114
121
  }
115
122
 
116
123
  @function subtract($value1, $value2, $return-calc: true) {
@@ -130,5 +137,5 @@
130
137
  @return $value1 - $value2;
131
138
  }
132
139
 
133
- @return if($return-calc == true, calc(#{$value1} - #{$value2}), #{$value1} - #{$value2});
140
+ @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(" - ") + $value2);
134
141
  }
package/_grid.scss CHANGED
@@ -4,11 +4,7 @@
4
4
 
5
5
  @if $enable-grid-classes {
6
6
  // Single container class with breakpoint max-widths
7
- .container {
8
- @include make-container();
9
- @include make-container-max-widths();
10
- }
11
-
7
+ .container,
12
8
  // 100% wide container at all breakpoints
13
9
  .container-fluid {
14
10
  @include make-container();
@@ -25,11 +21,19 @@
25
21
  max-width: $container-max-width;
26
22
  }
27
23
 
24
+ // Extend each breakpoint which is smaller or equal to the current breakpoint
25
+ $extend-breakpoint: true;
26
+
28
27
  @each $name, $width in $grid-breakpoints {
29
- @if ($container-max-width > $width or $breakpoint == $name) {
28
+ @if ($extend-breakpoint) {
30
29
  .container#{breakpoint-infix($name, $grid-breakpoints)} {
31
30
  @extend %responsive-container-#{$breakpoint};
32
31
  }
32
+
33
+ // Once the current breakpoint is reached, stop extending
34
+ @if ($breakpoint == $name) {
35
+ $extend-breakpoint: false;
36
+ }
33
37
  }
34
38
  }
35
39
  }
package/_input-group.scss CHANGED
@@ -16,7 +16,8 @@
16
16
  > .custom-select,
17
17
  > .custom-file {
18
18
  position: relative; // For focus state's z-index
19
- flex: 1 1 0%;
19
+ flex: 1 1 auto;
20
+ width: 1%;
20
21
  min-width: 0; // https://stackoverflow.com/questions/36247140/why-dont-flex-items-shrink-past-content-size
21
22
  margin-bottom: 0;
22
23
 
package/_list-group.scss CHANGED
@@ -9,6 +9,7 @@
9
9
  // No need to set list-style: none; since .list-group-item is block level
10
10
  padding-left: 0; // reset padding because ul and ol
11
11
  margin-bottom: 0;
12
+ @include border-radius($list-group-border-radius);
12
13
  }
13
14
 
14
15
 
@@ -46,15 +47,16 @@
46
47
  display: block;
47
48
  padding: $list-group-item-padding-y $list-group-item-padding-x;
48
49
  color: $list-group-color;
50
+ text-decoration: if($link-decoration == none, null, none);
49
51
  background-color: $list-group-bg;
50
52
  border: $list-group-border-width solid $list-group-border-color;
51
53
 
52
54
  &:first-child {
53
- @include border-top-radius($list-group-border-radius);
55
+ @include border-top-radius(inherit);
54
56
  }
55
57
 
56
58
  &:last-child {
57
- @include border-bottom-radius($list-group-border-radius);
59
+ @include border-bottom-radius(inherit);
58
60
  }
59
61
 
60
62
  &.disabled,
@@ -94,7 +96,7 @@
94
96
  .list-group-horizontal#{$infix} {
95
97
  flex-direction: row;
96
98
 
97
- .list-group-item {
99
+ > .list-group-item {
98
100
  &:first-child {
99
101
  @include border-bottom-left-radius($list-group-border-radius);
100
102
  @include border-top-right-radius(0);
@@ -130,18 +132,12 @@
130
132
  // useful within other components (e.g., cards).
131
133
 
132
134
  .list-group-flush {
133
- .list-group-item {
134
- border-right-width: 0;
135
- border-left-width: 0;
136
- @include border-radius(0);
135
+ @include border-radius(0);
137
136
 
138
- &:first-child {
139
- border-top-width: 0;
140
- }
141
- }
137
+ > .list-group-item {
138
+ border-width: 0 0 $list-group-border-width;
142
139
 
143
- &:last-child {
144
- .list-group-item:last-child {
140
+ &:last-child {
145
141
  border-bottom-width: 0;
146
142
  }
147
143
  }
package/_modal.scss CHANGED
@@ -83,6 +83,7 @@
83
83
  &::before {
84
84
  display: block; // IE10
85
85
  height: subtract(100vh, $modal-dialog-margin * 2);
86
+ height: min-content; // Reset height to 0 except on IE
86
87
  content: "";
87
88
  }
88
89
 
@@ -181,7 +182,6 @@
181
182
  // Place margin between footer elements
182
183
  // This solution is far from ideal because of the universal selector usage,
183
184
  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
184
- // stylelint-disable-next-line selector-max-universal
185
185
  > * {
186
186
  margin: $modal-footer-margin-between / 2;
187
187
  }
@@ -217,6 +217,7 @@
217
217
 
218
218
  &::before {
219
219
  height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
220
+ height: min-content;
220
221
  }
221
222
  }
222
223
 
package/_nav.scss CHANGED
@@ -14,6 +14,7 @@
14
14
  .nav-link {
15
15
  display: block;
16
16
  padding: $nav-link-padding-y $nav-link-padding-x;
17
+ text-decoration: if($link-decoration == none, null, none);
17
18
 
18
19
  @include hover-focus() {
19
20
  text-decoration: none;
@@ -91,6 +92,7 @@
91
92
  //
92
93
 
93
94
  .nav-fill {
95
+ > .nav-link,
94
96
  .nav-item {
95
97
  flex: 1 1 auto;
96
98
  text-align: center;
@@ -98,6 +100,7 @@
98
100
  }
99
101
 
100
102
  .nav-justified {
103
+ > .nav-link,
101
104
  .nav-item {
102
105
  flex-basis: 0;
103
106
  flex-grow: 1;
package/_pagination.scss CHANGED
@@ -11,6 +11,7 @@
11
11
  margin-left: -$pagination-border-width;
12
12
  line-height: $pagination-line-height;
13
13
  color: $pagination-color;
14
+ text-decoration: if($link-decoration == none, null, none);
14
15
  background-color: $pagination-bg;
15
16
  border: $pagination-border-width solid $pagination-border-color;
16
17
 
package/_progress.scss CHANGED
@@ -10,6 +10,7 @@
10
10
  display: flex;
11
11
  height: $progress-height;
12
12
  overflow: hidden; // force rounded corners by cropping it
13
+ line-height: 0;
13
14
  @include font-size($progress-font-size);
14
15
  background-color: $progress-bg;
15
16
  @include border-radius($progress-border-radius);
package/_reboot.scss CHANGED
@@ -199,7 +199,7 @@ a {
199
199
  // causes specificity issues in many other styles that are too complex to fix.
200
200
  // See https://github.com/twbs/bootstrap/issues/19402
201
201
 
202
- a:not([href]) {
202
+ a:not([href]):not([class]) {
203
203
  color: inherit;
204
204
  text-decoration: none;
205
205
 
@@ -229,6 +229,9 @@ pre {
229
229
  margin-bottom: 1rem;
230
230
  // Don't allow content to break outside
231
231
  overflow: auto;
232
+ // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,
233
+ // making it impossible to interact with the content
234
+ -ms-overflow-style: scrollbar;
232
235
  }
233
236
 
234
237
 
@@ -330,6 +333,13 @@ select {
330
333
  text-transform: none; // Remove the inheritance of text transform in Firefox
331
334
  }
332
335
 
336
+ // Set the cursor for non-`<button>` buttons
337
+ //
338
+ // Details at https://github.com/twbs/bootstrap/pull/30562
339
+ [role="button"] {
340
+ cursor: pointer;
341
+ }
342
+
333
343
  // Remove the inheritance of word-wrap in Safari.
334
344
  //
335
345
  // Details at https://github.com/twbs/bootstrap/issues/24990
@@ -376,18 +386,6 @@ input[type="checkbox"] {
376
386
  }
377
387
 
378
388
 
379
- input[type="date"],
380
- input[type="time"],
381
- input[type="datetime-local"],
382
- input[type="month"] {
383
- // Remove the default appearance of temporal inputs to avoid a Mobile Safari
384
- // bug where setting a custom line-height prevents text from being vertically
385
- // centered within the input.
386
- // See https://bugs.webkit.org/show_bug.cgi?id=139848
387
- // and https://github.com/twbs/bootstrap/issues/11266
388
- -webkit-appearance: listbox;
389
- }
390
-
391
389
  textarea {
392
390
  overflow: auto; // Remove the default vertical scrollbar in IE.
393
391
  // Textareas should really only resize vertically so they don't break their (horizontal) containers.
package/_spinners.scss CHANGED
@@ -34,6 +34,7 @@
34
34
  }
35
35
  50% {
36
36
  opacity: 1;
37
+ transform: none;
37
38
  }
38
39
  }
39
40
 
package/_toasts.scss CHANGED
@@ -1,13 +1,14 @@
1
1
  .toast {
2
+ // Prevents from shrinking in IE11, when in a flex container
3
+ // See https://github.com/twbs/bootstrap/issues/28341
4
+ flex-basis: $toast-max-width;
2
5
  max-width: $toast-max-width;
3
- overflow: hidden; // cheap rounded corners on nested items
4
6
  @include font-size($toast-font-size);
5
7
  color: $toast-color;
6
8
  background-color: $toast-background-color;
7
9
  background-clip: padding-box;
8
10
  border: $toast-border-width solid $toast-border-color;
9
11
  box-shadow: $toast-box-shadow;
10
- backdrop-filter: blur(10px);
11
12
  opacity: 0;
12
13
  @include border-radius($toast-border-radius);
13
14
 
@@ -37,6 +38,7 @@
37
38
  background-color: $toast-header-background-color;
38
39
  background-clip: padding-box;
39
40
  border-bottom: $toast-border-width solid $toast-header-border-color;
41
+ @include border-top-radius(subtract($toast-border-radius, $toast-border-width));
40
42
  }
41
43
 
42
44
  .toast-body {
package/_utilities.scss CHANGED
@@ -6,12 +6,13 @@
6
6
  @import "utilities/embed";
7
7
  @import "utilities/flex";
8
8
  @import "utilities/float";
9
+ @import "utilities/interactions";
9
10
  @import "utilities/overflow";
10
11
  @import "utilities/position";
11
12
  @import "utilities/screenreaders";
12
13
  @import "utilities/shadows";
13
14
  @import "utilities/sizing";
14
- @import "utilities/stretched-link";
15
15
  @import "utilities/spacing";
16
+ @import "utilities/stretched-link";
16
17
  @import "utilities/text";
17
18
  @import "utilities/visibility";
package/_variables.scss CHANGED
@@ -18,7 +18,6 @@ $gray-900: #212529 !default;
18
18
  $black: #000 !default;
19
19
 
20
20
  $grays: () !default;
21
- // stylelint-disable-next-line scss/dollar-variable-default
22
21
  $grays: map-merge(
23
22
  (
24
23
  "100": $gray-100,
@@ -46,7 +45,6 @@ $teal: #20c997 !default;
46
45
  $cyan: #17a2b8 !default;
47
46
 
48
47
  $colors: () !default;
49
- // stylelint-disable-next-line scss/dollar-variable-default
50
48
  $colors: map-merge(
51
49
  (
52
50
  "blue": $blue,
@@ -76,7 +74,6 @@ $light: $gray-100 !default;
76
74
  $dark: $gray-800 !default;
77
75
 
78
76
  $theme-colors: () !default;
79
- // stylelint-disable-next-line scss/dollar-variable-default
80
77
  $theme-colors: map-merge(
81
78
  (
82
79
  "primary": $primary,
@@ -103,9 +100,11 @@ $yiq-text-light: $white !default;
103
100
 
104
101
  // Characters which are escaped by the escape-svg function
105
102
  $escaped-characters: (
106
- ("<","%3c"),
107
- (">","%3e"),
108
- ("#","%23"),
103
+ ("<", "%3c"),
104
+ (">", "%3e"),
105
+ ("#", "%23"),
106
+ ("(", "%28"),
107
+ (")", "%29"),
109
108
  ) !default;
110
109
 
111
110
 
@@ -136,7 +135,6 @@ $enable-deprecation-messages: true !default;
136
135
 
137
136
  $spacer: 1rem !default;
138
137
  $spacers: () !default;
139
- // stylelint-disable-next-line scss/dollar-variable-default
140
138
  $spacers: map-merge(
141
139
  (
142
140
  0: 0,
@@ -151,7 +149,6 @@ $spacers: map-merge(
151
149
 
152
150
  // This variable affects the `.h-*` and `.w-*` classes.
153
151
  $sizes: () !default;
154
- // stylelint-disable-next-line scss/dollar-variable-default
155
152
  $sizes: map-merge(
156
153
  (
157
154
  25: 25%,
@@ -262,7 +259,6 @@ $transition-fade: opacity .15s linear !default;
262
259
  $transition-collapse: height .35s ease !default;
263
260
 
264
261
  $embed-responsive-aspect-ratios: () !default;
265
- // stylelint-disable-next-line scss/dollar-variable-default
266
262
  $embed-responsive-aspect-ratios: join(
267
263
  (
268
264
  (21 9),
@@ -544,7 +540,7 @@ $custom-control-label-disabled-color: $gray-600 !default;
544
540
  $custom-control-indicator-checked-color: $component-active-color !default;
545
541
  $custom-control-indicator-checked-bg: $component-active-bg !default;
546
542
  $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
547
- $custom-control-indicator-checked-box-shadow: none !default;
543
+ $custom-control-indicator-checked-box-shadow: null !default;
548
544
  $custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;
549
545
 
550
546
  $custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
@@ -552,7 +548,7 @@ $custom-control-indicator-focus-border-color: $input-focus-border-color !defau
552
548
 
553
549
  $custom-control-indicator-active-color: $component-active-color !default;
554
550
  $custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
555
- $custom-control-indicator-active-box-shadow: none !default;
551
+ $custom-control-indicator-active-box-shadow: null !default;
556
552
  $custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;
557
553
 
558
554
  $custom-checkbox-indicator-border-radius: $border-radius !default;
@@ -561,7 +557,7 @@ $custom-checkbox-indicator-icon-checked: url("data:image/svg+xml,<svg xml
561
557
  $custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
562
558
  $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
563
559
  $custom-checkbox-indicator-icon-indeterminate: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'><path stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/></svg>") !default;
564
- $custom-checkbox-indicator-indeterminate-box-shadow: none !default;
560
+ $custom-checkbox-indicator-indeterminate-box-shadow: null !default;
565
561
  $custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;
566
562
 
567
563
  $custom-radio-indicator-border-radius: 50% !default;
@@ -666,7 +662,6 @@ $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;
666
662
  $form-feedback-icon-invalid: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='#{$form-feedback-icon-invalid-color}' viewBox='0 0 12 12'><circle cx='6' cy='6' r='4.5'/><path stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/><circle cx='6' cy='8.2' r='.6' fill='#{$form-feedback-icon-invalid-color}' stroke='none'/></svg>") !default;
667
663
 
668
664
  $form-validation-states: () !default;
669
- // stylelint-disable-next-line scss/dollar-variable-default
670
665
  $form-validation-states: map-merge(
671
666
  (
672
667
  "valid": (
@@ -786,6 +781,7 @@ $dropdown-item-padding-y: .25rem !default;
786
781
  $dropdown-item-padding-x: 1.5rem !default;
787
782
 
788
783
  $dropdown-header-color: $gray-600 !default;
784
+ $dropdown-header-padding: $dropdown-padding-y $dropdown-item-padding-x !default;
789
785
 
790
786
 
791
787
  // Pagination
@@ -1135,6 +1131,7 @@ $pre-scrollable-max-height: 340px !default;
1135
1131
  $displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;
1136
1132
  $overflows: auto, hidden !default;
1137
1133
  $positions: static, relative, absolute, fixed, sticky !default;
1134
+ $user-selects: all, auto, none !default;
1138
1135
 
1139
1136
 
1140
1137
  // Printing
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap Grid v4.4.0 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors
4
+ * Copyright 2011-2020 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
8
  html {
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.4.0 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors
4
+ * Copyright 2011-2020 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7
7
  */
8
8
 
package/bootstrap.scss CHANGED
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap v4.4.0 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap v4.5.2 (https://getbootstrap.com/)
3
+ * Copyright 2011-2020 The Bootstrap Authors
4
+ * Copyright 2011-2020 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
8
  @import "functions";
@@ -15,8 +15,9 @@
15
15
  @include deprecate("The `bg-variant` mixin", "v4.4.0", "v5", $ignore-warning);
16
16
  }
17
17
 
18
- @mixin bg-gradient-variant($parent, $color) {
18
+ @mixin bg-gradient-variant($parent, $color, $ignore-warning: false) {
19
19
  #{$parent} {
20
20
  background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
21
21
  }
22
+ @include deprecate("The `bg-gradient-variant` mixin", "v4.5.0", "v5", $ignore-warning);
22
23
  }
@@ -1,9 +1,22 @@
1
1
  // stylelint-disable property-blacklist
2
2
  // Single side border-radius
3
3
 
4
+ // Helper function to replace negative values with 0
5
+ @function valid-radius($radius) {
6
+ $return: ();
7
+ @each $value in $radius {
8
+ @if type-of($value) == number {
9
+ $return: append($return, max($value, 0));
10
+ } @else {
11
+ $return: append($return, $value);
12
+ }
13
+ }
14
+ @return $return;
15
+ }
16
+
4
17
  @mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {
5
18
  @if $enable-rounded {
6
- border-radius: $radius;
19
+ border-radius: valid-radius($radius);
7
20
  }
8
21
  @else if $fallback-border-radius != false {
9
22
  border-radius: $fallback-border-radius;
@@ -12,52 +25,52 @@
12
25
 
13
26
  @mixin border-top-radius($radius) {
14
27
  @if $enable-rounded {
15
- border-top-left-radius: $radius;
16
- border-top-right-radius: $radius;
28
+ border-top-left-radius: valid-radius($radius);
29
+ border-top-right-radius: valid-radius($radius);
17
30
  }
18
31
  }
19
32
 
20
33
  @mixin border-right-radius($radius) {
21
34
  @if $enable-rounded {
22
- border-top-right-radius: $radius;
23
- border-bottom-right-radius: $radius;
35
+ border-top-right-radius: valid-radius($radius);
36
+ border-bottom-right-radius: valid-radius($radius);
24
37
  }
25
38
  }
26
39
 
27
40
  @mixin border-bottom-radius($radius) {
28
41
  @if $enable-rounded {
29
- border-bottom-right-radius: $radius;
30
- border-bottom-left-radius: $radius;
42
+ border-bottom-right-radius: valid-radius($radius);
43
+ border-bottom-left-radius: valid-radius($radius);
31
44
  }
32
45
  }
33
46
 
34
47
  @mixin border-left-radius($radius) {
35
48
  @if $enable-rounded {
36
- border-top-left-radius: $radius;
37
- border-bottom-left-radius: $radius;
49
+ border-top-left-radius: valid-radius($radius);
50
+ border-bottom-left-radius: valid-radius($radius);
38
51
  }
39
52
  }
40
53
 
41
54
  @mixin border-top-left-radius($radius) {
42
55
  @if $enable-rounded {
43
- border-top-left-radius: $radius;
56
+ border-top-left-radius: valid-radius($radius);
44
57
  }
45
58
  }
46
59
 
47
60
  @mixin border-top-right-radius($radius) {
48
61
  @if $enable-rounded {
49
- border-top-right-radius: $radius;
62
+ border-top-right-radius: valid-radius($radius);
50
63
  }
51
64
  }
52
65
 
53
66
  @mixin border-bottom-right-radius($radius) {
54
67
  @if $enable-rounded {
55
- border-bottom-right-radius: $radius;
68
+ border-bottom-right-radius: valid-radius($radius);
56
69
  }
57
70
  }
58
71
 
59
72
  @mixin border-bottom-left-radius($radius) {
60
73
  @if $enable-rounded {
61
- border-bottom-left-radius: $radius;
74
+ border-bottom-left-radius: valid-radius($radius);
62
75
  }
63
76
  }
@@ -20,10 +20,10 @@
20
20
  color: color-yiq($hover-background);
21
21
  @include gradient-bg($hover-background);
22
22
  border-color: $hover-border;
23
- // Avoid using mixin so we can pass custom focus shadow properly
24
23
  @if $enable-shadows {
25
- box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
24
+ @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));
26
25
  } @else {
26
+ // Avoid using mixin so we can pass custom focus shadow properly
27
27
  box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
28
28
  }
29
29
  }
@@ -51,10 +51,10 @@
51
51
  border-color: $active-border;
52
52
 
53
53
  &:focus {
54
- // Avoid using mixin so we can pass custom focus shadow properly
55
54
  @if $enable-shadows and $btn-active-box-shadow != none {
56
- box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
55
+ @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5));
57
56
  } @else {
57
+ // Avoid using mixin so we can pass custom focus shadow properly
58
58
  box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);
59
59
  }
60
60
  }
@@ -90,10 +90,10 @@
90
90
  border-color: $active-border;
91
91
 
92
92
  &:focus {
93
- // Avoid using mixin so we can pass custom focus shadow properly
94
93
  @if $enable-shadows and $btn-active-box-shadow != none {
95
- box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);
94
+ @include box-shadow($btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5));
96
95
  } @else {
96
+ // Avoid using mixin so we can pass custom focus shadow properly
97
97
  box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
98
98
  }
99
99
  }
@@ -16,10 +16,10 @@
16
16
  background-color: $input-focus-bg;
17
17
  border-color: $input-focus-border-color;
18
18
  outline: 0;
19
- // Avoid using mixin so we can pass custom focus shadow properly
20
19
  @if $enable-shadows {
21
- box-shadow: $input-box-shadow, $input-focus-box-shadow;
20
+ @include box-shadow($input-box-shadow, $input-focus-box-shadow);
22
21
  } @else {
22
+ // Avoid using mixin so we can pass custom focus shadow properly
23
23
  box-shadow: $input-focus-box-shadow;
24
24
  }
25
25
  }
@@ -53,6 +53,7 @@
53
53
  .#{$state}-tooltip {
54
54
  position: absolute;
55
55
  top: 100%;
56
+ left: 0;
56
57
  z-index: 5;
57
58
  display: none;
58
59
  max-width: 100%; // Contain to parent when possible
@@ -15,12 +15,15 @@
15
15
  @each $breakpoint in map-keys($breakpoints) {
16
16
  $infix: breakpoint-infix($breakpoint, $breakpoints);
17
17
 
18
- // Allow columns to stretch full width below their breakpoints
19
- @for $i from 1 through $columns {
20
- .col#{$infix}-#{$i} {
21
- @extend %grid-column;
18
+ @if $columns > 0 {
19
+ // Allow columns to stretch full width below their breakpoints
20
+ @for $i from 1 through $columns {
21
+ .col#{$infix}-#{$i} {
22
+ @extend %grid-column;
23
+ }
22
24
  }
23
25
  }
26
+
24
27
  .col#{$infix},
25
28
  .col#{$infix}-auto {
26
29
  @extend %grid-column;
@@ -34,9 +37,11 @@
34
37
  max-width: 100%;
35
38
  }
36
39
 
37
- @for $i from 1 through $grid-row-columns {
38
- .row-cols#{$infix}-#{$i} {
39
- @include row-cols($i);
40
+ @if $grid-row-columns > 0 {
41
+ @for $i from 1 through $grid-row-columns {
42
+ .row-cols#{$infix}-#{$i} {
43
+ @include row-cols($i);
44
+ }
40
45
  }
41
46
  }
42
47
 
@@ -44,9 +49,11 @@
44
49
  @include make-col-auto();
45
50
  }
46
51
 
47
- @for $i from 1 through $columns {
48
- .col#{$infix}-#{$i} {
49
- @include make-col($i, $columns);
52
+ @if $columns > 0 {
53
+ @for $i from 1 through $columns {
54
+ .col#{$infix}-#{$i} {
55
+ @include make-col($i, $columns);
56
+ }
50
57
  }
51
58
  }
52
59
 
@@ -58,11 +65,13 @@
58
65
  .order#{$infix}-#{$i} { order: $i; }
59
66
  }
60
67
 
61
- // `$columns - 1` because offsetting by the width of an entire row isn't possible
62
- @for $i from 0 through ($columns - 1) {
63
- @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
64
- .offset#{$infix}-#{$i} {
65
- @include make-col-offset($i, $columns);
68
+ @if $columns > 0 {
69
+ // `$columns - 1` because offsetting by the width of an entire row isn't possible
70
+ @for $i from 0 through ($columns - 1) {
71
+ @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
72
+ .offset#{$infix}-#{$i} {
73
+ @include make-col-offset($i, $columns);
74
+ }
66
75
  }
67
76
  }
68
77
  }
package/mixins/_grid.scss CHANGED
@@ -10,6 +10,12 @@
10
10
  margin-left: auto;
11
11
  }
12
12
 
13
+ @mixin make-row($gutter: $grid-gutter-width) {
14
+ display: flex;
15
+ flex-wrap: wrap;
16
+ margin-right: -$gutter / 2;
17
+ margin-left: -$gutter / 2;
18
+ }
13
19
 
14
20
  // For each breakpoint, define the maximum width of the container in a media query
15
21
  @mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
@@ -18,13 +24,7 @@
18
24
  max-width: $container-max-width;
19
25
  }
20
26
  }
21
- }
22
-
23
- @mixin make-row($gutter: $grid-gutter-width) {
24
- display: flex;
25
- flex-wrap: wrap;
26
- margin-right: -$gutter / 2;
27
- margin-left: -$gutter / 2;
27
+ @include deprecate("The `make-container-max-widths` mixin", "v4.5.2", "v5");
28
28
  }
29
29
 
30
30
  @mixin make-col-ready($gutter: $grid-gutter-width) {
@@ -1,16 +1,26 @@
1
1
  // stylelint-disable property-blacklist
2
2
  @mixin transition($transition...) {
3
+ @if length($transition) == 0 {
4
+ $transition: $transition-base;
5
+ }
6
+
7
+ @if length($transition) > 1 {
8
+ @each $value in $transition {
9
+ @if $value == null or $value == none {
10
+ @warn "The keyword 'none' or 'null' must be used as a single argument.";
11
+ }
12
+ }
13
+ }
14
+
3
15
  @if $enable-transitions {
4
- @if length($transition) == 0 {
5
- transition: $transition-base;
6
- } @else {
16
+ @if nth($transition, 1) != null {
7
17
  transition: $transition;
8
18
  }
9
- }
10
19
 
11
- @if $enable-prefers-reduced-motion-media-query {
12
- @media (prefers-reduced-motion: reduce) {
13
- transition: none;
20
+ @if $enable-prefers-reduced-motion-media-query and nth($transition, 1) != null and nth($transition, 1) != none {
21
+ @media (prefers-reduced-motion: reduce) {
22
+ transition: none;
23
+ }
14
24
  }
15
25
  }
16
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bootstrap-scss",
3
- "version": "4.4.0",
3
+ "version": "4.5.2",
4
4
  "description": "Bootstrap's SCSS files (only)",
5
5
  "main": "bootstrap.scss",
6
6
  "repository": {
@@ -6,7 +6,7 @@
6
6
 
7
7
  @if $enable-gradients {
8
8
  @each $color, $value in $theme-colors {
9
- @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
9
+ @include bg-gradient-variant(".bg-gradient-#{$color}", $value, true);
10
10
  }
11
11
  }
12
12
 
@@ -0,0 +1,5 @@
1
+ // stylelint-disable declaration-no-important
2
+
3
+ @each $value in $user-selects {
4
+ .user-select-#{$value} { user-select: $value !important; }
5
+ }