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.

Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +4 -4
  5. data/assets/javascripts/bootstrap.js +576 -534
  6. data/assets/javascripts/bootstrap.min.js +2 -2
  7. data/assets/javascripts/bootstrap/alert.js +3 -3
  8. data/assets/javascripts/bootstrap/button.js +3 -3
  9. data/assets/javascripts/bootstrap/carousel.js +10 -7
  10. data/assets/javascripts/bootstrap/collapse.js +7 -5
  11. data/assets/javascripts/bootstrap/dropdown.js +64 -37
  12. data/assets/javascripts/bootstrap/modal.js +8 -6
  13. data/assets/javascripts/bootstrap/popover.js +19 -7
  14. data/assets/javascripts/bootstrap/scrollspy.js +6 -4
  15. data/assets/javascripts/bootstrap/tab.js +8 -16
  16. data/assets/javascripts/bootstrap/tooltip.js +23 -17
  17. data/assets/javascripts/bootstrap/util.js +18 -21
  18. data/assets/stylesheets/_bootstrap-grid.scss +1 -1
  19. data/assets/stylesheets/_bootstrap-reboot.scss +1 -1
  20. data/assets/stylesheets/_bootstrap.scss +2 -2
  21. data/assets/stylesheets/bootstrap/_alert.scss +2 -0
  22. data/assets/stylesheets/bootstrap/_button-group.scss +31 -72
  23. data/assets/stylesheets/bootstrap/_buttons.scss +22 -11
  24. data/assets/stylesheets/bootstrap/_card.scss +23 -12
  25. data/assets/stylesheets/bootstrap/_carousel.scss +2 -2
  26. data/assets/stylesheets/bootstrap/_close.scss +6 -1
  27. data/assets/stylesheets/bootstrap/_code.scss +4 -12
  28. data/assets/stylesheets/bootstrap/_custom-forms.scss +110 -85
  29. data/assets/stylesheets/bootstrap/_dropdown.scss +30 -2
  30. data/assets/stylesheets/bootstrap/_forms.scss +46 -71
  31. data/assets/stylesheets/bootstrap/_functions.scss +4 -4
  32. data/assets/stylesheets/bootstrap/_images.scss +0 -1
  33. data/assets/stylesheets/bootstrap/_input-group.scss +96 -126
  34. data/assets/stylesheets/bootstrap/_list-group.scss +2 -1
  35. data/assets/stylesheets/bootstrap/_modal.scss +24 -9
  36. data/assets/stylesheets/bootstrap/_nav.scss +2 -2
  37. data/assets/stylesheets/bootstrap/_navbar.scss +6 -1
  38. data/assets/stylesheets/bootstrap/_pagination.scss +27 -19
  39. data/assets/stylesheets/bootstrap/_popover.scss +104 -115
  40. data/assets/stylesheets/bootstrap/_progress.scss +4 -1
  41. data/assets/stylesheets/bootstrap/_reboot.scss +3 -2
  42. data/assets/stylesheets/bootstrap/_tables.scss +1 -1
  43. data/assets/stylesheets/bootstrap/_tooltip.scss +63 -55
  44. data/assets/stylesheets/bootstrap/_type.scss +2 -2
  45. data/assets/stylesheets/bootstrap/_variables.scss +135 -91
  46. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
  47. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +4 -2
  48. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +25 -18
  49. data/assets/stylesheets/bootstrap/mixins/_caret.scss +30 -0
  50. data/assets/stylesheets/bootstrap/mixins/_forms.scss +42 -17
  51. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
  52. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +1 -0
  53. data/lib/bootstrap/version.rb +2 -2
  54. data/tasks/updater/js.rb +1 -1
  55. metadata +3 -3
@@ -11,31 +11,41 @@
11
11
  white-space: nowrap;
12
12
  vertical-align: middle;
13
13
  user-select: none;
14
- border: $input-btn-border-width solid transparent;
15
- @include button-size($input-btn-padding-y, $input-btn-padding-x, $font-size-base, $input-btn-line-height, $btn-border-radius);
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: $input-btn-focus-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: .65;
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($input-btn-focus-box-shadow, $btn-active-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($input-btn-padding-y-lg, $input-btn-padding-x-lg, $font-size-lg, $input-btn-line-height-lg, $btn-border-radius-lg);
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($input-btn-padding-y-sm, $input-btn-padding-x-sm, $font-size-sm, $input-btn-line-height-sm, $btn-border-radius-sm);
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
- .btn-block + .btn-block {
126
- margin-top: $btn-block-spacing-y;
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
- .card {
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
- .card {
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: 0;
237
+ @include border-radius(0);
229
238
 
230
239
  .card-img-top,
231
- .card-img-bottom {
232
- border-radius: 0;
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,.25), rgba(0,0,0,.001));
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,.25), rgba(0,0,0,.001));
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
- background-color: $code-bg;
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: $code-padding-y $code-padding-x;
28
- font-size: $code-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
- background-color: transparent;
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: inline-flex;
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-indicator {
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-indicator {
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-indicator {
38
+ &:active ~ .custom-control-label::before {
35
39
  color: $custom-control-indicator-active-color;
36
- @include gradient-bg($custom-control-indicator-active-bg);
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-indicator {
42
- background-color: $custom-control-indicator-disabled-bg;
43
- }
45
+ ~ .custom-control-label {
46
+ color: $custom-control-label-disabled-color;
44
47
 
45
- ~ .custom-control-description {
46
- color: $custom-control-description-disabled-color;
48
+ &::before {
49
+ background-color: $custom-control-indicator-disabled-bg;
50
+ }
47
51
  }
48
52
  }
49
53
  }
50
54
 
51
- // Custom indicator
55
+ // Custom control indicators
52
56
  //
53
- // Generates a shadow element to create our makeshift checkbox/radio background.
57
+ // Build the custom controls out of psuedo-elements.
54
58
 
55
- .custom-control-indicator {
56
- position: absolute;
57
- top: (($line-height-base - $custom-control-indicator-size) / 2);
58
- left: 0;
59
- display: block;
60
- width: $custom-control-indicator-size;
61
- height: $custom-control-indicator-size;
62
- pointer-events: none;
63
- user-select: none;
64
- background-color: $custom-control-indicator-bg;
65
- background-repeat: no-repeat;
66
- background-position: center center;
67
- background-size: $custom-control-indicator-bg-size;
68
- @include box-shadow($custom-control-indicator-box-shadow);
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-indicator {
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-indicator {
81
- background-image: $custom-checkbox-indicator-icon-checked;
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-indicator {
85
- background-color: $custom-checkbox-indicator-indeterminate-bg;
86
- background-image: $custom-checkbox-indicator-icon-indeterminate;
87
- @include box-shadow($custom-checkbox-indicator-indeterminate-box-shadow);
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-indicator {
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-indicator {
101
- background-image: $custom-radio-indicator-icon-checked;
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
- max-width: 100%;
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: none;
152
- @include box-shadow($custom-select-focus-box-shadow);
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
- // supress the default white text on blue background highlight given to
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
- max-width: 100%;
222
+ width: 100%;
197
223
  height: $custom-file-height;
198
224
  margin-bottom: 0;
199
225
  }
200
226
 
201
227
  .custom-file-input {
202
- min-width: $custom-file-width;
203
- max-width: 100%;
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-control {
251
+ .custom-file-label {
214
252
  position: absolute;
215
253
  top: 0;
216
254
  right: 0;
217
255
  left: 0;
218
- z-index: 5;
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
- @each $lang, $text in map-get($custom-file-text, placeholder) {
231
- &:lang(#{$lang}):empty::after {
232
- content: $text;
233
- }
234
- }
235
-
236
- &::before {
266
+ &::after {
237
267
  position: absolute;
238
- top: -$custom-file-border-width;
239
- right: -$custom-file-border-width;
240
- bottom: -$custom-file-border-width;
241
- z-index: 6;
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
  }