bootstrap 4.3.1 → 4.6.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +15 -1
- data/CHANGELOG.md +4 -12
- data/README.md +7 -1
- data/Rakefile +16 -4
- data/assets/javascripts/bootstrap/alert.js +43 -55
- data/assets/javascripts/bootstrap/button.js +112 -70
- data/assets/javascripts/bootstrap/carousel.js +164 -189
- data/assets/javascripts/bootstrap/collapse.js +98 -129
- data/assets/javascripts/bootstrap/dropdown.js +165 -200
- data/assets/javascripts/bootstrap/modal.js +218 -205
- data/assets/javascripts/bootstrap/popover.js +63 -79
- data/assets/javascripts/bootstrap/scrollspy.js +82 -119
- data/assets/javascripts/bootstrap/tab.js +79 -85
- data/assets/javascripts/bootstrap/toast.js +100 -115
- data/assets/javascripts/bootstrap/tooltip.js +207 -225
- data/assets/javascripts/bootstrap/util.js +41 -23
- data/assets/javascripts/bootstrap.js +1235 -1314
- data/assets/javascripts/bootstrap.min.js +4 -4
- data/assets/stylesheets/_bootstrap-grid.scss +5 -4
- data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
- data/assets/stylesheets/_bootstrap.scss +4 -4
- data/assets/stylesheets/bootstrap/_alert.scss +1 -0
- data/assets/stylesheets/bootstrap/_badge.scss +1 -1
- data/assets/stylesheets/bootstrap/_breadcrumb.scss +3 -2
- data/assets/stylesheets/bootstrap/_button-group.scss +1 -1
- data/assets/stylesheets/bootstrap/_buttons.scss +13 -8
- data/assets/stylesheets/bootstrap/_card.scss +47 -50
- data/assets/stylesheets/bootstrap/_carousel.scss +12 -9
- data/assets/stylesheets/bootstrap/_close.scss +2 -3
- data/assets/stylesheets/bootstrap/_code.scss +1 -1
- data/assets/stylesheets/bootstrap/_custom-forms.scss +43 -24
- data/assets/stylesheets/bootstrap/_dropdown.scss +7 -6
- data/assets/stylesheets/bootstrap/_forms.scss +30 -13
- data/assets/stylesheets/bootstrap/_functions.scss +110 -6
- data/assets/stylesheets/bootstrap/_grid.scss +32 -11
- data/assets/stylesheets/bootstrap/_images.scss +3 -3
- data/assets/stylesheets/bootstrap/_input-group.scss +23 -5
- data/assets/stylesheets/bootstrap/_jumbotron.scss +1 -1
- data/assets/stylesheets/bootstrap/_list-group.scss +36 -31
- data/assets/stylesheets/bootstrap/_mixins.scss +3 -3
- data/assets/stylesheets/bootstrap/_modal.scss +26 -15
- data/assets/stylesheets/bootstrap/_nav.scss +12 -7
- data/assets/stylesheets/bootstrap/_navbar.scss +55 -17
- data/assets/stylesheets/bootstrap/_pagination.scss +5 -4
- data/assets/stylesheets/bootstrap/_popover.scss +17 -18
- data/assets/stylesheets/bootstrap/_print.scss +1 -10
- data/assets/stylesheets/bootstrap/_progress.scss +7 -3
- data/assets/stylesheets/bootstrap/_reboot.scss +39 -38
- data/assets/stylesheets/bootstrap/_spinners.scss +18 -8
- data/assets/stylesheets/bootstrap/_tables.scss +3 -3
- data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
- data/assets/stylesheets/bootstrap/_tooltip.scss +4 -4
- data/assets/stylesheets/bootstrap/_transitions.scss +6 -0
- data/assets/stylesheets/bootstrap/_type.scss +3 -3
- data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
- data/assets/stylesheets/bootstrap/_variables.scss +71 -45
- 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 +27 -14
- 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 +52 -49
- data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +31 -17
- data/assets/stylesheets/bootstrap/mixins/_grid.scss +32 -14
- data/assets/stylesheets/bootstrap/mixins/_hover.scss +4 -4
- data/assets/stylesheets/bootstrap/mixins/_image.scss +2 -2
- 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 +2 -2
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +5 -4
- 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 +18 -8
- data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
- data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_embed.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
- data/assets/stylesheets/bootstrap/utilities/_spacing.scss +1 -1
- data/assets/stylesheets/bootstrap/utilities/_text.scss +4 -4
- data/assets/stylesheets/bootstrap/vendor/_rfs.scss +126 -102
- data/bootstrap.gemspec +2 -4
- data/lib/bootstrap/engine.rb +17 -1
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +18 -6
- data/tasks/updater/network.rb +8 -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/gemfiles/rails_7_0_dartsass.gemfile +8 -0
- data/test/gemfiles/rails_7_0_sassc.gemfile +8 -0
- data/test/support/dummy_rails_integration.rb +3 -1
- data/test/test_helper.rb +18 -13
- metadata +17 -21
@@ -7,6 +7,7 @@
|
|
7
7
|
display: flex;
|
8
8
|
flex-direction: column;
|
9
9
|
min-width: 0; // See https://github.com/twbs/bootstrap/pull/22740#issuecomment-305868106
|
10
|
+
height: $card-height;
|
10
11
|
word-wrap: break-word;
|
11
12
|
background-color: $card-bg;
|
12
13
|
background-clip: border-box;
|
@@ -18,23 +19,36 @@
|
|
18
19
|
margin-left: 0;
|
19
20
|
}
|
20
21
|
|
21
|
-
> .list-group
|
22
|
-
|
23
|
-
|
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);
|
24
29
|
}
|
25
|
-
}
|
26
30
|
|
27
|
-
|
28
|
-
|
29
|
-
@include border-bottom-radius($card-border-radius);
|
31
|
+
&:last-child {
|
32
|
+
border-bottom-width: 0;
|
33
|
+
@include border-bottom-radius($card-inner-border-radius);
|
30
34
|
}
|
31
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
|
+
}
|
32
43
|
}
|
33
44
|
|
34
45
|
.card-body {
|
35
46
|
// Enable `flex-grow: 1` for decks and groups so that card blocks take up
|
36
47
|
// as much space as possible, ensuring footers are aligned to the bottom.
|
37
48
|
flex: 1 1 auto;
|
49
|
+
// Workaround for the image size bug in IE
|
50
|
+
// See: https://github.com/twbs/bootstrap/pull/28855
|
51
|
+
min-height: 1px;
|
38
52
|
padding: $card-spacer-x;
|
39
53
|
color: $card-color;
|
40
54
|
}
|
@@ -44,7 +58,7 @@
|
|
44
58
|
}
|
45
59
|
|
46
60
|
.card-subtitle {
|
47
|
-
margin-top: -$card-spacer-y
|
61
|
+
margin-top: -$card-spacer-y * .5;
|
48
62
|
margin-bottom: 0;
|
49
63
|
}
|
50
64
|
|
@@ -53,7 +67,7 @@
|
|
53
67
|
}
|
54
68
|
|
55
69
|
.card-link {
|
56
|
-
@include hover {
|
70
|
+
@include hover() {
|
57
71
|
text-decoration: none;
|
58
72
|
}
|
59
73
|
|
@@ -76,16 +90,11 @@
|
|
76
90
|
&:first-child {
|
77
91
|
@include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
|
78
92
|
}
|
79
|
-
|
80
|
-
+ .list-group {
|
81
|
-
.list-group-item:first-child {
|
82
|
-
border-top: 0;
|
83
|
-
}
|
84
|
-
}
|
85
93
|
}
|
86
94
|
|
87
95
|
.card-footer {
|
88
96
|
padding: $card-spacer-y $card-spacer-x;
|
97
|
+
color: $card-cap-color;
|
89
98
|
background-color: $card-cap-bg;
|
90
99
|
border-top: $card-border-width solid $card-border-color;
|
91
100
|
|
@@ -100,15 +109,15 @@
|
|
100
109
|
//
|
101
110
|
|
102
111
|
.card-header-tabs {
|
103
|
-
margin-right: -$card-spacer-x
|
112
|
+
margin-right: -$card-spacer-x * .5;
|
104
113
|
margin-bottom: -$card-spacer-y;
|
105
|
-
margin-left: -$card-spacer-x
|
114
|
+
margin-left: -$card-spacer-x * .5;
|
106
115
|
border-bottom: 0;
|
107
116
|
}
|
108
117
|
|
109
118
|
.card-header-pills {
|
110
|
-
margin-right: -$card-spacer-x
|
111
|
-
margin-left: -$card-spacer-x
|
119
|
+
margin-right: -$card-spacer-x * .5;
|
120
|
+
margin-left: -$card-spacer-x * .5;
|
112
121
|
}
|
113
122
|
|
114
123
|
// Card image
|
@@ -119,21 +128,23 @@
|
|
119
128
|
bottom: 0;
|
120
129
|
left: 0;
|
121
130
|
padding: $card-img-overlay-padding;
|
131
|
+
@include border-radius($card-inner-border-radius);
|
122
132
|
}
|
123
133
|
|
124
|
-
.card-img
|
134
|
+
.card-img,
|
135
|
+
.card-img-top,
|
136
|
+
.card-img-bottom {
|
137
|
+
flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396
|
125
138
|
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
|
126
|
-
@include border-radius($card-inner-border-radius);
|
127
139
|
}
|
128
140
|
|
129
|
-
|
141
|
+
.card-img,
|
130
142
|
.card-img-top {
|
131
|
-
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
|
132
143
|
@include border-top-radius($card-inner-border-radius);
|
133
144
|
}
|
134
145
|
|
146
|
+
.card-img,
|
135
147
|
.card-img-bottom {
|
136
|
-
width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
|
137
148
|
@include border-bottom-radius($card-inner-border-radius);
|
138
149
|
}
|
139
150
|
|
@@ -141,23 +152,19 @@
|
|
141
152
|
// Card deck
|
142
153
|
|
143
154
|
.card-deck {
|
144
|
-
display: flex;
|
145
|
-
flex-direction: column;
|
146
|
-
|
147
155
|
.card {
|
148
156
|
margin-bottom: $card-deck-margin;
|
149
157
|
}
|
150
158
|
|
151
159
|
@include media-breakpoint-up(sm) {
|
160
|
+
display: flex;
|
152
161
|
flex-flow: row wrap;
|
153
162
|
margin-right: -$card-deck-margin;
|
154
163
|
margin-left: -$card-deck-margin;
|
155
164
|
|
156
165
|
.card {
|
157
|
-
display: flex;
|
158
166
|
// Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
|
159
167
|
flex: 1 0 0%;
|
160
|
-
flex-direction: column;
|
161
168
|
margin-right: $card-deck-margin;
|
162
169
|
margin-bottom: 0; // Override the default
|
163
170
|
margin-left: $card-deck-margin;
|
@@ -171,9 +178,6 @@
|
|
171
178
|
//
|
172
179
|
|
173
180
|
.card-group {
|
174
|
-
display: flex;
|
175
|
-
flex-direction: column;
|
176
|
-
|
177
181
|
// The child selector allows nested `.card` within `.card-group`
|
178
182
|
// to display properly.
|
179
183
|
> .card {
|
@@ -181,6 +185,7 @@
|
|
181
185
|
}
|
182
186
|
|
183
187
|
@include media-breakpoint-up(sm) {
|
188
|
+
display: flex;
|
184
189
|
flex-flow: row wrap;
|
185
190
|
// The child selector allows nested `.card` within `.card-group`
|
186
191
|
// to display properly.
|
@@ -201,12 +206,12 @@
|
|
201
206
|
|
202
207
|
.card-img-top,
|
203
208
|
.card-header {
|
204
|
-
// stylelint-disable-next-line property-
|
209
|
+
// stylelint-disable-next-line property-disallowed-list
|
205
210
|
border-top-right-radius: 0;
|
206
211
|
}
|
207
212
|
.card-img-bottom,
|
208
213
|
.card-footer {
|
209
|
-
// stylelint-disable-next-line property-
|
214
|
+
// stylelint-disable-next-line property-disallowed-list
|
210
215
|
border-bottom-right-radius: 0;
|
211
216
|
}
|
212
217
|
}
|
@@ -216,12 +221,12 @@
|
|
216
221
|
|
217
222
|
.card-img-top,
|
218
223
|
.card-header {
|
219
|
-
// stylelint-disable-next-line property-
|
224
|
+
// stylelint-disable-next-line property-disallowed-list
|
220
225
|
border-top-left-radius: 0;
|
221
226
|
}
|
222
227
|
.card-img-bottom,
|
223
228
|
.card-footer {
|
224
|
-
// stylelint-disable-next-line property-
|
229
|
+
// stylelint-disable-next-line property-disallowed-list
|
225
230
|
border-bottom-left-radius: 0;
|
226
231
|
}
|
227
232
|
}
|
@@ -259,30 +264,22 @@
|
|
259
264
|
//
|
260
265
|
|
261
266
|
.accordion {
|
267
|
+
overflow-anchor: none;
|
268
|
+
|
262
269
|
> .card {
|
263
270
|
overflow: hidden;
|
264
271
|
|
265
|
-
&:not(:
|
266
|
-
.card-header:first-child {
|
267
|
-
@include border-radius(0);
|
268
|
-
}
|
269
|
-
|
270
|
-
&:not(:last-of-type) {
|
271
|
-
border-bottom: 0;
|
272
|
-
@include border-radius(0);
|
273
|
-
}
|
274
|
-
}
|
275
|
-
|
276
|
-
&:first-of-type {
|
272
|
+
&:not(:last-of-type) {
|
277
273
|
border-bottom: 0;
|
278
274
|
@include border-bottom-radius(0);
|
279
275
|
}
|
280
276
|
|
281
|
-
&:
|
277
|
+
&:not(:first-of-type) {
|
282
278
|
@include border-top-radius(0);
|
283
279
|
}
|
284
280
|
|
285
|
-
.card-header {
|
281
|
+
> .card-header {
|
282
|
+
@include border-radius(0);
|
286
283
|
margin-bottom: -$card-border-width;
|
287
284
|
}
|
288
285
|
}
|
@@ -75,7 +75,7 @@
|
|
75
75
|
.active.carousel-item-right {
|
76
76
|
z-index: 0;
|
77
77
|
opacity: 0;
|
78
|
-
@include transition(0s $carousel-transition-duration
|
78
|
+
@include transition(opacity 0s $carousel-transition-duration);
|
79
79
|
}
|
80
80
|
}
|
81
81
|
|
@@ -95,13 +95,16 @@
|
|
95
95
|
align-items: center; // 2. vertically center contents
|
96
96
|
justify-content: center; // 3. horizontally center contents
|
97
97
|
width: $carousel-control-width;
|
98
|
+
padding: 0;
|
98
99
|
color: $carousel-control-color;
|
99
100
|
text-align: center;
|
101
|
+
background: none;
|
102
|
+
border: 0;
|
100
103
|
opacity: $carousel-control-opacity;
|
101
104
|
@include transition($carousel-control-transition);
|
102
105
|
|
103
106
|
// Hover/focus state
|
104
|
-
@include hover-focus {
|
107
|
+
@include hover-focus() {
|
105
108
|
color: $carousel-control-color;
|
106
109
|
text-decoration: none;
|
107
110
|
outline: 0;
|
@@ -111,13 +114,13 @@
|
|
111
114
|
.carousel-control-prev {
|
112
115
|
left: 0;
|
113
116
|
@if $enable-gradients {
|
114
|
-
background: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));
|
117
|
+
background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));
|
115
118
|
}
|
116
119
|
}
|
117
120
|
.carousel-control-next {
|
118
121
|
right: 0;
|
119
122
|
@if $enable-gradients {
|
120
|
-
background: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));
|
123
|
+
background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));
|
121
124
|
}
|
122
125
|
}
|
123
126
|
|
@@ -127,13 +130,13 @@
|
|
127
130
|
display: inline-block;
|
128
131
|
width: $carousel-control-icon-width;
|
129
132
|
height: $carousel-control-icon-width;
|
130
|
-
background:
|
133
|
+
background: 50% / 100% 100% no-repeat;
|
131
134
|
}
|
132
135
|
.carousel-control-prev-icon {
|
133
|
-
background-image: $carousel-control-prev-icon-bg;
|
136
|
+
background-image: escape-svg($carousel-control-prev-icon-bg);
|
134
137
|
}
|
135
138
|
.carousel-control-next-icon {
|
136
|
-
background-image: $carousel-control-next-icon-bg;
|
139
|
+
background-image: escape-svg($carousel-control-next-icon-bg);
|
137
140
|
}
|
138
141
|
|
139
142
|
|
@@ -186,9 +189,9 @@
|
|
186
189
|
|
187
190
|
.carousel-caption {
|
188
191
|
position: absolute;
|
189
|
-
right: (100% - $carousel-caption-width)
|
192
|
+
right: (100% - $carousel-caption-width) * .5;
|
190
193
|
bottom: 20px;
|
191
|
-
left: (100% - $carousel-caption-width)
|
194
|
+
left: (100% - $carousel-caption-width) * .5;
|
192
195
|
z-index: 10;
|
193
196
|
padding-top: 20px;
|
194
197
|
padding-bottom: 20px;
|
@@ -8,13 +8,13 @@
|
|
8
8
|
opacity: .5;
|
9
9
|
|
10
10
|
// Override <a>'s hover style
|
11
|
-
@include hover {
|
11
|
+
@include hover() {
|
12
12
|
color: $close-color;
|
13
13
|
text-decoration: none;
|
14
14
|
}
|
15
15
|
|
16
16
|
&:not(:disabled):not(.disabled) {
|
17
|
-
@include hover-focus {
|
17
|
+
@include hover-focus() {
|
18
18
|
opacity: .75;
|
19
19
|
}
|
20
20
|
}
|
@@ -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,9 +9,11 @@
|
|
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;
|
16
|
+
print-color-adjust: exact; // Keep themed appearance for print
|
15
17
|
}
|
16
18
|
|
17
19
|
.custom-control-inline {
|
@@ -21,7 +23,10 @@
|
|
21
23
|
|
22
24
|
.custom-control-input {
|
23
25
|
position: absolute;
|
26
|
+
left: 0;
|
24
27
|
z-index: -1; // Put the input behind the label so it doesn't overlay text
|
28
|
+
width: $custom-control-indicator-size;
|
29
|
+
height: ($font-size-base * $line-height-base + $custom-control-indicator-size) * .5;
|
25
30
|
opacity: 0;
|
26
31
|
|
27
32
|
&:checked ~ .custom-control-label::before {
|
@@ -34,7 +39,7 @@
|
|
34
39
|
&:focus ~ .custom-control-label::before {
|
35
40
|
// the mixin is not used here to make sure there is feedback
|
36
41
|
@if $enable-shadows {
|
37
|
-
box-shadow: $input-box-shadow, $
|
42
|
+
box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;
|
38
43
|
} @else {
|
39
44
|
box-shadow: $custom-control-indicator-focus-box-shadow;
|
40
45
|
}
|
@@ -51,6 +56,8 @@
|
|
51
56
|
@include box-shadow($custom-control-indicator-active-box-shadow);
|
52
57
|
}
|
53
58
|
|
59
|
+
// Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
|
60
|
+
&[disabled],
|
54
61
|
&:disabled {
|
55
62
|
~ .custom-control-label {
|
56
63
|
color: $custom-control-label-disabled-color;
|
@@ -69,12 +76,14 @@
|
|
69
76
|
.custom-control-label {
|
70
77
|
position: relative;
|
71
78
|
margin-bottom: 0;
|
79
|
+
color: $custom-control-label-color;
|
72
80
|
vertical-align: top;
|
81
|
+
cursor: $custom-control-cursor;
|
73
82
|
|
74
83
|
// Background-color and (when enabled) gradient
|
75
84
|
&::before {
|
76
85
|
position: absolute;
|
77
|
-
top: ($font-size-base * $line-height-base - $custom-control-indicator-size)
|
86
|
+
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
|
78
87
|
left: -($custom-control-gutter + $custom-control-indicator-size);
|
79
88
|
display: block;
|
80
89
|
width: $custom-control-indicator-size;
|
@@ -82,20 +91,20 @@
|
|
82
91
|
pointer-events: none;
|
83
92
|
content: "";
|
84
93
|
background-color: $custom-control-indicator-bg;
|
85
|
-
border: $custom-control-indicator-border-
|
94
|
+
border: $custom-control-indicator-border-width solid $custom-control-indicator-border-color;
|
86
95
|
@include box-shadow($custom-control-indicator-box-shadow);
|
87
96
|
}
|
88
97
|
|
89
98
|
// Foreground (icon)
|
90
99
|
&::after {
|
91
100
|
position: absolute;
|
92
|
-
top: ($font-size-base * $line-height-base - $custom-control-indicator-size)
|
101
|
+
top: ($font-size-base * $line-height-base - $custom-control-indicator-size) * .5;
|
93
102
|
left: -($custom-control-gutter + $custom-control-indicator-size);
|
94
103
|
display: block;
|
95
104
|
width: $custom-control-indicator-size;
|
96
105
|
height: $custom-control-indicator-size;
|
97
106
|
content: "";
|
98
|
-
background:
|
107
|
+
background: 50% / #{$custom-control-indicator-bg-size} no-repeat;
|
99
108
|
}
|
100
109
|
}
|
101
110
|
|
@@ -111,7 +120,7 @@
|
|
111
120
|
|
112
121
|
.custom-control-input:checked ~ .custom-control-label {
|
113
122
|
&::after {
|
114
|
-
background-image: $custom-checkbox-indicator-icon-checked;
|
123
|
+
background-image: escape-svg($custom-checkbox-indicator-icon-checked);
|
115
124
|
}
|
116
125
|
}
|
117
126
|
|
@@ -122,16 +131,16 @@
|
|
122
131
|
@include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);
|
123
132
|
}
|
124
133
|
&::after {
|
125
|
-
background-image: $custom-checkbox-indicator-icon-indeterminate;
|
134
|
+
background-image: escape-svg($custom-checkbox-indicator-icon-indeterminate);
|
126
135
|
}
|
127
136
|
}
|
128
137
|
|
129
138
|
.custom-control-input:disabled {
|
130
139
|
&:checked ~ .custom-control-label::before {
|
131
|
-
|
140
|
+
@include gradient-bg($custom-control-indicator-checked-disabled-bg);
|
132
141
|
}
|
133
142
|
&:indeterminate ~ .custom-control-label::before {
|
134
|
-
|
143
|
+
@include gradient-bg($custom-control-indicator-checked-disabled-bg);
|
135
144
|
}
|
136
145
|
}
|
137
146
|
}
|
@@ -142,19 +151,19 @@
|
|
142
151
|
|
143
152
|
.custom-radio {
|
144
153
|
.custom-control-label::before {
|
145
|
-
// stylelint-disable-next-line property-
|
154
|
+
// stylelint-disable-next-line property-disallowed-list
|
146
155
|
border-radius: $custom-radio-indicator-border-radius;
|
147
156
|
}
|
148
157
|
|
149
158
|
.custom-control-input:checked ~ .custom-control-label {
|
150
159
|
&::after {
|
151
|
-
background-image: $custom-radio-indicator-icon-checked;
|
160
|
+
background-image: escape-svg($custom-radio-indicator-icon-checked);
|
152
161
|
}
|
153
162
|
}
|
154
163
|
|
155
164
|
.custom-control-input:disabled {
|
156
165
|
&:checked ~ .custom-control-label::before {
|
157
|
-
|
166
|
+
@include gradient-bg($custom-control-indicator-checked-disabled-bg);
|
158
167
|
}
|
159
168
|
}
|
160
169
|
}
|
@@ -172,17 +181,17 @@
|
|
172
181
|
left: -($custom-switch-width + $custom-control-gutter);
|
173
182
|
width: $custom-switch-width;
|
174
183
|
pointer-events: all;
|
175
|
-
// stylelint-disable-next-line property-
|
184
|
+
// stylelint-disable-next-line property-disallowed-list
|
176
185
|
border-radius: $custom-switch-indicator-border-radius;
|
177
186
|
}
|
178
187
|
|
179
188
|
&::after {
|
180
|
-
top:
|
181
|
-
left:
|
189
|
+
top: add(($font-size-base * $line-height-base - $custom-control-indicator-size) * .5, $custom-control-indicator-border-width * 2);
|
190
|
+
left: add(-($custom-switch-width + $custom-control-gutter), $custom-control-indicator-border-width * 2);
|
182
191
|
width: $custom-switch-indicator-size;
|
183
192
|
height: $custom-switch-indicator-size;
|
184
193
|
background-color: $custom-control-indicator-border-color;
|
185
|
-
// stylelint-disable-next-line property-
|
194
|
+
// stylelint-disable-next-line property-disallowed-list
|
186
195
|
border-radius: $custom-switch-indicator-border-radius;
|
187
196
|
@include transition(transform .15s ease-in-out, $custom-forms-transition);
|
188
197
|
}
|
@@ -197,7 +206,7 @@
|
|
197
206
|
|
198
207
|
.custom-control-input:disabled {
|
199
208
|
&:checked ~ .custom-control-label::before {
|
200
|
-
|
209
|
+
@include gradient-bg($custom-control-indicator-checked-disabled-bg);
|
201
210
|
}
|
202
211
|
}
|
203
212
|
}
|
@@ -220,8 +229,7 @@
|
|
220
229
|
line-height: $custom-select-line-height;
|
221
230
|
color: $custom-select-color;
|
222
231
|
vertical-align: middle;
|
223
|
-
background: $custom-select-background;
|
224
|
-
background-color: $custom-select-bg;
|
232
|
+
background: $custom-select-bg $custom-select-background;
|
225
233
|
border: $custom-select-border-width solid $custom-select-border-color;
|
226
234
|
@include border-radius($custom-select-border-radius, 0);
|
227
235
|
@include box-shadow($custom-select-box-shadow);
|
@@ -231,8 +239,9 @@
|
|
231
239
|
border-color: $custom-select-focus-border-color;
|
232
240
|
outline: 0;
|
233
241
|
@if $enable-shadows {
|
234
|
-
box-shadow
|
242
|
+
@include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);
|
235
243
|
} @else {
|
244
|
+
// Avoid using mixin so we can pass custom focus shadow properly
|
236
245
|
box-shadow: $custom-select-focus-box-shadow;
|
237
246
|
}
|
238
247
|
|
@@ -263,6 +272,12 @@
|
|
263
272
|
&::-ms-expand {
|
264
273
|
display: none;
|
265
274
|
}
|
275
|
+
|
276
|
+
// Remove outline from select box in FF
|
277
|
+
&:-moz-focusring {
|
278
|
+
color: transparent;
|
279
|
+
text-shadow: 0 0 0 $custom-select-color;
|
280
|
+
}
|
266
281
|
}
|
267
282
|
|
268
283
|
.custom-select-sm {
|
@@ -300,6 +315,7 @@
|
|
300
315
|
width: 100%;
|
301
316
|
height: $custom-file-height;
|
302
317
|
margin: 0;
|
318
|
+
overflow: hidden;
|
303
319
|
opacity: 0;
|
304
320
|
|
305
321
|
&:focus ~ .custom-file-label {
|
@@ -307,6 +323,8 @@
|
|
307
323
|
box-shadow: $custom-file-focus-box-shadow;
|
308
324
|
}
|
309
325
|
|
326
|
+
// Use [disabled] and :disabled to work around https://github.com/twbs/bootstrap/issues/28247
|
327
|
+
&[disabled] ~ .custom-file-label,
|
310
328
|
&:disabled ~ .custom-file-label {
|
311
329
|
background-color: $custom-file-disabled-bg;
|
312
330
|
}
|
@@ -330,6 +348,7 @@
|
|
330
348
|
z-index: 1;
|
331
349
|
height: $custom-file-height;
|
332
350
|
padding: $custom-file-padding-y $custom-file-padding-x;
|
351
|
+
overflow: hidden;
|
333
352
|
font-family: $custom-file-font-family;
|
334
353
|
font-weight: $custom-file-font-weight;
|
335
354
|
line-height: $custom-file-line-height;
|
@@ -365,13 +384,13 @@
|
|
365
384
|
|
366
385
|
.custom-range {
|
367
386
|
width: 100%;
|
368
|
-
height:
|
387
|
+
height: add($custom-range-thumb-height, $custom-range-thumb-focus-box-shadow-width * 2);
|
369
388
|
padding: 0; // Need to reset padding
|
370
389
|
background-color: transparent;
|
371
390
|
appearance: none;
|
372
391
|
|
373
392
|
&:focus {
|
374
|
-
outline:
|
393
|
+
outline: 0;
|
375
394
|
|
376
395
|
// Pseudo-elements must be split across multiple rulesets to have an effect.
|
377
396
|
// No box-shadow() mixin for focus accessibility.
|
@@ -387,7 +406,7 @@
|
|
387
406
|
&::-webkit-slider-thumb {
|
388
407
|
width: $custom-range-thumb-width;
|
389
408
|
height: $custom-range-thumb-height;
|
390
|
-
margin-top: ($custom-range-track-height - $custom-range-thumb-height)
|
409
|
+
margin-top: ($custom-range-track-height - $custom-range-thumb-height) * .5; // Webkit specific
|
391
410
|
@include gradient-bg($custom-range-thumb-bg);
|
392
411
|
border: $custom-range-thumb-border;
|
393
412
|
@include border-radius($custom-range-thumb-border-radius);
|
@@ -462,7 +481,7 @@
|
|
462
481
|
cursor: $custom-range-track-cursor;
|
463
482
|
background-color: transparent;
|
464
483
|
border-color: transparent;
|
465
|
-
border-width: $custom-range-thumb-height
|
484
|
+
border-width: $custom-range-thumb-height * .5;
|
466
485
|
@include box-shadow($custom-range-track-box-shadow);
|
467
486
|
}
|
468
487
|
|
@@ -10,7 +10,7 @@
|
|
10
10
|
white-space: nowrap;
|
11
11
|
|
12
12
|
// Generate the caret automatically
|
13
|
-
@include caret;
|
13
|
+
@include caret();
|
14
14
|
}
|
15
15
|
|
16
16
|
// The dropdown menu
|
@@ -22,7 +22,7 @@
|
|
22
22
|
display: none; // none by default, but block on "open" of the menu
|
23
23
|
float: left;
|
24
24
|
min-width: $dropdown-min-width;
|
25
|
-
padding: $dropdown-padding-y
|
25
|
+
padding: $dropdown-padding-y $dropdown-padding-x;
|
26
26
|
margin: $dropdown-spacer 0 0; // override default ul
|
27
27
|
@include font-size($dropdown-font-size);
|
28
28
|
color: $dropdown-color;
|
@@ -100,7 +100,7 @@
|
|
100
100
|
}
|
101
101
|
}
|
102
102
|
|
103
|
-
// When enabled
|
103
|
+
// When Popper is enabled, reset the basic dropdown position
|
104
104
|
// stylelint-disable-next-line no-duplicate-selectors
|
105
105
|
.dropdown-menu {
|
106
106
|
&[x-placement^="top"],
|
@@ -114,7 +114,7 @@
|
|
114
114
|
|
115
115
|
// Dividers (basically an `<hr>`) within the dropdown
|
116
116
|
.dropdown-divider {
|
117
|
-
@include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y);
|
117
|
+
@include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);
|
118
118
|
}
|
119
119
|
|
120
120
|
// Links, buttons, and more within the dropdown menu
|
@@ -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
|
@@ -144,7 +145,7 @@
|
|
144
145
|
}
|
145
146
|
}
|
146
147
|
|
147
|
-
@include hover-focus {
|
148
|
+
@include hover-focus() {
|
148
149
|
color: $dropdown-link-hover-color;
|
149
150
|
text-decoration: none;
|
150
151
|
@include gradient-bg($dropdown-link-hover-bg);
|
@@ -176,7 +177,7 @@
|
|
176
177
|
// Dropdown section headers
|
177
178
|
.dropdown-header {
|
178
179
|
display: block;
|
179
|
-
padding: $dropdown-
|
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;
|