bootstrap 4.0.0.beta2.1 → 4.0.0.beta3
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/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/assets/javascripts/bootstrap-sprockets.js +4 -4
- data/assets/javascripts/bootstrap.js +576 -534
- data/assets/javascripts/bootstrap.min.js +2 -2
- data/assets/javascripts/bootstrap/alert.js +3 -3
- data/assets/javascripts/bootstrap/button.js +3 -3
- data/assets/javascripts/bootstrap/carousel.js +10 -7
- data/assets/javascripts/bootstrap/collapse.js +7 -5
- data/assets/javascripts/bootstrap/dropdown.js +64 -37
- data/assets/javascripts/bootstrap/modal.js +8 -6
- data/assets/javascripts/bootstrap/popover.js +19 -7
- data/assets/javascripts/bootstrap/scrollspy.js +6 -4
- data/assets/javascripts/bootstrap/tab.js +8 -16
- data/assets/javascripts/bootstrap/tooltip.js +23 -17
- data/assets/javascripts/bootstrap/util.js +18 -21
- data/assets/stylesheets/_bootstrap-grid.scss +1 -1
- data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
- data/assets/stylesheets/_bootstrap.scss +2 -2
- data/assets/stylesheets/bootstrap/_alert.scss +2 -0
- data/assets/stylesheets/bootstrap/_button-group.scss +31 -72
- data/assets/stylesheets/bootstrap/_buttons.scss +22 -11
- data/assets/stylesheets/bootstrap/_card.scss +23 -12
- data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
- data/assets/stylesheets/bootstrap/_close.scss +6 -1
- data/assets/stylesheets/bootstrap/_code.scss +4 -12
- data/assets/stylesheets/bootstrap/_custom-forms.scss +110 -85
- data/assets/stylesheets/bootstrap/_dropdown.scss +30 -2
- data/assets/stylesheets/bootstrap/_forms.scss +46 -71
- data/assets/stylesheets/bootstrap/_functions.scss +4 -4
- data/assets/stylesheets/bootstrap/_images.scss +0 -1
- data/assets/stylesheets/bootstrap/_input-group.scss +96 -126
- data/assets/stylesheets/bootstrap/_list-group.scss +2 -1
- data/assets/stylesheets/bootstrap/_modal.scss +24 -9
- data/assets/stylesheets/bootstrap/_nav.scss +2 -2
- data/assets/stylesheets/bootstrap/_navbar.scss +6 -1
- data/assets/stylesheets/bootstrap/_pagination.scss +27 -19
- data/assets/stylesheets/bootstrap/_popover.scss +104 -115
- data/assets/stylesheets/bootstrap/_progress.scss +4 -1
- data/assets/stylesheets/bootstrap/_reboot.scss +3 -2
- data/assets/stylesheets/bootstrap/_tables.scss +1 -1
- data/assets/stylesheets/bootstrap/_tooltip.scss +63 -55
- data/assets/stylesheets/bootstrap/_type.scss +2 -2
- data/assets/stylesheets/bootstrap/_variables.scss +135 -91
- data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
- data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +4 -2
- data/assets/stylesheets/bootstrap/mixins/_buttons.scss +25 -18
- data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -0
- data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -17
- data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
- data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -0
- data/lib/bootstrap/version.rb +2 -2
- data/tasks/updater/js.rb +1 -1
- metadata +3 -3
@@ -11,31 +11,41 @@
|
|
11
11
|
white-space: nowrap;
|
12
12
|
vertical-align: middle;
|
13
13
|
user-select: none;
|
14
|
-
border: $
|
15
|
-
@include button-size($
|
14
|
+
border: $btn-border-width solid transparent;
|
15
|
+
@include button-size($btn-padding-y, $btn-padding-x, $font-size-base, $btn-line-height, $btn-border-radius);
|
16
16
|
@include transition($btn-transition);
|
17
17
|
|
18
18
|
// Share hover and focus styles
|
19
19
|
@include hover-focus {
|
20
20
|
text-decoration: none;
|
21
21
|
}
|
22
|
+
|
22
23
|
&:focus,
|
23
24
|
&.focus {
|
24
25
|
outline: 0;
|
25
|
-
box-shadow: $
|
26
|
+
box-shadow: $btn-focus-box-shadow;
|
26
27
|
}
|
27
28
|
|
28
29
|
// Disabled comes first so active can properly restyle
|
29
30
|
&.disabled,
|
30
31
|
&:disabled {
|
31
|
-
opacity:
|
32
|
+
opacity: $btn-disabled-opacity;
|
32
33
|
@include box-shadow(none);
|
33
34
|
}
|
34
35
|
|
36
|
+
// Opinionated: add "hand" cursor to non-disabled .btn elements
|
37
|
+
&:not([disabled]):not(.disabled) {
|
38
|
+
cursor: pointer;
|
39
|
+
}
|
40
|
+
|
35
41
|
&:not([disabled]):not(.disabled):active,
|
36
42
|
&:not([disabled]):not(.disabled).active {
|
37
43
|
background-image: none;
|
38
|
-
@include box-shadow($
|
44
|
+
@include box-shadow($btn-active-box-shadow);
|
45
|
+
|
46
|
+
&:focus {
|
47
|
+
@include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
|
48
|
+
}
|
39
49
|
}
|
40
50
|
}
|
41
51
|
|
@@ -86,6 +96,7 @@ fieldset[disabled] a.btn {
|
|
86
96
|
|
87
97
|
&:focus,
|
88
98
|
&.focus {
|
99
|
+
text-decoration: $link-hover-decoration;
|
89
100
|
border-color: transparent;
|
90
101
|
box-shadow: none;
|
91
102
|
}
|
@@ -104,11 +115,11 @@ fieldset[disabled] a.btn {
|
|
104
115
|
//
|
105
116
|
|
106
117
|
.btn-lg {
|
107
|
-
@include button-size($
|
118
|
+
@include button-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
|
108
119
|
}
|
109
120
|
|
110
121
|
.btn-sm {
|
111
|
-
@include button-size($
|
122
|
+
@include button-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
|
112
123
|
}
|
113
124
|
|
114
125
|
|
@@ -119,11 +130,11 @@ fieldset[disabled] a.btn {
|
|
119
130
|
.btn-block {
|
120
131
|
display: block;
|
121
132
|
width: 100%;
|
122
|
-
}
|
123
133
|
|
124
|
-
// Vertically space out multiple block buttons
|
125
|
-
|
126
|
-
|
134
|
+
// Vertically space out multiple block buttons
|
135
|
+
+ .btn-block {
|
136
|
+
margin-top: $btn-block-spacing-y;
|
137
|
+
}
|
127
138
|
}
|
128
139
|
|
129
140
|
// Specificity overrides
|
@@ -172,14 +172,17 @@
|
|
172
172
|
display: flex;
|
173
173
|
flex-direction: column;
|
174
174
|
|
175
|
-
|
175
|
+
// The child selector allows nested `.card` within `.card-group`
|
176
|
+
// to display properly.
|
177
|
+
> .card {
|
176
178
|
margin-bottom: $card-group-margin;
|
177
179
|
}
|
178
180
|
|
179
181
|
@include media-breakpoint-up(sm) {
|
180
182
|
flex-flow: row wrap;
|
181
|
-
|
182
|
-
.
|
183
|
+
// The child selector allows nested `.card` within `.card-group`
|
184
|
+
// to display properly.
|
185
|
+
> .card {
|
183
186
|
// Flexbugs #4: https://github.com/philipwalton/flexbugs#4-flex-shorthand-declarations-with-unitless-flex-basis-values-are-ignored
|
184
187
|
flex: 1 0 0%;
|
185
188
|
margin-bottom: 0;
|
@@ -194,10 +197,12 @@
|
|
194
197
|
&:first-child {
|
195
198
|
@include border-right-radius(0);
|
196
199
|
|
197
|
-
.card-img-top
|
200
|
+
.card-img-top,
|
201
|
+
.card-header {
|
198
202
|
border-top-right-radius: 0;
|
199
203
|
}
|
200
|
-
.card-img-bottom
|
204
|
+
.card-img-bottom,
|
205
|
+
.card-footer {
|
201
206
|
border-bottom-right-radius: 0;
|
202
207
|
}
|
203
208
|
}
|
@@ -205,10 +210,12 @@
|
|
205
210
|
&:last-child {
|
206
211
|
@include border-left-radius(0);
|
207
212
|
|
208
|
-
.card-img-top
|
213
|
+
.card-img-top,
|
214
|
+
.card-header {
|
209
215
|
border-top-left-radius: 0;
|
210
216
|
}
|
211
|
-
.card-img-bottom
|
217
|
+
.card-img-bottom,
|
218
|
+
.card-footer {
|
212
219
|
border-bottom-left-radius: 0;
|
213
220
|
}
|
214
221
|
}
|
@@ -216,20 +223,24 @@
|
|
216
223
|
&:only-child {
|
217
224
|
@include border-radius($card-border-radius);
|
218
225
|
|
219
|
-
.card-img-top
|
226
|
+
.card-img-top,
|
227
|
+
.card-header {
|
220
228
|
@include border-top-radius($card-border-radius);
|
221
229
|
}
|
222
|
-
.card-img-bottom
|
230
|
+
.card-img-bottom,
|
231
|
+
.card-footer {
|
223
232
|
@include border-bottom-radius($card-border-radius);
|
224
233
|
}
|
225
234
|
}
|
226
235
|
|
227
236
|
&:not(:first-child):not(:last-child):not(:only-child) {
|
228
|
-
border-radius
|
237
|
+
@include border-radius(0);
|
229
238
|
|
230
239
|
.card-img-top,
|
231
|
-
.card-img-bottom
|
232
|
-
|
240
|
+
.card-img-bottom,
|
241
|
+
.card-header,
|
242
|
+
.card-footer {
|
243
|
+
@include border-radius(0);
|
233
244
|
}
|
234
245
|
}
|
235
246
|
}
|
@@ -91,13 +91,13 @@
|
|
91
91
|
.carousel-control-prev {
|
92
92
|
left: 0;
|
93
93
|
@if $enable-gradients {
|
94
|
-
background: linear-gradient(90deg, rgba(0,0,0
|
94
|
+
background: linear-gradient(90deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));
|
95
95
|
}
|
96
96
|
}
|
97
97
|
.carousel-control-next {
|
98
98
|
right: 0;
|
99
99
|
@if $enable-gradients {
|
100
|
-
background: linear-gradient(270deg, rgba(0,0,0
|
100
|
+
background: linear-gradient(270deg, rgba(0, 0, 0, .25), rgba(0, 0, 0, .001));
|
101
101
|
}
|
102
102
|
}
|
103
103
|
|
@@ -12,6 +12,11 @@
|
|
12
12
|
text-decoration: none;
|
13
13
|
opacity: .75;
|
14
14
|
}
|
15
|
+
|
16
|
+
// Opinionated: add "hand" cursor to non-disabled .close elements
|
17
|
+
&:not([disabled]):not(.disabled) {
|
18
|
+
cursor: pointer;
|
19
|
+
}
|
15
20
|
}
|
16
21
|
|
17
22
|
// Additional properties for button version
|
@@ -22,7 +27,7 @@
|
|
22
27
|
// stylelint-disable property-no-vendor-prefix, selector-no-qualifying-type
|
23
28
|
button.close {
|
24
29
|
padding: 0;
|
25
|
-
background: transparent;
|
30
|
+
background-color: transparent;
|
26
31
|
border: 0;
|
27
32
|
-webkit-appearance: none;
|
28
33
|
}
|
@@ -8,24 +8,20 @@ samp {
|
|
8
8
|
|
9
9
|
// Inline code
|
10
10
|
code {
|
11
|
-
padding: $code-padding-y $code-padding-x;
|
12
11
|
font-size: $code-font-size;
|
13
12
|
color: $code-color;
|
14
|
-
|
15
|
-
@include border-radius($border-radius);
|
13
|
+
word-break: break-word;
|
16
14
|
|
17
15
|
// Streamline the style when inside anchors to avoid broken underline and more
|
18
16
|
a > & {
|
19
|
-
padding: 0;
|
20
17
|
color: inherit;
|
21
|
-
background-color: inherit;
|
22
18
|
}
|
23
19
|
}
|
24
20
|
|
25
21
|
// User input typically entered via keyboard
|
26
22
|
kbd {
|
27
|
-
padding: $
|
28
|
-
font-size: $
|
23
|
+
padding: $kbd-padding-y $kbd-padding-x;
|
24
|
+
font-size: $kbd-font-size;
|
29
25
|
color: $kbd-color;
|
30
26
|
background-color: $kbd-bg;
|
31
27
|
@include border-radius($border-radius-sm);
|
@@ -42,18 +38,14 @@ kbd {
|
|
42
38
|
// Blocks of code
|
43
39
|
pre {
|
44
40
|
display: block;
|
45
|
-
margin-top: 0;
|
46
|
-
margin-bottom: 1rem;
|
47
41
|
font-size: $code-font-size;
|
48
42
|
color: $pre-color;
|
49
43
|
|
50
44
|
// Account for some code outputs that place code tags in pre tags
|
51
45
|
code {
|
52
|
-
padding: 0;
|
53
46
|
font-size: inherit;
|
54
47
|
color: inherit;
|
55
|
-
|
56
|
-
border-radius: 0;
|
48
|
+
word-break: normal;
|
57
49
|
}
|
58
50
|
}
|
59
51
|
|
@@ -9,9 +9,13 @@
|
|
9
9
|
|
10
10
|
.custom-control {
|
11
11
|
position: relative;
|
12
|
-
display:
|
12
|
+
display: block;
|
13
13
|
min-height: (1rem * $line-height-base);
|
14
14
|
padding-left: $custom-control-gutter;
|
15
|
+
}
|
16
|
+
|
17
|
+
.custom-control-inline {
|
18
|
+
display: inline-flex;
|
15
19
|
margin-right: $custom-control-spacer-x;
|
16
20
|
}
|
17
21
|
|
@@ -20,71 +24,98 @@
|
|
20
24
|
z-index: -1; // Put the input behind the label so it doesn't overlay text
|
21
25
|
opacity: 0;
|
22
26
|
|
23
|
-
&:checked ~ .custom-control-
|
27
|
+
&:checked ~ .custom-control-label::before {
|
24
28
|
color: $custom-control-indicator-checked-color;
|
25
29
|
@include gradient-bg($custom-control-indicator-checked-bg);
|
26
30
|
@include box-shadow($custom-control-indicator-checked-box-shadow);
|
27
31
|
}
|
28
32
|
|
29
|
-
&:focus ~ .custom-control-
|
33
|
+
&:focus ~ .custom-control-label::before {
|
30
34
|
// the mixin is not used here to make sure there is feedback
|
31
35
|
box-shadow: $custom-control-indicator-focus-box-shadow;
|
32
36
|
}
|
33
37
|
|
34
|
-
&:active ~ .custom-control-
|
38
|
+
&:active ~ .custom-control-label::before {
|
35
39
|
color: $custom-control-indicator-active-color;
|
36
|
-
|
40
|
+
background-color: $custom-control-indicator-active-bg;
|
37
41
|
@include box-shadow($custom-control-indicator-active-box-shadow);
|
38
42
|
}
|
39
43
|
|
40
44
|
&:disabled {
|
41
|
-
~ .custom-control-
|
42
|
-
|
43
|
-
}
|
45
|
+
~ .custom-control-label {
|
46
|
+
color: $custom-control-label-disabled-color;
|
44
47
|
|
45
|
-
|
46
|
-
|
48
|
+
&::before {
|
49
|
+
background-color: $custom-control-indicator-disabled-bg;
|
50
|
+
}
|
47
51
|
}
|
48
52
|
}
|
49
53
|
}
|
50
54
|
|
51
|
-
// Custom
|
55
|
+
// Custom control indicators
|
52
56
|
//
|
53
|
-
//
|
57
|
+
// Build the custom controls out of psuedo-elements.
|
54
58
|
|
55
|
-
.custom-control-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
59
|
+
.custom-control-label {
|
60
|
+
margin-bottom: 0;
|
61
|
+
|
62
|
+
// Background-color and (when enabled) gradient
|
63
|
+
&::before {
|
64
|
+
position: absolute;
|
65
|
+
top: (($line-height-base - $custom-control-indicator-size) / 2);
|
66
|
+
left: 0;
|
67
|
+
display: block;
|
68
|
+
width: $custom-control-indicator-size;
|
69
|
+
height: $custom-control-indicator-size;
|
70
|
+
pointer-events: none;
|
71
|
+
content: "";
|
72
|
+
user-select: none;
|
73
|
+
background-color: $custom-control-indicator-bg;
|
74
|
+
@include box-shadow($custom-control-indicator-box-shadow);
|
75
|
+
}
|
76
|
+
|
77
|
+
// Foreground (icon)
|
78
|
+
&::after {
|
79
|
+
position: absolute;
|
80
|
+
top: (($line-height-base - $custom-control-indicator-size) / 2);
|
81
|
+
left: 0;
|
82
|
+
display: block;
|
83
|
+
width: $custom-control-indicator-size;
|
84
|
+
height: $custom-control-indicator-size;
|
85
|
+
content: "";
|
86
|
+
background-repeat: no-repeat;
|
87
|
+
background-position: center center;
|
88
|
+
background-size: $custom-control-indicator-bg-size;
|
89
|
+
}
|
69
90
|
}
|
70
91
|
|
92
|
+
|
71
93
|
// Checkboxes
|
72
94
|
//
|
73
95
|
// Tweak just a few things for checkboxes.
|
74
96
|
|
75
97
|
.custom-checkbox {
|
76
|
-
.custom-control-
|
98
|
+
.custom-control-label::before {
|
77
99
|
@include border-radius($custom-checkbox-indicator-border-radius);
|
78
100
|
}
|
79
101
|
|
80
|
-
.custom-control-input:checked ~ .custom-control-
|
81
|
-
|
102
|
+
.custom-control-input:checked ~ .custom-control-label {
|
103
|
+
&::before {
|
104
|
+
@include gradient-bg($custom-control-indicator-checked-bg);
|
105
|
+
}
|
106
|
+
&::after {
|
107
|
+
background-image: $custom-checkbox-indicator-icon-checked;
|
108
|
+
}
|
82
109
|
}
|
83
110
|
|
84
|
-
.custom-control-input:indeterminate ~ .custom-control-
|
85
|
-
|
86
|
-
|
87
|
-
|
111
|
+
.custom-control-input:indeterminate ~ .custom-control-label {
|
112
|
+
&::before {
|
113
|
+
@include gradient-bg($custom-checkbox-indicator-indeterminate-bg);
|
114
|
+
@include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);
|
115
|
+
}
|
116
|
+
&::after {
|
117
|
+
background-image: $custom-checkbox-indicator-icon-indeterminate;
|
118
|
+
}
|
88
119
|
}
|
89
120
|
}
|
90
121
|
|
@@ -93,30 +124,16 @@
|
|
93
124
|
// Tweak just a few things for radios.
|
94
125
|
|
95
126
|
.custom-radio {
|
96
|
-
.custom-control-
|
127
|
+
.custom-control-label::before {
|
97
128
|
border-radius: $custom-radio-indicator-border-radius;
|
98
129
|
}
|
99
130
|
|
100
|
-
.custom-control-input:checked ~ .custom-control-
|
101
|
-
|
102
|
-
|
103
|
-
}
|
104
|
-
|
105
|
-
|
106
|
-
// Layout options
|
107
|
-
//
|
108
|
-
// By default radios and checkboxes are `inline-block` with no additional spacing
|
109
|
-
// set. Use these optional classes to tweak the layout.
|
110
|
-
|
111
|
-
.custom-controls-stacked {
|
112
|
-
display: flex;
|
113
|
-
flex-direction: column;
|
114
|
-
|
115
|
-
.custom-control {
|
116
|
-
margin-bottom: $custom-control-spacer-y;
|
117
|
-
|
118
|
-
+ .custom-control {
|
119
|
-
margin-left: 0;
|
131
|
+
.custom-control-input:checked ~ .custom-control-label {
|
132
|
+
&::before {
|
133
|
+
@include gradient-bg($custom-control-indicator-checked-bg);
|
134
|
+
}
|
135
|
+
&::after {
|
136
|
+
background-image: $custom-radio-indicator-icon-checked;
|
120
137
|
}
|
121
138
|
}
|
122
139
|
}
|
@@ -130,7 +147,7 @@
|
|
130
147
|
|
131
148
|
.custom-select {
|
132
149
|
display: inline-block;
|
133
|
-
|
150
|
+
width: 100%;
|
134
151
|
height: $input-height;
|
135
152
|
padding: $custom-select-padding-y ($custom-select-padding-x + $custom-select-indicator-padding) $custom-select-padding-y $custom-select-padding-x;
|
136
153
|
line-height: $custom-select-line-height;
|
@@ -148,12 +165,12 @@
|
|
148
165
|
|
149
166
|
&:focus {
|
150
167
|
border-color: $custom-select-focus-border-color;
|
151
|
-
outline:
|
152
|
-
|
168
|
+
outline: 0;
|
169
|
+
box-shadow: $custom-select-focus-box-shadow;
|
153
170
|
|
154
171
|
&::-ms-value {
|
155
172
|
// For visual consistency with other platforms/browsers,
|
156
|
-
//
|
173
|
+
// suppress the default white text on blue background highlight given to
|
157
174
|
// the selected option text when the (still closed) <select> receives focus
|
158
175
|
// in IE and (under certain conditions) Edge.
|
159
176
|
// See https://github.com/twbs/bootstrap/issues/19398.
|
@@ -162,8 +179,10 @@
|
|
162
179
|
}
|
163
180
|
}
|
164
181
|
|
165
|
-
&[multiple]
|
182
|
+
&[multiple],
|
183
|
+
&[size]:not([size="1"]) {
|
166
184
|
height: auto;
|
185
|
+
padding-right: $custom-select-padding-x;
|
167
186
|
background-image: none;
|
168
187
|
}
|
169
188
|
|
@@ -185,6 +204,13 @@
|
|
185
204
|
font-size: $custom-select-font-size-sm;
|
186
205
|
}
|
187
206
|
|
207
|
+
.custom-select-lg {
|
208
|
+
height: $custom-select-height-lg;
|
209
|
+
padding-top: $custom-select-padding-y;
|
210
|
+
padding-bottom: $custom-select-padding-y;
|
211
|
+
font-size: $custom-select-font-size-lg;
|
212
|
+
}
|
213
|
+
|
188
214
|
|
189
215
|
// File
|
190
216
|
//
|
@@ -193,65 +219,64 @@
|
|
193
219
|
.custom-file {
|
194
220
|
position: relative;
|
195
221
|
display: inline-block;
|
196
|
-
|
222
|
+
width: 100%;
|
197
223
|
height: $custom-file-height;
|
198
224
|
margin-bottom: 0;
|
199
225
|
}
|
200
226
|
|
201
227
|
.custom-file-input {
|
202
|
-
|
203
|
-
|
228
|
+
position: relative;
|
229
|
+
z-index: 2;
|
230
|
+
width: 100%;
|
204
231
|
height: $custom-file-height;
|
205
232
|
margin: 0;
|
206
233
|
opacity: 0;
|
207
234
|
|
208
235
|
&:focus ~ .custom-file-control {
|
236
|
+
border-color: $custom-file-focus-border-color;
|
209
237
|
box-shadow: $custom-file-focus-box-shadow;
|
238
|
+
|
239
|
+
&::before {
|
240
|
+
border-color: $custom-file-focus-border-color;
|
241
|
+
}
|
242
|
+
}
|
243
|
+
|
244
|
+
@each $lang, $value in $custom-file-text {
|
245
|
+
&:lang(#{$lang}) ~ .custom-file-label::after {
|
246
|
+
content: $value;
|
247
|
+
}
|
210
248
|
}
|
211
249
|
}
|
212
250
|
|
213
|
-
.custom-file-
|
251
|
+
.custom-file-label {
|
214
252
|
position: absolute;
|
215
253
|
top: 0;
|
216
254
|
right: 0;
|
217
255
|
left: 0;
|
218
|
-
z-index:
|
256
|
+
z-index: 1;
|
219
257
|
height: $custom-file-height;
|
220
258
|
padding: $custom-file-padding-y $custom-file-padding-x;
|
221
259
|
line-height: $custom-file-line-height;
|
222
260
|
color: $custom-file-color;
|
223
|
-
pointer-events: none;
|
224
|
-
user-select: none;
|
225
261
|
background-color: $custom-file-bg;
|
226
262
|
border: $custom-file-border-width solid $custom-file-border-color;
|
227
263
|
@include border-radius($custom-file-border-radius);
|
228
264
|
@include box-shadow($custom-file-box-shadow);
|
229
265
|
|
230
|
-
|
231
|
-
&:lang(#{$lang}):empty::after {
|
232
|
-
content: $text;
|
233
|
-
}
|
234
|
-
}
|
235
|
-
|
236
|
-
&::before {
|
266
|
+
&::after {
|
237
267
|
position: absolute;
|
238
|
-
top:
|
239
|
-
right:
|
240
|
-
bottom:
|
241
|
-
z-index:
|
268
|
+
top: 0;
|
269
|
+
right: 0;
|
270
|
+
bottom: 0;
|
271
|
+
z-index: 3;
|
242
272
|
display: block;
|
243
|
-
height: $custom-file-height;
|
273
|
+
height: calc(#{$custom-file-height} - #{$custom-file-border-width} * 2);
|
244
274
|
padding: $custom-file-padding-y $custom-file-padding-x;
|
245
275
|
line-height: $custom-file-line-height;
|
246
276
|
color: $custom-file-button-color;
|
277
|
+
content: "Browse";
|
247
278
|
@include gradient-bg($custom-file-button-bg);
|
248
|
-
border: $custom-file-border-width solid $custom-file-border-color;
|
279
|
+
border-left: $custom-file-border-width solid $custom-file-border-color;
|
249
280
|
@include border-radius(0 $custom-file-border-radius $custom-file-border-radius 0);
|
250
281
|
}
|
251
|
-
|
252
|
-
@each $lang, $text in map-get($custom-file-text, button-label) {
|
253
|
-
&:lang(#{$lang})::before {
|
254
|
-
content: $text;
|
255
|
-
}
|
256
|
-
}
|
257
282
|
}
|