bootstrap 4.4.1 → 4.6.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -1
  3. data/README.md +1 -1
  4. data/assets/javascripts/bootstrap-sprockets.js +6 -6
  5. data/assets/javascripts/bootstrap.js +836 -925
  6. data/assets/javascripts/bootstrap.min.js +4 -4
  7. data/assets/javascripts/bootstrap/alert.js +35 -41
  8. data/assets/javascripts/bootstrap/button.js +69 -69
  9. data/assets/javascripts/bootstrap/carousel.js +154 -182
  10. data/assets/javascripts/bootstrap/collapse.js +91 -130
  11. data/assets/javascripts/bootstrap/dropdown.js +123 -170
  12. data/assets/javascripts/bootstrap/modal.js +181 -197
  13. data/assets/javascripts/bootstrap/popover.js +45 -80
  14. data/assets/javascripts/bootstrap/scrollspy.js +74 -117
  15. data/assets/javascripts/bootstrap/tab.js +65 -71
  16. data/assets/javascripts/bootstrap/toast.js +74 -105
  17. data/assets/javascripts/bootstrap/tooltip.js +129 -166
  18. data/assets/javascripts/bootstrap/util.js +24 -20
  19. data/assets/stylesheets/_bootstrap-grid.scss +5 -4
  20. data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
  21. data/assets/stylesheets/_bootstrap.scss +4 -4
  22. data/assets/stylesheets/bootstrap/_alert.scss +1 -0
  23. data/assets/stylesheets/bootstrap/_breadcrumb.scss +1 -1
  24. data/assets/stylesheets/bootstrap/_buttons.scss +10 -7
  25. data/assets/stylesheets/bootstrap/_card.scss +25 -17
  26. data/assets/stylesheets/bootstrap/_carousel.scss +1 -1
  27. data/assets/stylesheets/bootstrap/_close.scss +0 -1
  28. data/assets/stylesheets/bootstrap/_custom-forms.scss +16 -11
  29. data/assets/stylesheets/bootstrap/_dropdown.scss +4 -3
  30. data/assets/stylesheets/bootstrap/_forms.scss +9 -0
  31. data/assets/stylesheets/bootstrap/_functions.scss +15 -5
  32. data/assets/stylesheets/bootstrap/_grid.scss +10 -6
  33. data/assets/stylesheets/bootstrap/_input-group.scss +22 -5
  34. data/assets/stylesheets/bootstrap/_list-group.scss +10 -14
  35. data/assets/stylesheets/bootstrap/_modal.scss +2 -1
  36. data/assets/stylesheets/bootstrap/_nav.scss +4 -4
  37. data/assets/stylesheets/bootstrap/_navbar.scss +10 -2
  38. data/assets/stylesheets/bootstrap/_pagination.scss +3 -2
  39. data/assets/stylesheets/bootstrap/_progress.scss +2 -1
  40. data/assets/stylesheets/bootstrap/_reboot.scss +27 -25
  41. data/assets/stylesheets/bootstrap/_root.scss +0 -1
  42. data/assets/stylesheets/bootstrap/_spinners.scss +14 -4
  43. data/assets/stylesheets/bootstrap/_toasts.scss +4 -2
  44. data/assets/stylesheets/bootstrap/_type.scss +1 -1
  45. data/assets/stylesheets/bootstrap/_utilities.scss +2 -1
  46. data/assets/stylesheets/bootstrap/_variables.scss +20 -17
  47. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +2 -1
  48. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +27 -14
  49. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +6 -6
  50. data/assets/stylesheets/bootstrap/mixins/_forms.scss +11 -3
  51. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +24 -15
  52. data/assets/stylesheets/bootstrap/mixins/_grid.scss +8 -8
  53. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -1
  54. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +1 -1
  55. data/assets/stylesheets/bootstrap/mixins/_transition.scss +18 -8
  56. data/assets/stylesheets/bootstrap/utilities/_background.scss +1 -1
  57. data/assets/stylesheets/bootstrap/utilities/_borders.scss +1 -1
  58. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  59. data/assets/stylesheets/bootstrap/utilities/_text.scss +2 -2
  60. data/lib/bootstrap/version.rb +2 -2
  61. data/tasks/updater/network.rb +2 -2
  62. data/test/gemfiles/rails_6_0.gemfile +7 -0
  63. metadata +6 -3
@@ -1,20 +1,22 @@
1
1
  /*!
2
- * Bootstrap util.js v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap util.js v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
4
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5
5
  */
6
6
  (function (global, factory) {
7
7
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery')) :
8
8
  typeof define === 'function' && define.amd ? define(['jquery'], factory) :
9
- (global = global || self, global.Util = factory(global.jQuery));
9
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Util = factory(global.jQuery));
10
10
  }(this, (function ($) { 'use strict';
11
11
 
12
- $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
12
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
13
+
14
+ var $__default = /*#__PURE__*/_interopDefaultLegacy($);
13
15
 
14
16
  /**
15
17
  * --------------------------------------------------------------------------
16
- * Bootstrap (v4.4.1): util.js
17
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
18
+ * Bootstrap (v4.6.0): util.js
19
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
18
20
  * --------------------------------------------------------------------------
19
21
  */
20
22
  /**
@@ -28,6 +30,10 @@
28
30
  var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
29
31
 
30
32
  function toType(obj) {
33
+ if (obj === null || typeof obj === 'undefined') {
34
+ return "" + obj;
35
+ }
36
+
31
37
  return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
32
38
  }
33
39
 
@@ -36,11 +42,11 @@
36
42
  bindType: TRANSITION_END,
37
43
  delegateType: TRANSITION_END,
38
44
  handle: function handle(event) {
39
- if ($(event.target).is(this)) {
45
+ if ($__default['default'](event.target).is(this)) {
40
46
  return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params
41
47
  }
42
48
 
43
- return undefined; // eslint-disable-line no-undefined
49
+ return undefined;
44
50
  }
45
51
  };
46
52
  }
@@ -49,7 +55,7 @@
49
55
  var _this = this;
50
56
 
51
57
  var called = false;
52
- $(this).one(Util.TRANSITION_END, function () {
58
+ $__default['default'](this).one(Util.TRANSITION_END, function () {
53
59
  called = true;
54
60
  });
55
61
  setTimeout(function () {
@@ -61,8 +67,8 @@
61
67
  }
62
68
 
63
69
  function setTransitionEndSupport() {
64
- $.fn.emulateTransitionEnd = transitionEndEmulator;
65
- $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
70
+ $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;
71
+ $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();
66
72
  }
67
73
  /**
68
74
  * --------------------------------------------------------------------------
@@ -75,7 +81,6 @@
75
81
  TRANSITION_END: 'bsTransitionEnd',
76
82
  getUID: function getUID(prefix) {
77
83
  do {
78
- // eslint-disable-next-line no-bitwise
79
84
  prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
80
85
  } while (document.getElementById(prefix));
81
86
 
@@ -91,7 +96,7 @@
91
96
 
92
97
  try {
93
98
  return document.querySelector(selector) ? selector : null;
94
- } catch (err) {
99
+ } catch (_) {
95
100
  return null;
96
101
  }
97
102
  },
@@ -101,8 +106,8 @@
101
106
  } // Get transition-duration of the element
102
107
 
103
108
 
104
- var transitionDuration = $(element).css('transition-duration');
105
- var transitionDelay = $(element).css('transition-delay');
109
+ var transitionDuration = $__default['default'](element).css('transition-duration');
110
+ var transitionDelay = $__default['default'](element).css('transition-delay');
106
111
  var floatTransitionDuration = parseFloat(transitionDuration);
107
112
  var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
108
113
 
@@ -119,9 +124,8 @@
119
124
  return element.offsetHeight;
120
125
  },
121
126
  triggerTransitionEnd: function triggerTransitionEnd(element) {
122
- $(element).trigger(TRANSITION_END);
127
+ $__default['default'](element).trigger(TRANSITION_END);
123
128
  },
124
- // TODO: Remove in v5
125
129
  supportsTransitionEnd: function supportsTransitionEnd() {
126
130
  return Boolean(TRANSITION_END);
127
131
  },
@@ -164,11 +168,11 @@
164
168
  return Util.findShadowRoot(element.parentNode);
165
169
  },
166
170
  jQueryDetection: function jQueryDetection() {
167
- if (typeof $ === 'undefined') {
171
+ if (typeof $__default['default'] === 'undefined') {
168
172
  throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.');
169
173
  }
170
174
 
171
- var version = $.fn.jquery.split(' ')[0].split('.');
175
+ var version = $__default['default'].fn.jquery.split(' ')[0].split('.');
172
176
  var minMajor = 1;
173
177
  var ltMajor = 2;
174
178
  var minMinor = 9;
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap Grid v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap Grid v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
8
  html {
@@ -19,6 +19,7 @@ html {
19
19
  @import "bootstrap/functions";
20
20
  @import "bootstrap/variables";
21
21
 
22
+ @import "bootstrap/mixins/deprecate";
22
23
  @import "bootstrap/mixins/breakpoints";
23
24
  @import "bootstrap/mixins/grid-framework";
24
25
  @import "bootstrap/mixins/grid";
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap Reboot v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  * Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md)
7
7
  */
8
8
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Bootstrap v4.4.1 (https://getbootstrap.com/)
3
- * Copyright 2011-2019 The Bootstrap Authors
4
- * Copyright 2011-2019 Twitter, Inc.
5
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
2
+ * Bootstrap v4.6.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
8
  @import "bootstrap/functions";
@@ -34,6 +34,7 @@
34
34
  position: absolute;
35
35
  top: 0;
36
36
  right: 0;
37
+ z-index: 2;
37
38
  padding: $alert-padding-y $alert-padding-x;
38
39
  color: inherit;
39
40
  }
@@ -15,7 +15,7 @@
15
15
  padding-left: $breadcrumb-item-padding;
16
16
 
17
17
  &::before {
18
- display: inline-block; // Suppress underlining of the separator in modern browsers
18
+ float: left; // Suppress inline spacings and underlining of the separator
19
19
  padding-right: $breadcrumb-item-padding;
20
20
  color: $breadcrumb-divider-color;
21
21
  content: escape-svg($breadcrumb-divider);
@@ -10,9 +10,9 @@
10
10
  font-weight: $btn-font-weight;
11
11
  color: $body-color;
12
12
  text-align: center;
13
+ text-decoration: if($link-decoration == none, null, none);
13
14
  white-space: $btn-white-space;
14
15
  vertical-align: middle;
15
- cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
16
16
  user-select: none;
17
17
  background-color: transparent;
18
18
  border: $btn-border-width solid transparent;
@@ -37,12 +37,16 @@
37
37
  @include box-shadow(none);
38
38
  }
39
39
 
40
- &:not(:disabled):not(.disabled):active,
41
- &:not(:disabled):not(.disabled).active {
42
- @include box-shadow($btn-active-box-shadow);
40
+ &:not(:disabled):not(.disabled) {
41
+ cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
43
42
 
44
- &:focus {
45
- @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
43
+ &:active,
44
+ &.active {
45
+ @include box-shadow($btn-active-box-shadow);
46
+
47
+ &:focus {
48
+ @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
49
+ }
46
50
  }
47
51
  }
48
52
  }
@@ -89,7 +93,6 @@ fieldset:disabled a.btn {
89
93
  &:focus,
90
94
  &.focus {
91
95
  text-decoration: $link-hover-decoration;
92
- box-shadow: none;
93
96
  }
94
97
 
95
98
  &:disabled,
@@ -19,17 +19,27 @@
19
19
  margin-left: 0;
20
20
  }
21
21
 
22
- > .list-group:first-child {
23
- .list-group-item:first-child {
24
- @include border-top-radius($card-border-radius);
22
+ > .list-group {
23
+ border-top: inherit;
24
+ border-bottom: inherit;
25
+
26
+ &:first-child {
27
+ border-top-width: 0;
28
+ @include border-top-radius($card-inner-border-radius);
25
29
  }
26
- }
27
30
 
28
- > .list-group:last-child {
29
- .list-group-item:last-child {
30
- @include border-bottom-radius($card-border-radius);
31
+ &:last-child {
32
+ border-bottom-width: 0;
33
+ @include border-bottom-radius($card-inner-border-radius);
31
34
  }
32
35
  }
36
+
37
+ // Due to specificity of the above selector (`.card > .list-group`), we must
38
+ // use a child selector here to prevent double borders.
39
+ > .card-header + .list-group,
40
+ > .list-group + .card-footer {
41
+ border-top: 0;
42
+ }
33
43
  }
34
44
 
35
45
  .card-body {
@@ -80,16 +90,11 @@
80
90
  &:first-child {
81
91
  @include border-radius($card-inner-border-radius $card-inner-border-radius 0 0);
82
92
  }
83
-
84
- + .list-group {
85
- .list-group-item:first-child {
86
- border-top: 0;
87
- }
88
- }
89
93
  }
90
94
 
91
95
  .card-footer {
92
96
  padding: $card-spacer-y $card-spacer-x;
97
+ color: $card-cap-color;
93
98
  background-color: $card-cap-bg;
94
99
  border-top: $card-border-width solid $card-border-color;
95
100
 
@@ -123,6 +128,7 @@
123
128
  bottom: 0;
124
129
  left: 0;
125
130
  padding: $card-img-overlay-padding;
131
+ @include border-radius($card-inner-border-radius);
126
132
  }
127
133
 
128
134
  .card-img,
@@ -200,12 +206,12 @@
200
206
 
201
207
  .card-img-top,
202
208
  .card-header {
203
- // stylelint-disable-next-line property-blacklist
209
+ // stylelint-disable-next-line property-disallowed-list
204
210
  border-top-right-radius: 0;
205
211
  }
206
212
  .card-img-bottom,
207
213
  .card-footer {
208
- // stylelint-disable-next-line property-blacklist
214
+ // stylelint-disable-next-line property-disallowed-list
209
215
  border-bottom-right-radius: 0;
210
216
  }
211
217
  }
@@ -215,12 +221,12 @@
215
221
 
216
222
  .card-img-top,
217
223
  .card-header {
218
- // stylelint-disable-next-line property-blacklist
224
+ // stylelint-disable-next-line property-disallowed-list
219
225
  border-top-left-radius: 0;
220
226
  }
221
227
  .card-img-bottom,
222
228
  .card-footer {
223
- // stylelint-disable-next-line property-blacklist
229
+ // stylelint-disable-next-line property-disallowed-list
224
230
  border-bottom-left-radius: 0;
225
231
  }
226
232
  }
@@ -258,6 +264,8 @@
258
264
  //
259
265
 
260
266
  .accordion {
267
+ overflow-anchor: none;
268
+
261
269
  > .card {
262
270
  overflow: hidden;
263
271
 
@@ -127,7 +127,7 @@
127
127
  display: inline-block;
128
128
  width: $carousel-control-icon-width;
129
129
  height: $carousel-control-icon-width;
130
- background: no-repeat 50% / 100% 100%;
130
+ background: 50% / 100% 100% no-repeat;
131
131
  }
132
132
  .carousel-control-prev-icon {
133
133
  background-image: escape-svg($carousel-control-prev-icon-bg);
@@ -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
+ color-adjust: exact; // Keep themed appearance for print
15
17
  }
16
18
 
17
19
  .custom-control-inline {
@@ -37,7 +39,7 @@
37
39
  &:focus ~ .custom-control-label::before {
38
40
  // the mixin is not used here to make sure there is feedback
39
41
  @if $enable-shadows {
40
- box-shadow: $input-box-shadow, $input-focus-box-shadow;
42
+ box-shadow: $input-box-shadow, $custom-control-indicator-focus-box-shadow;
41
43
  } @else {
42
44
  box-shadow: $custom-control-indicator-focus-box-shadow;
43
45
  }
@@ -102,7 +104,7 @@
102
104
  width: $custom-control-indicator-size;
103
105
  height: $custom-control-indicator-size;
104
106
  content: "";
105
- background: no-repeat 50% / #{$custom-control-indicator-bg-size};
107
+ background: 50% / #{$custom-control-indicator-bg-size} no-repeat;
106
108
  }
107
109
  }
108
110
 
@@ -135,10 +137,10 @@
135
137
 
136
138
  .custom-control-input:disabled {
137
139
  &:checked ~ .custom-control-label::before {
138
- background-color: $custom-control-indicator-checked-disabled-bg;
140
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
139
141
  }
140
142
  &:indeterminate ~ .custom-control-label::before {
141
- background-color: $custom-control-indicator-checked-disabled-bg;
143
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
142
144
  }
143
145
  }
144
146
  }
@@ -149,7 +151,7 @@
149
151
 
150
152
  .custom-radio {
151
153
  .custom-control-label::before {
152
- // stylelint-disable-next-line property-blacklist
154
+ // stylelint-disable-next-line property-disallowed-list
153
155
  border-radius: $custom-radio-indicator-border-radius;
154
156
  }
155
157
 
@@ -161,7 +163,7 @@
161
163
 
162
164
  .custom-control-input:disabled {
163
165
  &:checked ~ .custom-control-label::before {
164
- background-color: $custom-control-indicator-checked-disabled-bg;
166
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
165
167
  }
166
168
  }
167
169
  }
@@ -179,7 +181,7 @@
179
181
  left: -($custom-switch-width + $custom-control-gutter);
180
182
  width: $custom-switch-width;
181
183
  pointer-events: all;
182
- // stylelint-disable-next-line property-blacklist
184
+ // stylelint-disable-next-line property-disallowed-list
183
185
  border-radius: $custom-switch-indicator-border-radius;
184
186
  }
185
187
 
@@ -189,7 +191,7 @@
189
191
  width: $custom-switch-indicator-size;
190
192
  height: $custom-switch-indicator-size;
191
193
  background-color: $custom-control-indicator-border-color;
192
- // stylelint-disable-next-line property-blacklist
194
+ // stylelint-disable-next-line property-disallowed-list
193
195
  border-radius: $custom-switch-indicator-border-radius;
194
196
  @include transition(transform .15s ease-in-out, $custom-forms-transition);
195
197
  }
@@ -204,7 +206,7 @@
204
206
 
205
207
  .custom-control-input:disabled {
206
208
  &:checked ~ .custom-control-label::before {
207
- background-color: $custom-control-indicator-checked-disabled-bg;
209
+ @include gradient-bg($custom-control-indicator-checked-disabled-bg);
208
210
  }
209
211
  }
210
212
  }
@@ -237,8 +239,9 @@
237
239
  border-color: $custom-select-focus-border-color;
238
240
  outline: 0;
239
241
  @if $enable-shadows {
240
- box-shadow: $custom-select-box-shadow, $custom-select-focus-box-shadow;
242
+ @include box-shadow($custom-select-box-shadow, $custom-select-focus-box-shadow);
241
243
  } @else {
244
+ // Avoid using mixin so we can pass custom focus shadow properly
242
245
  box-shadow: $custom-select-focus-box-shadow;
243
246
  }
244
247
 
@@ -312,6 +315,7 @@
312
315
  width: 100%;
313
316
  height: $custom-file-height;
314
317
  margin: 0;
318
+ overflow: hidden;
315
319
  opacity: 0;
316
320
 
317
321
  &:focus ~ .custom-file-label {
@@ -344,6 +348,7 @@
344
348
  z-index: 1;
345
349
  height: $custom-file-height;
346
350
  padding: $custom-file-padding-y $custom-file-padding-x;
351
+ overflow: hidden;
347
352
  font-family: $custom-file-font-family;
348
353
  font-weight: $custom-file-font-weight;
349
354
  line-height: $custom-file-line-height;
@@ -385,7 +390,7 @@
385
390
  appearance: none;
386
391
 
387
392
  &:focus {
388
- outline: none;
393
+ outline: 0;
389
394
 
390
395
  // Pseudo-elements must be split across multiple rulesets to have an effect.
391
396
  // No box-shadow() mixin for focus accessibility.