bootstrap 4.0.0.beta3 → 4.6.2

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 (114) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +15 -1
  3. data/CHANGELOG.md +2 -2
  4. data/README.md +2 -2
  5. data/Rakefile +4 -2
  6. data/assets/javascripts/bootstrap/alert.js +79 -68
  7. data/assets/javascripts/bootstrap/button.js +140 -78
  8. data/assets/javascripts/bootstrap/carousel.js +294 -158
  9. data/assets/javascripts/bootstrap/collapse.js +157 -133
  10. data/assets/javascripts/bootstrap/dropdown.js +257 -167
  11. data/assets/javascripts/bootstrap/modal.js +285 -204
  12. data/assets/javascripts/bootstrap/popover.js +101 -60
  13. data/assets/javascripts/bootstrap/scrollspy.js +127 -106
  14. data/assets/javascripts/bootstrap/tab.js +113 -101
  15. data/assets/javascripts/bootstrap/toast.js +267 -0
  16. data/assets/javascripts/bootstrap/tooltip.js +406 -188
  17. data/assets/javascripts/bootstrap/util.js +106 -55
  18. data/assets/javascripts/bootstrap-sprockets.js +1 -0
  19. data/assets/javascripts/bootstrap.js +1946 -1482
  20. data/assets/javascripts/bootstrap.min.js +4 -4
  21. data/assets/stylesheets/_bootstrap-grid.scss +7 -12
  22. data/assets/stylesheets/_bootstrap-reboot.scss +4 -4
  23. data/assets/stylesheets/_bootstrap.scss +6 -4
  24. data/assets/stylesheets/bootstrap/_alert.scss +3 -2
  25. data/assets/stylesheets/bootstrap/_badge.scss +8 -1
  26. data/assets/stylesheets/bootstrap/_breadcrumb.scss +10 -6
  27. data/assets/stylesheets/bootstrap/_button-group.scss +17 -20
  28. data/assets/stylesheets/bootstrap/_buttons.scss +23 -28
  29. data/assets/stylesheets/bootstrap/_card.scss +77 -61
  30. data/assets/stylesheets/bootstrap/_carousel.scss +72 -63
  31. data/assets/stylesheets/bootstrap/_close.scss +15 -9
  32. data/assets/stylesheets/bootstrap/_code.scss +6 -14
  33. data/assets/stylesheets/bootstrap/_custom-forms.scss +287 -43
  34. data/assets/stylesheets/bootstrap/_dropdown.scss +70 -9
  35. data/assets/stylesheets/bootstrap/_forms.scss +56 -42
  36. data/assets/stylesheets/bootstrap/_functions.scss +117 -13
  37. data/assets/stylesheets/bootstrap/_grid.scss +32 -11
  38. data/assets/stylesheets/bootstrap/_images.scss +4 -4
  39. data/assets/stylesheets/bootstrap/_input-group.scss +80 -25
  40. data/assets/stylesheets/bootstrap/_jumbotron.scss +2 -1
  41. data/assets/stylesheets/bootstrap/_list-group.scss +63 -24
  42. data/assets/stylesheets/bootstrap/_mixins.scss +9 -4
  43. data/assets/stylesheets/bootstrap/_modal.scss +96 -24
  44. data/assets/stylesheets/bootstrap/_nav.scss +14 -7
  45. data/assets/stylesheets/bootstrap/_navbar.scss +66 -45
  46. data/assets/stylesheets/bootstrap/_pagination.scss +10 -8
  47. data/assets/stylesheets/bootstrap/_popover.scss +56 -69
  48. data/assets/stylesheets/bootstrap/_print.scss +41 -19
  49. data/assets/stylesheets/bootstrap/_progress.scss +20 -6
  50. data/assets/stylesheets/bootstrap/_reboot.scss +88 -109
  51. data/assets/stylesheets/bootstrap/_spinners.scss +65 -0
  52. data/assets/stylesheets/bootstrap/_tables.scss +19 -14
  53. data/assets/stylesheets/bootstrap/_toasts.scss +46 -0
  54. data/assets/stylesheets/bootstrap/_tooltip.scss +6 -6
  55. data/assets/stylesheets/bootstrap/_transitions.scss +10 -20
  56. data/assets/stylesheets/bootstrap/_type.scss +19 -19
  57. data/assets/stylesheets/bootstrap/_utilities.scss +4 -0
  58. data/assets/stylesheets/bootstrap/_variables.scss +492 -215
  59. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +5 -3
  60. data/assets/stylesheets/bootstrap/mixins/_badge.scss +8 -3
  61. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +51 -10
  62. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +16 -1
  63. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +11 -9
  64. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +35 -26
  65. data/assets/stylesheets/bootstrap/mixins/_caret.scss +13 -16
  66. data/assets/stylesheets/bootstrap/mixins/_deprecate.scss +10 -0
  67. data/assets/stylesheets/bootstrap/mixins/_float.scss +6 -3
  68. data/assets/stylesheets/bootstrap/mixins/_forms.scss +102 -40
  69. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +7 -7
  70. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +36 -25
  71. data/assets/stylesheets/bootstrap/mixins/_grid.scss +34 -17
  72. data/assets/stylesheets/bootstrap/mixins/_hover.scss +27 -51
  73. data/assets/stylesheets/bootstrap/mixins/_image.scss +4 -4
  74. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +10 -13
  75. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  76. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +3 -2
  77. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +1 -1
  78. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +3 -3
  79. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +5 -6
  80. data/assets/stylesheets/bootstrap/mixins/_size.scss +1 -0
  81. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +11 -2
  82. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +7 -4
  83. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +3 -1
  84. data/assets/stylesheets/bootstrap/mixins/_transition.scss +20 -3
  85. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +1 -0
  86. data/assets/stylesheets/bootstrap/utilities/_background.scss +2 -2
  87. data/assets/stylesheets/bootstrap/utilities/_borders.scss +23 -2
  88. data/assets/stylesheets/bootstrap/utilities/_display.scss +6 -36
  89. data/assets/stylesheets/bootstrap/utilities/_embed.scss +7 -20
  90. data/assets/stylesheets/bootstrap/utilities/_flex.scss +5 -0
  91. data/assets/stylesheets/bootstrap/utilities/_float.scss +5 -3
  92. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +5 -0
  93. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +5 -0
  94. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -4
  95. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +6 -0
  96. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +8 -0
  97. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +23 -1
  98. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +19 -0
  99. data/assets/stylesheets/bootstrap/utilities/_text.scss +28 -8
  100. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +4 -2
  101. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +228 -0
  102. data/bootstrap.gemspec +7 -4
  103. data/lib/bootstrap/engine.rb +3 -0
  104. data/lib/bootstrap/version.rb +4 -2
  105. data/lib/bootstrap.rb +10 -7
  106. data/tasks/updater/js.rb +18 -6
  107. data/tasks/updater/network.rb +8 -2
  108. data/test/dummy_rails/app/assets/config/manifest.js +3 -0
  109. data/test/dummy_rails/app/assets/stylesheets/.browserslistrc +1 -0
  110. data/test/gemfiles/rails_6_0.gemfile +7 -0
  111. data/test/support/dummy_rails_integration.rb +3 -1
  112. data/test/test_helper.rb +21 -15
  113. metadata +29 -16
  114. data/assets/stylesheets/bootstrap/mixins/_navbar-align.scss +0 -10
@@ -1,4 +1,4 @@
1
- // stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
1
+ // stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
2
2
 
3
3
  // Reboot
4
4
  //
@@ -14,9 +14,7 @@
14
14
  // 2. Change the default font family in all browsers.
15
15
  // 3. Correct the line height in all browsers.
16
16
  // 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.
17
- // 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so
18
- // we force a non-overlapping, non-auto-hiding scrollbar to counteract.
19
- // 6. Change the default tap highlight to be completely transparent in iOS.
17
+ // 5. Change the default tap highlight to be completely transparent in iOS.
20
18
 
21
19
  *,
22
20
  *::before,
@@ -28,36 +26,27 @@ html {
28
26
  font-family: sans-serif; // 2
29
27
  line-height: 1.15; // 3
30
28
  -webkit-text-size-adjust: 100%; // 4
31
- -ms-text-size-adjust: 100%; // 4
32
- -ms-overflow-style: scrollbar; // 5
33
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0); // 6
29
+ -webkit-tap-highlight-color: rgba($black, 0); // 5
34
30
  }
35
31
 
36
- // IE10+ doesn't honor `<meta name="viewport">` in some cases.
37
- @at-root {
38
- @-ms-viewport {
39
- width: device-width;
40
- }
41
- }
42
-
43
- // stylelint-disable selector-list-comma-newline-after
44
32
  // Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)
45
- article, aside, dialog, figcaption, figure, footer, header, hgroup, main, nav, section {
33
+ // TODO: remove in v5
34
+ // stylelint-disable-next-line selector-list-comma-newline-after
35
+ article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
46
36
  display: block;
47
37
  }
48
- // stylelint-enable selector-list-comma-newline-after
49
38
 
50
39
  // Body
51
40
  //
52
41
  // 1. Remove the margin in all browsers.
53
42
  // 2. As a best practice, apply a default `background-color`.
54
- // 3. Set an explicit initial text-align value so that we can later use the
43
+ // 3. Set an explicit initial text-align value so that we can later use
55
44
  // the `inherit` value on things like `<th>` elements.
56
45
 
57
46
  body {
58
47
  margin: 0; // 1
59
48
  font-family: $font-family-base;
60
- font-size: $font-size-base;
49
+ @include font-size($font-size-base);
61
50
  font-weight: $font-weight-base;
62
51
  line-height: $line-height-base;
63
52
  color: $body-color;
@@ -65,12 +54,16 @@ body {
65
54
  background-color: $body-bg; // 2
66
55
  }
67
56
 
68
- // Suppress the focus outline on elements that cannot be accessed via keyboard.
69
- // This prevents an unwanted focus outline from appearing around elements that
70
- // might still respond to pointer events.
57
+ // Future-proof rule: in browsers that support :focus-visible, suppress the focus outline
58
+ // on elements that programmatically receive focus but wouldn't normally show a visible
59
+ // focus outline. In general, this would mean that the outline is only applied if the
60
+ // interaction that led to the element receiving programmatic focus was a keyboard interaction,
61
+ // or the browser has somehow determined that the user is primarily a keyboard user and/or
62
+ // wants focus outlines to always be presented.
71
63
  //
72
- // Credit: https://github.com/suitcss/base
73
- [tabindex="-1"]:focus {
64
+ // See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible
65
+ // and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/
66
+ [tabindex="-1"]:focus:not(:focus-visible) {
74
67
  outline: 0 !important;
75
68
  }
76
69
 
@@ -95,12 +88,11 @@ hr {
95
88
  //
96
89
  // By default, `<h1>`-`<h6>` all receive top and bottom margins. We nuke the top
97
90
  // margin for easier control within type scales as it avoids margin collapsing.
98
- // stylelint-disable selector-list-comma-newline-after
91
+ // stylelint-disable-next-line selector-list-comma-newline-after
99
92
  h1, h2, h3, h4, h5, h6 {
100
93
  margin-top: 0;
101
94
  margin-bottom: $headings-margin-bottom;
102
95
  }
103
- // stylelint-enable selector-list-comma-newline-after
104
96
 
105
97
  // Reset margins on paragraphs
106
98
  //
@@ -113,17 +105,19 @@ p {
113
105
 
114
106
  // Abbreviations
115
107
  //
116
- // 1. Remove the bottom border in Firefox 39-.
108
+ // 1. Duplicate behavior to the data-* attribute for our tooltip plugin
117
109
  // 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
118
110
  // 3. Add explicit cursor to indicate changed behavior.
119
- // 4. Duplicate behavior to the data-* attribute for our tooltip plugin
111
+ // 4. Remove the bottom border in Firefox 39-.
112
+ // 5. Prevent the text-decoration to be skipped.
120
113
 
121
114
  abbr[title],
122
- abbr[data-original-title] { // 4
115
+ abbr[data-original-title] { // 1
123
116
  text-decoration: underline; // 2
124
117
  text-decoration: underline dotted; // 2
125
118
  cursor: help; // 3
126
- border-bottom: 0; // 1
119
+ border-bottom: 0; // 4
120
+ text-decoration-skip-ink: none; // 5
127
121
  }
128
122
 
129
123
  address {
@@ -159,19 +153,13 @@ blockquote {
159
153
  margin: 0 0 1rem;
160
154
  }
161
155
 
162
- dfn {
163
- font-style: italic; // Add the correct font style in Android 4.3-
164
- }
165
-
166
- // stylelint-disable font-weight-notation
167
156
  b,
168
157
  strong {
169
- font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari
158
+ font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari
170
159
  }
171
- // stylelint-enable font-weight-notation
172
160
 
173
161
  small {
174
- font-size: 80%; // Add the correct font size in all browsers
162
+ @include font-size(80%); // Add the correct font size in all browsers
175
163
  }
176
164
 
177
165
  //
@@ -182,7 +170,7 @@ small {
182
170
  sub,
183
171
  sup {
184
172
  position: relative;
185
- font-size: 75%;
173
+ @include font-size(75%);
186
174
  line-height: 0;
187
175
  vertical-align: baseline;
188
176
  }
@@ -199,32 +187,26 @@ a {
199
187
  color: $link-color;
200
188
  text-decoration: $link-decoration;
201
189
  background-color: transparent; // Remove the gray background on active links in IE 10.
202
- -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.
203
190
 
204
- @include hover {
191
+ @include hover() {
205
192
  color: $link-hover-color;
206
193
  text-decoration: $link-hover-decoration;
207
194
  }
208
195
  }
209
196
 
210
- // And undo these styles for placeholder links/named anchors (without href)
211
- // which have not been made explicitly keyboard-focusable (without tabindex).
197
+ // And undo these styles for placeholder links/named anchors (without href).
212
198
  // It would be more straightforward to just use a[href] in previous block, but that
213
199
  // causes specificity issues in many other styles that are too complex to fix.
214
200
  // See https://github.com/twbs/bootstrap/issues/19402
215
201
 
216
- a:not([href]):not([tabindex]) {
202
+ a:not([href]):not([class]) {
217
203
  color: inherit;
218
204
  text-decoration: none;
219
205
 
220
- @include hover-focus {
206
+ @include hover() {
221
207
  color: inherit;
222
208
  text-decoration: none;
223
209
  }
224
-
225
- &:focus {
226
- outline: 0;
227
- }
228
210
  }
229
211
 
230
212
 
@@ -232,15 +214,13 @@ a:not([href]):not([tabindex]) {
232
214
  // Code
233
215
  //
234
216
 
235
- // stylelint-disable font-family-no-duplicate-names
236
217
  pre,
237
218
  code,
238
219
  kbd,
239
220
  samp {
240
- font-family: monospace, monospace; // Correct the inheritance and scaling of font size in all browsers.
241
- font-size: 1em; // Correct the odd `em` font sizing in all browsers.
221
+ font-family: $font-family-monospace;
222
+ @include font-size(1em); // Correct the odd `em` font sizing in all browsers.
242
223
  }
243
- // stylelint-enable font-family-no-duplicate-names
244
224
 
245
225
  pre {
246
226
  // Remove browser default top margin
@@ -249,8 +229,8 @@ pre {
249
229
  margin-bottom: 1rem;
250
230
  // Don't allow content to break outside
251
231
  overflow: auto;
252
- // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so
253
- // we force a non-overlapping, non-auto-hiding scrollbar to counteract.
232
+ // Disable auto-hiding scrollbar in IE & legacy Edge to avoid overlap,
233
+ // making it impossible to interact with the content
254
234
  -ms-overflow-style: scrollbar;
255
235
  }
256
236
 
@@ -274,31 +254,11 @@ img {
274
254
  border-style: none; // Remove the border on images inside links in IE 10-.
275
255
  }
276
256
 
277
- svg:not(:root) {
278
- overflow: hidden; // Hide the overflow in IE
279
- }
280
-
281
-
282
- // Avoid 300ms click delay on touch devices that support the `touch-action` CSS property.
283
- //
284
- // In particular, unlike most other browsers, IE11+Edge on Windows 10 on touch devices and IE Mobile 10-11
285
- // DON'T remove the click delay when `<meta name="viewport" content="width=device-width">` is present.
286
- // However, they DO support removing the click delay via `touch-action: manipulation`.
287
- // See:
288
- // * https://getbootstrap.com/docs/4.0/content/reboot/#click-delay-optimization-for-touch
289
- // * https://caniuse.com/#feat=css-touch-action
290
- // * https://patrickhlauke.github.io/touch/tests/results/#suppressing-300ms-delay
291
-
292
- a,
293
- area,
294
- button,
295
- [role="button"],
296
- input:not([type="range"]),
297
- label,
298
- select,
299
- summary,
300
- textarea {
301
- touch-action: manipulation;
257
+ svg {
258
+ // Workaround for the SVG overflow bug in IE10/11 is still required.
259
+ // See https://github.com/twbs/bootstrap/issues/26878
260
+ overflow: hidden;
261
+ vertical-align: middle;
302
262
  }
303
263
 
304
264
 
@@ -313,15 +273,19 @@ table {
313
273
  caption {
314
274
  padding-top: $table-cell-padding;
315
275
  padding-bottom: $table-cell-padding;
316
- color: $text-muted;
276
+ color: $table-caption-color;
317
277
  text-align: left;
318
278
  caption-side: bottom;
319
279
  }
320
280
 
281
+ // 1. Removes font-weight bold by inheriting
282
+ // 2. Matches default `<td>` alignment by inheriting `text-align`.
283
+ // 3. Fix alignment for Safari
284
+
321
285
  th {
322
- // Matches default `<td>` alignment by inheriting from the `<body>`, or the
323
- // closest parent with a set `text-align`.
324
- text-align: inherit;
286
+ font-weight: $table-th-font-weight; // 1
287
+ text-align: inherit; // 2
288
+ text-align: -webkit-match-parent; // 3
325
289
  }
326
290
 
327
291
 
@@ -332,23 +296,24 @@ th {
332
296
  label {
333
297
  // Allow labels to use `margin` for spacing.
334
298
  display: inline-block;
335
- margin-bottom: .5rem;
299
+ margin-bottom: $label-margin-bottom;
336
300
  }
337
301
 
338
302
  // Remove the default `border-radius` that macOS Chrome adds.
339
303
  //
340
304
  // Details at https://github.com/twbs/bootstrap/issues/24093
341
305
  button {
306
+ // stylelint-disable-next-line property-disallowed-list
342
307
  border-radius: 0;
343
308
  }
344
309
 
345
- // Work around a Firefox/IE bug where the transparent `button` background
346
- // results in a loss of the default `button` focus styles.
347
- //
348
- // Credit: https://github.com/suitcss/base/
349
- button:focus {
350
- outline: 1px dotted;
351
- outline: 5px auto -webkit-focus-ring-color;
310
+ // Explicitly remove focus outline in Chromium when it shouldn't be
311
+ // visible (e.g. as result of mouse click or touch tap). It already
312
+ // should be doing this automatically, but seems to currently be
313
+ // confused and applies its very visible two-tone outline anyway.
314
+
315
+ button:focus:not(:focus-visible) {
316
+ outline: 0;
352
317
  }
353
318
 
354
319
  input,
@@ -358,7 +323,7 @@ optgroup,
358
323
  textarea {
359
324
  margin: 0; // Remove the margin in Firefox and Safari
360
325
  font-family: inherit;
361
- font-size: inherit;
326
+ @include font-size(inherit);
362
327
  line-height: inherit;
363
328
  }
364
329
 
@@ -372,16 +337,43 @@ select {
372
337
  text-transform: none; // Remove the inheritance of text transform in Firefox
373
338
  }
374
339
 
340
+ // Set the cursor for non-`<button>` buttons
341
+ //
342
+ // Details at https://github.com/twbs/bootstrap/pull/30562
343
+ [role="button"] {
344
+ cursor: pointer;
345
+ }
346
+
347
+ // Remove the inheritance of word-wrap in Safari.
348
+ //
349
+ // Details at https://github.com/twbs/bootstrap/issues/24990
350
+ select {
351
+ word-wrap: normal;
352
+ }
353
+
354
+
375
355
  // 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
376
356
  // controls in Android 4.
377
357
  // 2. Correct the inability to style clickable types in iOS and Safari.
378
358
  button,
379
- html [type="button"], // 1
359
+ [type="button"], // 1
380
360
  [type="reset"],
381
361
  [type="submit"] {
382
362
  -webkit-appearance: button; // 2
383
363
  }
384
364
 
365
+ // Opinionated: add "hand" cursor to non-disabled button elements.
366
+ @if $enable-pointer-cursor-for-buttons {
367
+ button,
368
+ [type="button"],
369
+ [type="reset"],
370
+ [type="submit"] {
371
+ &:not(:disabled) {
372
+ cursor: pointer;
373
+ }
374
+ }
375
+ }
376
+
385
377
  // Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
386
378
  button::-moz-focus-inner,
387
379
  [type="button"]::-moz-focus-inner,
@@ -398,18 +390,6 @@ input[type="checkbox"] {
398
390
  }
399
391
 
400
392
 
401
- input[type="date"],
402
- input[type="time"],
403
- input[type="datetime-local"],
404
- input[type="month"] {
405
- // Remove the default appearance of temporal inputs to avoid a Mobile Safari
406
- // bug where setting a custom line-height prevents text from being vertically
407
- // centered within the input.
408
- // See https://bugs.webkit.org/show_bug.cgi?id=139848
409
- // and https://github.com/twbs/bootstrap/issues/11266
410
- -webkit-appearance: listbox;
411
- }
412
-
413
393
  textarea {
414
394
  overflow: auto; // Remove the default vertical scrollbar in IE.
415
395
  // Textareas should really only resize vertically so they don't break their (horizontal) containers.
@@ -437,7 +417,7 @@ legend {
437
417
  max-width: 100%; // 1
438
418
  padding: 0;
439
419
  margin-bottom: .5rem;
440
- font-size: 1.5rem;
420
+ @include font-size(1.5rem);
441
421
  line-height: inherit;
442
422
  color: inherit; // 2
443
423
  white-space: normal; // 1
@@ -463,10 +443,9 @@ progress {
463
443
  }
464
444
 
465
445
  //
466
- // Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
446
+ // Remove the inner padding in Chrome and Safari on macOS.
467
447
  //
468
448
 
469
- [type="search"]::-webkit-search-cancel-button,
470
449
  [type="search"]::-webkit-search-decoration {
471
450
  -webkit-appearance: none;
472
451
  }
@@ -0,0 +1,65 @@
1
+ //
2
+ // Rotating border
3
+ //
4
+
5
+ @keyframes spinner-border {
6
+ to { transform: rotate(360deg); }
7
+ }
8
+
9
+ .spinner-border {
10
+ display: inline-block;
11
+ width: $spinner-width;
12
+ height: $spinner-height;
13
+ vertical-align: $spinner-vertical-align;
14
+ border: $spinner-border-width solid currentcolor;
15
+ border-right-color: transparent;
16
+ // stylelint-disable-next-line property-disallowed-list
17
+ border-radius: 50%;
18
+ animation: .75s linear infinite spinner-border;
19
+ }
20
+
21
+ .spinner-border-sm {
22
+ width: $spinner-width-sm;
23
+ height: $spinner-height-sm;
24
+ border-width: $spinner-border-width-sm;
25
+ }
26
+
27
+ //
28
+ // Growing circle
29
+ //
30
+
31
+ @keyframes spinner-grow {
32
+ 0% {
33
+ transform: scale(0);
34
+ }
35
+ 50% {
36
+ opacity: 1;
37
+ transform: none;
38
+ }
39
+ }
40
+
41
+ .spinner-grow {
42
+ display: inline-block;
43
+ width: $spinner-width;
44
+ height: $spinner-height;
45
+ vertical-align: $spinner-vertical-align;
46
+ background-color: currentcolor;
47
+ // stylelint-disable-next-line property-disallowed-list
48
+ border-radius: 50%;
49
+ opacity: 0;
50
+ animation: .75s linear infinite spinner-grow;
51
+ }
52
+
53
+ .spinner-grow-sm {
54
+ width: $spinner-width-sm;
55
+ height: $spinner-height-sm;
56
+ }
57
+
58
+ @if $enable-prefers-reduced-motion-media-query {
59
+ @media (prefers-reduced-motion: reduce) {
60
+ .spinner-border,
61
+ .spinner-grow {
62
+ animation-duration: 1.5s;
63
+ }
64
+ }
65
+ }
@@ -4,8 +4,8 @@
4
4
 
5
5
  .table {
6
6
  width: 100%;
7
- max-width: 100%;
8
7
  margin-bottom: $spacer;
8
+ color: $table-color;
9
9
  background-color: $table-bg; // Reset for nesting within parents with `background-color`.
10
10
 
11
11
  th,
@@ -23,10 +23,6 @@
23
23
  tbody + tbody {
24
24
  border-top: (2 * $table-border-width) solid $table-border-color;
25
25
  }
26
-
27
- .table {
28
- background-color: $body-bg;
29
- }
30
26
  }
31
27
 
32
28
 
@@ -42,9 +38,9 @@
42
38
  }
43
39
 
44
40
 
45
- // Bordered version
41
+ // Border versions
46
42
  //
47
- // Add borders all around the table and between all the columns.
43
+ // Add or remove borders all around the table and between all the columns.
48
44
 
49
45
  .table-bordered {
50
46
  border: $table-border-width solid $table-border-color;
@@ -57,18 +53,26 @@
57
53
  thead {
58
54
  th,
59
55
  td {
60
- border-bottom-width: (2 * $table-border-width);
56
+ border-bottom-width: 2 * $table-border-width;
61
57
  }
62
58
  }
63
59
  }
64
60
 
61
+ .table-borderless {
62
+ th,
63
+ td,
64
+ thead th,
65
+ tbody + tbody {
66
+ border: 0;
67
+ }
68
+ }
65
69
 
66
70
  // Zebra-striping
67
71
  //
68
72
  // Default zebra-stripe styles (alternating gray and transparent backgrounds)
69
73
 
70
74
  .table-striped {
71
- tbody tr:nth-of-type(odd) {
75
+ tbody tr:nth-of-type(#{$table-striped-order}) {
72
76
  background-color: $table-accent-bg;
73
77
  }
74
78
  }
@@ -80,7 +84,8 @@
80
84
 
81
85
  .table-hover {
82
86
  tbody tr {
83
- @include hover {
87
+ @include hover() {
88
+ color: $table-hover-color;
84
89
  background-color: $table-hover-bg;
85
90
  }
86
91
  }
@@ -93,7 +98,7 @@
93
98
  // inheritance to nested tables.
94
99
 
95
100
  @each $color, $value in $theme-colors {
96
- @include table-row-variant($color, theme-color-level($color, -9));
101
+ @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));
97
102
  }
98
103
 
99
104
  @include table-row-variant(active, $table-active-bg);
@@ -137,14 +142,15 @@
137
142
  }
138
143
 
139
144
  &.table-striped {
140
- tbody tr:nth-of-type(odd) {
145
+ tbody tr:nth-of-type(#{$table-striped-order}) {
141
146
  background-color: $table-dark-accent-bg;
142
147
  }
143
148
  }
144
149
 
145
150
  &.table-hover {
146
151
  tbody tr {
147
- @include hover {
152
+ @include hover() {
153
+ color: $table-dark-hover-color;
148
154
  background-color: $table-dark-hover-bg;
149
155
  }
150
156
  }
@@ -168,7 +174,6 @@
168
174
  width: 100%;
169
175
  overflow-x: auto;
170
176
  -webkit-overflow-scrolling: touch;
171
- -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
172
177
 
173
178
  // Prevent double border on horizontal scroll due to use of `display: block;`
174
179
  > .table-bordered {
@@ -0,0 +1,46 @@
1
+ .toast {
2
+ // Prevents from shrinking in IE11, when in a flex container
3
+ // See https://github.com/twbs/bootstrap/issues/28341
4
+ flex-basis: $toast-max-width;
5
+ max-width: $toast-max-width;
6
+ @include font-size($toast-font-size);
7
+ color: $toast-color;
8
+ background-color: $toast-background-color;
9
+ background-clip: padding-box;
10
+ border: $toast-border-width solid $toast-border-color;
11
+ box-shadow: $toast-box-shadow;
12
+ opacity: 0;
13
+ @include border-radius($toast-border-radius);
14
+
15
+ &:not(:last-child) {
16
+ margin-bottom: $toast-padding-x;
17
+ }
18
+
19
+ &.showing {
20
+ opacity: 1;
21
+ }
22
+
23
+ &.show {
24
+ display: block;
25
+ opacity: 1;
26
+ }
27
+
28
+ &.hide {
29
+ display: none;
30
+ }
31
+ }
32
+
33
+ .toast-header {
34
+ display: flex;
35
+ align-items: center;
36
+ padding: $toast-padding-y $toast-padding-x;
37
+ color: $toast-header-color;
38
+ background-color: $toast-header-background-color;
39
+ background-clip: padding-box;
40
+ border-bottom: $toast-border-width solid $toast-header-border-color;
41
+ @include border-top-radius(subtract($toast-border-radius, $toast-border-width));
42
+ }
43
+
44
+ .toast-body {
45
+ padding: $toast-padding-x; // apply to both vertical and horizontal
46
+ }
@@ -7,7 +7,7 @@
7
7
  // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
8
8
  // So reset our font and text properties to avoid inheriting weird values.
9
9
  @include reset-text();
10
- font-size: $font-size-sm;
10
+ @include font-size($tooltip-font-size);
11
11
  // Allow breaking very long words so they don't overflow the tooltip's bounds
12
12
  word-wrap: break-word;
13
13
  opacity: 0;
@@ -37,7 +37,7 @@
37
37
 
38
38
  &::before {
39
39
  top: 0;
40
- border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
40
+ border-width: $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
41
41
  border-top-color: $tooltip-arrow-color;
42
42
  }
43
43
  }
@@ -53,7 +53,7 @@
53
53
 
54
54
  &::before {
55
55
  right: 0;
56
- border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
56
+ border-width: ($tooltip-arrow-width * .5) $tooltip-arrow-height ($tooltip-arrow-width * .5) 0;
57
57
  border-right-color: $tooltip-arrow-color;
58
58
  }
59
59
  }
@@ -67,7 +67,7 @@
67
67
 
68
68
  &::before {
69
69
  bottom: 0;
70
- border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
70
+ border-width: 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
71
71
  border-bottom-color: $tooltip-arrow-color;
72
72
  }
73
73
  }
@@ -83,7 +83,7 @@
83
83
 
84
84
  &::before {
85
85
  left: 0;
86
- border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
86
+ border-width: ($tooltip-arrow-width * .5) 0 ($tooltip-arrow-width * .5) $tooltip-arrow-height;
87
87
  border-left-color: $tooltip-arrow-color;
88
88
  }
89
89
  }
@@ -111,5 +111,5 @@
111
111
  color: $tooltip-color;
112
112
  text-align: center;
113
113
  background-color: $tooltip-bg;
114
- @include border-radius($border-radius);
114
+ @include border-radius($tooltip-border-radius);
115
115
  }