bootstrap-scss 4.4.0 → 4.5.2

Sign up to get free protection for your applications and to get access to all the features.
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
+ }