bootstrap 4.3.1 → 4.5.0
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.
Potentially problematic release.
This version of bootstrap might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +2 -14
- data/README.md +1 -1
- data/assets/javascripts/bootstrap/alert.js +26 -35
- data/assets/javascripts/bootstrap/button.js +93 -52
- data/assets/javascripts/bootstrap/carousel.js +122 -120
- data/assets/javascripts/bootstrap/collapse.js +75 -71
- data/assets/javascripts/bootstrap/dropdown.js +143 -140
- data/assets/javascripts/bootstrap/modal.js +165 -134
- data/assets/javascripts/bootstrap/popover.js +47 -39
- data/assets/javascripts/bootstrap/scrollspy.js +71 -71
- data/assets/javascripts/bootstrap/tab.js +51 -60
- data/assets/javascripts/bootstrap/toast.js +84 -72
- data/assets/javascripts/bootstrap/tooltip.js +141 -131
- data/assets/javascripts/bootstrap/util.js +28 -7
- data/assets/javascripts/bootstrap-sprockets.js +6 -6
- data/assets/javascripts/bootstrap.js +811 -826
- data/assets/javascripts/bootstrap.min.js +3 -3
- data/assets/stylesheets/_bootstrap-grid.scss +3 -3
- data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
- data/assets/stylesheets/_bootstrap.scss +3 -3
- data/assets/stylesheets/bootstrap/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -1
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
- data/assets/stylesheets/bootstrap/_card.scss +28 -35
- data/assets/stylesheets/bootstrap/_carousel.scss +6 -6
- data/assets/stylesheets/bootstrap/_close.scss +2 -3
- data/assets/stylesheets/bootstrap/_code.scss +1 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +24 -9
- data/assets/stylesheets/bootstrap/_dropdown.scss +5 -4
- data/assets/stylesheets/bootstrap/_forms.scss +26 -9
- data/assets/stylesheets/bootstrap/_functions.scss +60 -5
- data/assets/stylesheets/bootstrap/_grid.scss +33 -8
- data/assets/stylesheets/bootstrap/_images.scss +2 -2
- data/assets/stylesheets/bootstrap/_input-group.scss +1 -2
- data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
- data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
- data/assets/stylesheets/bootstrap/_modal.scss +28 -16
- data/assets/stylesheets/bootstrap/_nav.scss +4 -3
- data/assets/stylesheets/bootstrap/_navbar.scss +45 -15
- data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
- data/assets/stylesheets/bootstrap/_popover.scss +8 -9
- data/assets/stylesheets/bootstrap/_print.scss +2 -2
- data/assets/stylesheets/bootstrap/_progress.scss +6 -2
- data/assets/stylesheets/bootstrap/_reboot.scss +24 -27
- data/assets/stylesheets/bootstrap/_root.scss +1 -0
- data/assets/stylesheets/bootstrap/_spinners.scss +1 -0
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +46 -22
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
- data/assets/stylesheets/bootstrap/mixins/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +26 -13
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +11 -8
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
- data/assets/stylesheets/bootstrap/mixins/_float.scss +3 -3
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +34 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +30 -15
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -0
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_list-group.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_table-row.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +3 -2
- data/assets/stylesheets/bootstrap/mixins/_transition.scss +17 -7
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_text.scss +3 -4
- data/bootstrap.gemspec +1 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/network.rb +2 -2
- data/test/dummy_rails/app/assets/config/manifest.js +3 -0
- data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
- data/test/gemfiles/rails_6_0.gemfile +7 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +11 -5
@@ -48,14 +48,19 @@
|
|
48
48
|
.modal.show & {
|
49
49
|
transform: $modal-show-transform;
|
50
50
|
}
|
51
|
+
|
52
|
+
// When trying to close, animate focus to scale
|
53
|
+
.modal.modal-static & {
|
54
|
+
transform: $modal-scale-transform;
|
55
|
+
}
|
51
56
|
}
|
52
57
|
|
53
58
|
.modal-dialog-scrollable {
|
54
59
|
display: flex; // IE10/11
|
55
|
-
max-height:
|
60
|
+
max-height: subtract(100%, $modal-dialog-margin * 2);
|
56
61
|
|
57
62
|
.modal-content {
|
58
|
-
max-height:
|
63
|
+
max-height: subtract(100vh, $modal-dialog-margin * 2); // IE10/11
|
59
64
|
overflow: hidden;
|
60
65
|
}
|
61
66
|
|
@@ -72,12 +77,13 @@
|
|
72
77
|
.modal-dialog-centered {
|
73
78
|
display: flex;
|
74
79
|
align-items: center;
|
75
|
-
min-height:
|
80
|
+
min-height: subtract(100%, $modal-dialog-margin * 2);
|
76
81
|
|
77
82
|
// Ensure `modal-dialog-centered` extends the full height of the view (IE10/11)
|
78
83
|
&::before {
|
79
84
|
display: block; // IE10
|
80
|
-
height:
|
85
|
+
height: subtract(100vh, $modal-dialog-margin * 2);
|
86
|
+
height: min-content; // Reset height to 0 except on IE
|
81
87
|
content: "";
|
82
88
|
}
|
83
89
|
|
@@ -138,7 +144,7 @@
|
|
138
144
|
justify-content: space-between; // Put modal header elements (title and dismiss) on opposite ends
|
139
145
|
padding: $modal-header-padding;
|
140
146
|
border-bottom: $modal-header-border-width solid $modal-header-border-color;
|
141
|
-
@include border-top-radius($modal-content-border-radius);
|
147
|
+
@include border-top-radius($modal-content-inner-border-radius);
|
142
148
|
|
143
149
|
.close {
|
144
150
|
padding: $modal-header-padding;
|
@@ -158,7 +164,7 @@
|
|
158
164
|
.modal-body {
|
159
165
|
position: relative;
|
160
166
|
// Enable `flex-grow: 1` so that the body take up as much space as possible
|
161
|
-
// when should
|
167
|
+
// when there should be a fixed height on `.modal-dialog`.
|
162
168
|
flex: 1 1 auto;
|
163
169
|
padding: $modal-inner-padding;
|
164
170
|
}
|
@@ -166,15 +172,20 @@
|
|
166
172
|
// Footer (for actions)
|
167
173
|
.modal-footer {
|
168
174
|
display: flex;
|
175
|
+
flex-wrap: wrap;
|
169
176
|
align-items: center; // vertically center
|
170
177
|
justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
|
171
|
-
padding: $modal-inner-padding;
|
178
|
+
padding: $modal-inner-padding - $modal-footer-margin-between / 2;
|
172
179
|
border-top: $modal-footer-border-width solid $modal-footer-border-color;
|
173
|
-
@include border-bottom-radius($modal-content-border-radius);
|
174
|
-
|
175
|
-
//
|
176
|
-
|
177
|
-
|
180
|
+
@include border-bottom-radius($modal-content-inner-border-radius);
|
181
|
+
|
182
|
+
// Place margin between footer elements
|
183
|
+
// This solution is far from ideal because of the universal selector usage,
|
184
|
+
// but is needed to fix https://github.com/twbs/bootstrap/issues/24800
|
185
|
+
// stylelint-disable-next-line selector-max-universal
|
186
|
+
> * {
|
187
|
+
margin: $modal-footer-margin-between / 2;
|
188
|
+
}
|
178
189
|
}
|
179
190
|
|
180
191
|
// Measure scrollbar width for padding body during modal show/hide
|
@@ -195,18 +206,19 @@
|
|
195
206
|
}
|
196
207
|
|
197
208
|
.modal-dialog-scrollable {
|
198
|
-
max-height:
|
209
|
+
max-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
|
199
210
|
|
200
211
|
.modal-content {
|
201
|
-
max-height:
|
212
|
+
max-height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
|
202
213
|
}
|
203
214
|
}
|
204
215
|
|
205
216
|
.modal-dialog-centered {
|
206
|
-
min-height:
|
217
|
+
min-height: subtract(100%, $modal-dialog-margin-y-sm-up * 2);
|
207
218
|
|
208
219
|
&::before {
|
209
|
-
height:
|
220
|
+
height: subtract(100vh, $modal-dialog-margin-y-sm-up * 2);
|
221
|
+
height: min-content;
|
210
222
|
}
|
211
223
|
}
|
212
224
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// Base class
|
2
2
|
//
|
3
3
|
// Kickstart any navigation component with a set of style resets. Works with
|
4
|
-
// `<nav>`s or `<
|
4
|
+
// `<nav>`s, `<ul>`s or `<ol>`s.
|
5
5
|
|
6
6
|
.nav {
|
7
7
|
display: flex;
|
@@ -14,8 +14,9 @@
|
|
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
|
-
@include hover-focus {
|
19
|
+
@include hover-focus() {
|
19
20
|
text-decoration: none;
|
20
21
|
}
|
21
22
|
|
@@ -42,7 +43,7 @@
|
|
42
43
|
border: $nav-tabs-border-width solid transparent;
|
43
44
|
@include border-top-radius($nav-tabs-border-radius);
|
44
45
|
|
45
|
-
@include hover-focus {
|
46
|
+
@include hover-focus() {
|
46
47
|
border-color: $nav-tabs-link-hover-border-color;
|
47
48
|
}
|
48
49
|
|
@@ -25,13 +25,23 @@
|
|
25
25
|
|
26
26
|
// Because flex properties aren't inherited, we need to redeclare these first
|
27
27
|
// few properties so that content nested within behave properly.
|
28
|
-
|
29
|
-
> .container-fluid {
|
28
|
+
%container-flex-properties {
|
30
29
|
display: flex;
|
31
30
|
flex-wrap: wrap;
|
32
31
|
align-items: center;
|
33
32
|
justify-content: space-between;
|
34
33
|
}
|
34
|
+
|
35
|
+
.container,
|
36
|
+
.container-fluid {
|
37
|
+
@extend %container-flex-properties;
|
38
|
+
}
|
39
|
+
|
40
|
+
@each $breakpoint, $container-max-width in $container-max-widths {
|
41
|
+
> .container#{breakpoint-infix($breakpoint, $container-max-widths)} {
|
42
|
+
@extend %container-flex-properties;
|
43
|
+
}
|
44
|
+
}
|
35
45
|
}
|
36
46
|
|
37
47
|
|
@@ -48,7 +58,7 @@
|
|
48
58
|
line-height: inherit;
|
49
59
|
white-space: nowrap;
|
50
60
|
|
51
|
-
@include hover-focus {
|
61
|
+
@include hover-focus() {
|
52
62
|
text-decoration: none;
|
53
63
|
}
|
54
64
|
}
|
@@ -113,7 +123,7 @@
|
|
113
123
|
border: $border-width solid transparent; // remove default button style
|
114
124
|
@include border-radius($navbar-toggler-border-radius);
|
115
125
|
|
116
|
-
@include hover-focus {
|
126
|
+
@include hover-focus() {
|
117
127
|
text-decoration: none;
|
118
128
|
}
|
119
129
|
}
|
@@ -139,11 +149,21 @@
|
|
139
149
|
|
140
150
|
&#{$infix} {
|
141
151
|
@include media-breakpoint-down($breakpoint) {
|
142
|
-
|
143
|
-
> .container-fluid {
|
152
|
+
%container-navbar-expand-#{$breakpoint} {
|
144
153
|
padding-right: 0;
|
145
154
|
padding-left: 0;
|
146
155
|
}
|
156
|
+
|
157
|
+
> .container,
|
158
|
+
> .container-fluid {
|
159
|
+
@extend %container-navbar-expand-#{$breakpoint};
|
160
|
+
}
|
161
|
+
|
162
|
+
@each $size, $container-max-width in $container-max-widths {
|
163
|
+
> .container#{breakpoint-infix($size, $container-max-widths)} {
|
164
|
+
@extend %container-navbar-expand-#{$breakpoint};
|
165
|
+
}
|
166
|
+
}
|
147
167
|
}
|
148
168
|
|
149
169
|
@include media-breakpoint-up($next) {
|
@@ -164,9 +184,19 @@
|
|
164
184
|
}
|
165
185
|
|
166
186
|
// For nesting containers, have to redeclare for alignment purposes
|
187
|
+
%container-nesting-#{$breakpoint} {
|
188
|
+
flex-wrap: nowrap;
|
189
|
+
}
|
190
|
+
|
167
191
|
> .container,
|
168
192
|
> .container-fluid {
|
169
|
-
|
193
|
+
@extend %container-nesting-#{$breakpoint};
|
194
|
+
}
|
195
|
+
|
196
|
+
@each $size, $container-max-width in $container-max-widths {
|
197
|
+
> .container#{breakpoint-infix($size, $container-max-widths)} {
|
198
|
+
@extend %container-nesting-#{$breakpoint};
|
199
|
+
}
|
170
200
|
}
|
171
201
|
|
172
202
|
.navbar-collapse {
|
@@ -194,7 +224,7 @@
|
|
194
224
|
.navbar-brand {
|
195
225
|
color: $navbar-light-brand-color;
|
196
226
|
|
197
|
-
@include hover-focus {
|
227
|
+
@include hover-focus() {
|
198
228
|
color: $navbar-light-brand-hover-color;
|
199
229
|
}
|
200
230
|
}
|
@@ -203,7 +233,7 @@
|
|
203
233
|
.nav-link {
|
204
234
|
color: $navbar-light-color;
|
205
235
|
|
206
|
-
@include hover-focus {
|
236
|
+
@include hover-focus() {
|
207
237
|
color: $navbar-light-hover-color;
|
208
238
|
}
|
209
239
|
|
@@ -226,7 +256,7 @@
|
|
226
256
|
}
|
227
257
|
|
228
258
|
.navbar-toggler-icon {
|
229
|
-
background-image: $navbar-light-toggler-icon-bg;
|
259
|
+
background-image: escape-svg($navbar-light-toggler-icon-bg);
|
230
260
|
}
|
231
261
|
|
232
262
|
.navbar-text {
|
@@ -234,7 +264,7 @@
|
|
234
264
|
a {
|
235
265
|
color: $navbar-light-active-color;
|
236
266
|
|
237
|
-
@include hover-focus {
|
267
|
+
@include hover-focus() {
|
238
268
|
color: $navbar-light-active-color;
|
239
269
|
}
|
240
270
|
}
|
@@ -246,7 +276,7 @@
|
|
246
276
|
.navbar-brand {
|
247
277
|
color: $navbar-dark-brand-color;
|
248
278
|
|
249
|
-
@include hover-focus {
|
279
|
+
@include hover-focus() {
|
250
280
|
color: $navbar-dark-brand-hover-color;
|
251
281
|
}
|
252
282
|
}
|
@@ -255,7 +285,7 @@
|
|
255
285
|
.nav-link {
|
256
286
|
color: $navbar-dark-color;
|
257
287
|
|
258
|
-
@include hover-focus {
|
288
|
+
@include hover-focus() {
|
259
289
|
color: $navbar-dark-hover-color;
|
260
290
|
}
|
261
291
|
|
@@ -278,7 +308,7 @@
|
|
278
308
|
}
|
279
309
|
|
280
310
|
.navbar-toggler-icon {
|
281
|
-
background-image: $navbar-dark-toggler-icon-bg;
|
311
|
+
background-image: escape-svg($navbar-dark-toggler-icon-bg);
|
282
312
|
}
|
283
313
|
|
284
314
|
.navbar-text {
|
@@ -286,7 +316,7 @@
|
|
286
316
|
a {
|
287
317
|
color: $navbar-dark-active-color;
|
288
318
|
|
289
|
-
@include hover-focus {
|
319
|
+
@include hover-focus() {
|
290
320
|
color: $navbar-dark-active-color;
|
291
321
|
}
|
292
322
|
}
|
@@ -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
|
|
@@ -23,7 +24,7 @@
|
|
23
24
|
}
|
24
25
|
|
25
26
|
&:focus {
|
26
|
-
z-index:
|
27
|
+
z-index: 3;
|
27
28
|
outline: $pagination-focus-outline;
|
28
29
|
box-shadow: $pagination-focus-box-shadow;
|
29
30
|
}
|
@@ -43,7 +44,7 @@
|
|
43
44
|
}
|
44
45
|
|
45
46
|
&.active .page-link {
|
46
|
-
z-index:
|
47
|
+
z-index: 3;
|
47
48
|
color: $pagination-active-color;
|
48
49
|
background-color: $pagination-active-bg;
|
49
50
|
border-color: $pagination-active-border-color;
|
@@ -22,7 +22,7 @@
|
|
22
22
|
display: block;
|
23
23
|
width: $popover-arrow-width;
|
24
24
|
height: $popover-arrow-height;
|
25
|
-
margin: 0 $border-radius
|
25
|
+
margin: 0 $popover-border-radius;
|
26
26
|
|
27
27
|
&::before,
|
28
28
|
&::after {
|
@@ -39,7 +39,7 @@
|
|
39
39
|
margin-bottom: $popover-arrow-height;
|
40
40
|
|
41
41
|
> .arrow {
|
42
|
-
bottom:
|
42
|
+
bottom: subtract(-$popover-arrow-height, $popover-border-width);
|
43
43
|
|
44
44
|
&::before {
|
45
45
|
bottom: 0;
|
@@ -59,10 +59,10 @@
|
|
59
59
|
margin-left: $popover-arrow-height;
|
60
60
|
|
61
61
|
> .arrow {
|
62
|
-
left:
|
62
|
+
left: subtract(-$popover-arrow-height, $popover-border-width);
|
63
63
|
width: $popover-arrow-height;
|
64
64
|
height: $popover-arrow-width;
|
65
|
-
margin: $border-radius
|
65
|
+
margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners
|
66
66
|
|
67
67
|
&::before {
|
68
68
|
left: 0;
|
@@ -82,7 +82,7 @@
|
|
82
82
|
margin-top: $popover-arrow-height;
|
83
83
|
|
84
84
|
> .arrow {
|
85
|
-
top:
|
85
|
+
top: subtract(-$popover-arrow-height, $popover-border-width);
|
86
86
|
|
87
87
|
&::before {
|
88
88
|
top: 0;
|
@@ -114,10 +114,10 @@
|
|
114
114
|
margin-right: $popover-arrow-height;
|
115
115
|
|
116
116
|
> .arrow {
|
117
|
-
right:
|
117
|
+
right: subtract(-$popover-arrow-height, $popover-border-width);
|
118
118
|
width: $popover-arrow-height;
|
119
119
|
height: $popover-arrow-width;
|
120
|
-
margin: $border-radius
|
120
|
+
margin: $popover-border-radius 0; // make sure the arrow does not touch the popover's rounded corners
|
121
121
|
|
122
122
|
&::before {
|
123
123
|
right: 0;
|
@@ -157,8 +157,7 @@
|
|
157
157
|
color: $popover-header-color;
|
158
158
|
background-color: $popover-header-bg;
|
159
159
|
border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);
|
160
|
-
|
161
|
-
@include border-top-radius($offset-border-width);
|
160
|
+
@include border-top-radius($popover-inner-border-radius);
|
162
161
|
|
163
162
|
&:empty {
|
164
163
|
display: none;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// stylelint-disable declaration-no-important, selector-no-qualifying-type
|
2
2
|
|
3
|
-
// Source: https://github.com/h5bp/
|
3
|
+
// Source: https://github.com/h5bp/main.css/blob/master/src/_print.css
|
4
4
|
|
5
5
|
// ==========================================================================
|
6
6
|
// Print styles.
|
@@ -57,7 +57,7 @@
|
|
57
57
|
|
58
58
|
//
|
59
59
|
// Printing Tables:
|
60
|
-
// http://css-discuss.incutio.com/wiki/Printing_Tables
|
60
|
+
// https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables
|
61
61
|
//
|
62
62
|
|
63
63
|
thead {
|
@@ -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);
|
@@ -20,6 +21,7 @@
|
|
20
21
|
display: flex;
|
21
22
|
flex-direction: column;
|
22
23
|
justify-content: center;
|
24
|
+
overflow: hidden;
|
23
25
|
color: $progress-bar-color;
|
24
26
|
text-align: center;
|
25
27
|
white-space: nowrap;
|
@@ -36,8 +38,10 @@
|
|
36
38
|
.progress-bar-animated {
|
37
39
|
animation: progress-bar-stripes $progress-bar-animation-timing;
|
38
40
|
|
39
|
-
@
|
40
|
-
|
41
|
+
@if $enable-prefers-reduced-motion-media-query {
|
42
|
+
@media (prefers-reduced-motion: reduce) {
|
43
|
+
animation: none;
|
44
|
+
}
|
41
45
|
}
|
42
46
|
}
|
43
47
|
}
|
@@ -54,12 +54,16 @@ body {
|
|
54
54
|
background-color: $body-bg; // 2
|
55
55
|
}
|
56
56
|
|
57
|
-
//
|
58
|
-
//
|
59
|
-
//
|
60
|
-
//
|
61
|
-
//
|
62
|
-
|
57
|
+
// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline
|
58
|
+
// on elements that programmatically receive focus but wouldn't normally show a visible
|
59
|
+
// focus outline. In general, this would mean that the outline is only applied if the
|
60
|
+
// interaction that led to the element receiving programmatic focus was a keyboard interaction,
|
61
|
+
// or the browser has somehow determined that the user is primarily a keyboard user and/or
|
62
|
+
// wants focus outlines to always be presented.
|
63
|
+
//
|
64
|
+
// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible
|
65
|
+
// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/
|
66
|
+
[tabindex="-1"]:focus:not(:focus-visible) {
|
63
67
|
outline: 0 !important;
|
64
68
|
}
|
65
69
|
|
@@ -184,30 +188,25 @@ a {
|
|
184
188
|
text-decoration: $link-decoration;
|
185
189
|
background-color: transparent; // Remove the gray background on active links in IE 10.
|
186
190
|
|
187
|
-
@include hover {
|
191
|
+
@include hover() {
|
188
192
|
color: $link-hover-color;
|
189
193
|
text-decoration: $link-hover-decoration;
|
190
194
|
}
|
191
195
|
}
|
192
196
|
|
193
|
-
// And undo these styles for placeholder links/named anchors (without href)
|
194
|
-
// which have not been made explicitly keyboard-focusable (without tabindex).
|
197
|
+
// And undo these styles for placeholder links/named anchors (without href).
|
195
198
|
// It would be more straightforward to just use a[href] in previous block, but that
|
196
199
|
// causes specificity issues in many other styles that are too complex to fix.
|
197
200
|
// See https://github.com/twbs/bootstrap/issues/19402
|
198
201
|
|
199
|
-
a:not([href])
|
202
|
+
a:not([href]) {
|
200
203
|
color: inherit;
|
201
204
|
text-decoration: none;
|
202
205
|
|
203
|
-
@include hover
|
206
|
+
@include hover() {
|
204
207
|
color: inherit;
|
205
208
|
text-decoration: none;
|
206
209
|
}
|
207
|
-
|
208
|
-
&:focus {
|
209
|
-
outline: 0;
|
210
|
-
}
|
211
210
|
}
|
212
211
|
|
213
212
|
|
@@ -230,6 +229,9 @@ pre {
|
|
230
229
|
margin-bottom: 1rem;
|
231
230
|
// Don't allow content to break outside
|
232
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;
|
233
235
|
}
|
234
236
|
|
235
237
|
|
@@ -331,6 +333,13 @@ select {
|
|
331
333
|
text-transform: none; // Remove the inheritance of text transform in Firefox
|
332
334
|
}
|
333
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
|
+
|
334
343
|
// Remove the inheritance of word-wrap in Safari.
|
335
344
|
//
|
336
345
|
// Details at https://github.com/twbs/bootstrap/issues/24990
|
@@ -377,18 +386,6 @@ input[type="checkbox"] {
|
|
377
386
|
}
|
378
387
|
|
379
388
|
|
380
|
-
input[type="date"],
|
381
|
-
input[type="time"],
|
382
|
-
input[type="datetime-local"],
|
383
|
-
input[type="month"] {
|
384
|
-
// Remove the default appearance of temporal inputs to avoid a Mobile Safari
|
385
|
-
// bug where setting a custom line-height prevents text from being vertically
|
386
|
-
// centered within the input.
|
387
|
-
// See https://bugs.webkit.org/show_bug.cgi?id=139848
|
388
|
-
// and https://github.com/twbs/bootstrap/issues/11266
|
389
|
-
-webkit-appearance: listbox;
|
390
|
-
}
|
391
|
-
|
392
389
|
textarea {
|
393
390
|
overflow: auto; // Remove the default vertical scrollbar in IE.
|
394
391
|
// Textareas should really only resize vertically so they don't break their (horizontal) containers.
|
@@ -84,7 +84,7 @@
|
|
84
84
|
|
85
85
|
.table-hover {
|
86
86
|
tbody tr {
|
87
|
-
@include hover {
|
87
|
+
@include hover() {
|
88
88
|
color: $table-hover-color;
|
89
89
|
background-color: $table-hover-bg;
|
90
90
|
}
|
@@ -142,14 +142,14 @@
|
|
142
142
|
}
|
143
143
|
|
144
144
|
&.table-striped {
|
145
|
-
tbody tr:nth-of-type(
|
145
|
+
tbody tr:nth-of-type(#{$table-striped-order}) {
|
146
146
|
background-color: $table-dark-accent-bg;
|
147
147
|
}
|
148
148
|
}
|
149
149
|
|
150
150
|
&.table-hover {
|
151
151
|
tbody tr {
|
152
|
-
@include hover {
|
152
|
+
@include hover() {
|
153
153
|
color: $table-dark-hover-color;
|
154
154
|
background-color: $table-dark-hover-bg;
|
155
155
|
}
|
@@ -82,12 +82,12 @@ mark,
|
|
82
82
|
//
|
83
83
|
|
84
84
|
.list-unstyled {
|
85
|
-
@include list-unstyled;
|
85
|
+
@include list-unstyled();
|
86
86
|
}
|
87
87
|
|
88
88
|
// Inline turns list items into inline-block
|
89
89
|
.list-inline {
|
90
|
-
@include list-unstyled;
|
90
|
+
@include list-unstyled();
|
91
91
|
}
|
92
92
|
.list-inline-item {
|
93
93
|
display: inline-block;
|
@@ -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";
|