bootstrap 4.5.2 → 5.0.0.beta1

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 (135) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -1
  3. data/README.md +5 -2
  4. data/assets/javascripts/bootstrap-sprockets.js +11 -8
  5. data/assets/javascripts/bootstrap.js +2170 -1572
  6. data/assets/javascripts/bootstrap.min.js +2 -2
  7. data/assets/javascripts/bootstrap/alert.js +195 -66
  8. data/assets/javascripts/bootstrap/button.js +120 -136
  9. data/assets/javascripts/bootstrap/carousel.js +390 -184
  10. data/assets/javascripts/bootstrap/collapse.js +364 -133
  11. data/assets/javascripts/bootstrap/dom/data.js +81 -0
  12. data/assets/javascripts/bootstrap/dom/event-handler.js +309 -0
  13. data/assets/javascripts/bootstrap/dom/manipulator.js +86 -0
  14. data/assets/javascripts/bootstrap/dom/selector-engine.js +98 -0
  15. data/assets/javascripts/bootstrap/dropdown.js +357 -232
  16. data/assets/javascripts/bootstrap/modal.js +406 -211
  17. data/assets/javascripts/bootstrap/popover.js +82 -50
  18. data/assets/javascripts/bootstrap/scrollspy.js +226 -80
  19. data/assets/javascripts/bootstrap/tab.js +215 -77
  20. data/assets/javascripts/bootstrap/toast.js +239 -79
  21. data/assets/javascripts/bootstrap/tooltip.js +529 -258
  22. data/assets/stylesheets/_bootstrap-grid.scss +51 -15
  23. data/assets/stylesheets/_bootstrap-reboot.scss +4 -1
  24. data/assets/stylesheets/_bootstrap.scss +15 -8
  25. data/assets/stylesheets/bootstrap/_accordion.scss +125 -0
  26. data/assets/stylesheets/bootstrap/_alert.scss +15 -9
  27. data/assets/stylesheets/bootstrap/_badge.scss +2 -27
  28. data/assets/stylesheets/bootstrap/_breadcrumb.scss +4 -20
  29. data/assets/stylesheets/bootstrap/_button-group.scss +21 -45
  30. data/assets/stylesheets/bootstrap/_buttons.scss +27 -60
  31. data/assets/stylesheets/bootstrap/_card.scss +25 -96
  32. data/assets/stylesheets/bootstrap/_carousel.scss +54 -28
  33. data/assets/stylesheets/bootstrap/_close.scss +30 -30
  34. data/assets/stylesheets/bootstrap/_containers.scss +41 -0
  35. data/assets/stylesheets/bootstrap/_dropdown.scss +74 -31
  36. data/assets/stylesheets/bootstrap/_forms.scss +9 -347
  37. data/assets/stylesheets/bootstrap/_functions.scss +87 -23
  38. data/assets/stylesheets/bootstrap/_grid.scss +3 -54
  39. data/assets/stylesheets/bootstrap/_helpers.scss +7 -0
  40. data/assets/stylesheets/bootstrap/_list-group.scss +18 -9
  41. data/assets/stylesheets/bootstrap/_mixins.scss +7 -13
  42. data/assets/stylesheets/bootstrap/_modal.scss +41 -46
  43. data/assets/stylesheets/bootstrap/_nav.scss +12 -8
  44. data/assets/stylesheets/bootstrap/_navbar.scss +43 -74
  45. data/assets/stylesheets/bootstrap/_pagination.scss +10 -20
  46. data/assets/stylesheets/bootstrap/_popover.scss +23 -20
  47. data/assets/stylesheets/bootstrap/_progress.scss +3 -5
  48. data/assets/stylesheets/bootstrap/_reboot.scss +328 -173
  49. data/assets/stylesheets/bootstrap/_root.scss +5 -9
  50. data/assets/stylesheets/bootstrap/_spinners.scss +14 -5
  51. data/assets/stylesheets/bootstrap/_tables.scss +79 -114
  52. data/assets/stylesheets/bootstrap/_toasts.scss +19 -15
  53. data/assets/stylesheets/bootstrap/_tooltip.scss +17 -17
  54. data/assets/stylesheets/bootstrap/_transitions.scss +0 -1
  55. data/assets/stylesheets/bootstrap/_type.scss +38 -59
  56. data/assets/stylesheets/bootstrap/_utilities.scss +560 -18
  57. data/assets/stylesheets/bootstrap/_variables.scss +652 -459
  58. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +18 -0
  59. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-check.scss +151 -0
  61. data/assets/stylesheets/bootstrap/forms/_form-control.scss +223 -0
  62. data/assets/stylesheets/bootstrap/forms/_form-range.scss +91 -0
  63. data/assets/stylesheets/bootstrap/forms/_form-select.scss +68 -0
  64. data/assets/stylesheets/bootstrap/forms/_form-text.scss +11 -0
  65. data/assets/stylesheets/bootstrap/forms/_input-group.scss +121 -0
  66. data/assets/stylesheets/bootstrap/forms/_labels.scss +36 -0
  67. data/assets/stylesheets/bootstrap/forms/_validation.scss +12 -0
  68. data/assets/stylesheets/bootstrap/{utilities → helpers}/_clearfix.scss +0 -0
  69. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +12 -0
  70. data/assets/stylesheets/bootstrap/helpers/_position.scss +30 -0
  71. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +26 -0
  72. data/assets/stylesheets/bootstrap/helpers/_stretched-link.scss +15 -0
  73. data/assets/stylesheets/bootstrap/helpers/_text-truncation.scss +7 -0
  74. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +8 -0
  75. data/assets/stylesheets/bootstrap/mixins/_alert.scss +1 -5
  76. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +9 -9
  77. data/assets/stylesheets/bootstrap/mixins/_box-shadow.scss +7 -9
  78. data/assets/stylesheets/bootstrap/mixins/_breakpoints.scss +14 -10
  79. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +65 -47
  80. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -8
  81. data/assets/stylesheets/bootstrap/mixins/_clearfix.scss +2 -0
  82. data/assets/stylesheets/bootstrap/mixins/_container.scss +9 -0
  83. data/assets/stylesheets/bootstrap/mixins/_forms.scss +17 -78
  84. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +9 -11
  85. data/assets/stylesheets/bootstrap/mixins/_grid.scss +84 -33
  86. data/assets/stylesheets/bootstrap/mixins/_image.scss +1 -21
  87. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -2
  88. data/assets/stylesheets/bootstrap/mixins/_lists.scss +1 -1
  89. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +15 -8
  90. data/assets/stylesheets/bootstrap/mixins/_reset-text.scss +2 -2
  91. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +21 -0
  92. data/assets/stylesheets/bootstrap/mixins/_transition.scss +2 -2
  93. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +68 -0
  94. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +28 -0
  95. data/assets/stylesheets/bootstrap/utilities/_api.scss +47 -0
  96. data/assets/stylesheets/bootstrap/vendor/_rfs.scss +234 -126
  97. data/lib/bootstrap/version.rb +2 -2
  98. data/tasks/updater/js.rb +6 -4
  99. metadata +33 -41
  100. data/assets/javascripts/bootstrap/util.js +0 -192
  101. data/assets/stylesheets/bootstrap/_code.scss +0 -48
  102. data/assets/stylesheets/bootstrap/_custom-forms.scss +0 -523
  103. data/assets/stylesheets/bootstrap/_input-group.scss +0 -192
  104. data/assets/stylesheets/bootstrap/_jumbotron.scss +0 -17
  105. data/assets/stylesheets/bootstrap/_media.scss +0 -8
  106. data/assets/stylesheets/bootstrap/_print.scss +0 -141
  107. data/assets/stylesheets/bootstrap/mixins/_background-variant.scss +0 -23
  108. data/assets/stylesheets/bootstrap/mixins/_badge.scss +0 -17
  109. data/assets/stylesheets/bootstrap/mixins/_float.scss +0 -14
  110. data/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +0 -80
  111. data/assets/stylesheets/bootstrap/mixins/_hover.scss +0 -37
  112. data/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +0 -11
  113. data/assets/stylesheets/bootstrap/mixins/_screen-reader.scss +0 -34
  114. data/assets/stylesheets/bootstrap/mixins/_size.scss +0 -7
  115. data/assets/stylesheets/bootstrap/mixins/_table-row.scss +0 -39
  116. data/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +0 -17
  117. data/assets/stylesheets/bootstrap/mixins/_text-hide.scss +0 -11
  118. data/assets/stylesheets/bootstrap/mixins/_visibility.scss +0 -8
  119. data/assets/stylesheets/bootstrap/utilities/_align.scss +0 -8
  120. data/assets/stylesheets/bootstrap/utilities/_background.scss +0 -19
  121. data/assets/stylesheets/bootstrap/utilities/_borders.scss +0 -75
  122. data/assets/stylesheets/bootstrap/utilities/_display.scss +0 -26
  123. data/assets/stylesheets/bootstrap/utilities/_embed.scss +0 -39
  124. data/assets/stylesheets/bootstrap/utilities/_flex.scss +0 -51
  125. data/assets/stylesheets/bootstrap/utilities/_float.scss +0 -11
  126. data/assets/stylesheets/bootstrap/utilities/_interactions.scss +0 -5
  127. data/assets/stylesheets/bootstrap/utilities/_overflow.scss +0 -5
  128. data/assets/stylesheets/bootstrap/utilities/_position.scss +0 -32
  129. data/assets/stylesheets/bootstrap/utilities/_screenreaders.scss +0 -11
  130. data/assets/stylesheets/bootstrap/utilities/_shadows.scss +0 -6
  131. data/assets/stylesheets/bootstrap/utilities/_sizing.scss +0 -20
  132. data/assets/stylesheets/bootstrap/utilities/_spacing.scss +0 -73
  133. data/assets/stylesheets/bootstrap/utilities/_stretched-link.scss +0 -19
  134. data/assets/stylesheets/bootstrap/utilities/_text.scss +0 -72
  135. data/assets/stylesheets/bootstrap/utilities/_visibility.scss +0 -13
@@ -1,29 +1,65 @@
1
1
  /*!
2
- * Bootstrap Grid v4.5.2 (https://getbootstrap.com/)
2
+ * Bootstrap Grid v5.0.0-beta1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors
4
4
  * Copyright 2011-2020 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
- html {
9
- box-sizing: border-box;
10
- -ms-overflow-style: scrollbar;
11
- }
12
-
13
- *,
14
- *::before,
15
- *::after {
16
- box-sizing: inherit;
17
- }
8
+ $include-column-box-sizing: true !default;
18
9
 
19
10
  @import "bootstrap/functions";
20
11
  @import "bootstrap/variables";
21
12
 
13
+ @import "bootstrap/mixins/lists";
22
14
  @import "bootstrap/mixins/breakpoints";
23
- @import "bootstrap/mixins/grid-framework";
15
+ @import "bootstrap/mixins/container";
24
16
  @import "bootstrap/mixins/grid";
17
+ @import "bootstrap/mixins/utilities";
18
+
19
+ @import "bootstrap/vendor/rfs";
25
20
 
21
+ @import "bootstrap/containers";
26
22
  @import "bootstrap/grid";
27
- @import "bootstrap/utilities/display";
28
- @import "bootstrap/utilities/flex";
29
- @import "bootstrap/utilities/spacing";
23
+
24
+ @import "bootstrap/utilities";
25
+ // Only use the utilities we need
26
+ // stylelint-disable-next-line scss/dollar-variable-default
27
+ $utilities: map-get-multiple(
28
+ $utilities,
29
+ (
30
+ "bootstrap/display",
31
+ "bootstrap/order",
32
+ "bootstrap/flex",
33
+ "bootstrap/flex-direction",
34
+ "bootstrap/flex-grow",
35
+ "bootstrap/flex-shrink",
36
+ "bootstrap/flex-wrap",
37
+ "bootstrap/justify-content",
38
+ "bootstrap/align-items",
39
+ "bootstrap/align-content",
40
+ "bootstrap/align-self",
41
+ "bootstrap/margin",
42
+ "bootstrap/margin-x",
43
+ "bootstrap/margin-y",
44
+ "bootstrap/margin-top",
45
+ "bootstrap/margin-end",
46
+ "bootstrap/margin-bottom",
47
+ "bootstrap/margin-start",
48
+ "bootstrap/negative-margin",
49
+ "bootstrap/negative-margin-x",
50
+ "bootstrap/negative-margin-y",
51
+ "bootstrap/negative-margin-top",
52
+ "bootstrap/negative-margin-end",
53
+ "bootstrap/negative-margin-bottom",
54
+ "bootstrap/negative-margin-start",
55
+ "bootstrap/padding",
56
+ "bootstrap/padding-x",
57
+ "bootstrap/padding-y",
58
+ "bootstrap/padding-top",
59
+ "bootstrap/padding-end",
60
+ "bootstrap/padding-bottom",
61
+ "bootstrap/padding-start",
62
+ )
63
+ );
64
+
65
+ @import "bootstrap/utilities/api";
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Bootstrap Reboot v4.5.2 (https://getbootstrap.com/)
2
+ * Bootstrap Reboot v5.0.0-beta1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors
4
4
  * Copyright 2011-2020 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -8,5 +8,8 @@
8
8
 
9
9
  @import "bootstrap/functions";
10
10
  @import "bootstrap/variables";
11
+ // Prevent the usage of custom properties since we don't add them to `:root` in reboot
12
+ $font-family-base: $font-family-sans-serif; // stylelint-disable-line scss/dollar-variable-default
13
+ $font-family-code: $font-family-monospace; // stylelint-disable-line scss/dollar-variable-default
11
14
  @import "bootstrap/mixins";
12
15
  @import "bootstrap/reboot";
@@ -1,18 +1,23 @@
1
1
  /*!
2
- * Bootstrap v4.5.2 (https://getbootstrap.com/)
2
+ * Bootstrap v5.0.0-beta1 (https://getbootstrap.com/)
3
3
  * Copyright 2011-2020 The Bootstrap Authors
4
4
  * Copyright 2011-2020 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
8
+ // scss-docs-start import-stack
9
+ // Configuration
8
10
  @import "bootstrap/functions";
9
11
  @import "bootstrap/variables";
10
12
  @import "bootstrap/mixins";
13
+ @import "bootstrap/utilities";
14
+
15
+ // Layout & components
11
16
  @import "bootstrap/root";
12
17
  @import "bootstrap/reboot";
13
18
  @import "bootstrap/type";
14
19
  @import "bootstrap/images";
15
- @import "bootstrap/code";
20
+ @import "bootstrap/containers";
16
21
  @import "bootstrap/grid";
17
22
  @import "bootstrap/tables";
18
23
  @import "bootstrap/forms";
@@ -20,18 +25,15 @@
20
25
  @import "bootstrap/transitions";
21
26
  @import "bootstrap/dropdown";
22
27
  @import "bootstrap/button-group";
23
- @import "bootstrap/input-group";
24
- @import "bootstrap/custom-forms";
25
28
  @import "bootstrap/nav";
26
29
  @import "bootstrap/navbar";
27
30
  @import "bootstrap/card";
31
+ @import "bootstrap/accordion";
28
32
  @import "bootstrap/breadcrumb";
29
33
  @import "bootstrap/pagination";
30
34
  @import "bootstrap/badge";
31
- @import "bootstrap/jumbotron";
32
35
  @import "bootstrap/alert";
33
36
  @import "bootstrap/progress";
34
- @import "bootstrap/media";
35
37
  @import "bootstrap/list-group";
36
38
  @import "bootstrap/close";
37
39
  @import "bootstrap/toasts";
@@ -40,5 +42,10 @@
40
42
  @import "bootstrap/popover";
41
43
  @import "bootstrap/carousel";
42
44
  @import "bootstrap/spinners";
43
- @import "bootstrap/utilities";
44
- @import "bootstrap/print";
45
+
46
+ // Helpers
47
+ @import "bootstrap/helpers";
48
+
49
+ // Utilities
50
+ @import "bootstrap/utilities/api";
51
+ // scss-docs-end import-stack
@@ -0,0 +1,125 @@
1
+ //
2
+ // Base styles
3
+ //
4
+
5
+ .accordion-button {
6
+ position: relative;
7
+ display: flex;
8
+ align-items: center;
9
+ width: 100%;
10
+ padding: $accordion-button-padding-y $accordion-button-padding-x;
11
+ @include font-size($font-size-base);
12
+ color: $accordion-button-color;
13
+ background-color: $accordion-button-bg;
14
+ border: $accordion-border-width solid $accordion-border-color;
15
+ @include border-radius(0);
16
+ overflow-anchor: none;
17
+ @include transition($accordion-transition);
18
+
19
+ &.collapsed {
20
+ border-bottom-width: 0;
21
+ }
22
+
23
+ &:not(.collapsed) {
24
+ color: $accordion-button-active-color;
25
+ background-color: $accordion-button-active-bg;
26
+
27
+ &::after {
28
+ background-image: escape-svg($accordion-button-active-icon);
29
+ transform: $accordion-icon-transform;
30
+ }
31
+ }
32
+
33
+ // Accordion icon
34
+ &::after {
35
+ flex-shrink: 0;
36
+ width: $accordion-icon-width;
37
+ height: $accordion-icon-width;
38
+ margin-left: auto;
39
+ content: "";
40
+ background-image: escape-svg($accordion-button-icon);
41
+ background-repeat: no-repeat;
42
+ background-size: $accordion-icon-width;
43
+ @include transition($accordion-icon-transition);
44
+ }
45
+
46
+ &:hover {
47
+ z-index: 2;
48
+ }
49
+
50
+ &:focus {
51
+ z-index: 3;
52
+ border-color: $accordion-button-focus-border-color;
53
+ outline: 0;
54
+ box-shadow: $accordion-button-focus-box-shadow;
55
+ }
56
+ }
57
+
58
+ .accordion-header {
59
+ margin-bottom: 0;
60
+ }
61
+
62
+ .accordion-item {
63
+ &:first-of-type {
64
+ .accordion-button {
65
+ @include border-top-radius($accordion-border-radius);
66
+ }
67
+ }
68
+
69
+ &:last-of-type {
70
+ .accordion-button {
71
+ // Only set a border-radius on the last item if the accordion is collapsed
72
+ &.collapsed {
73
+ border-bottom-width: $accordion-border-width;
74
+ @include border-bottom-radius($accordion-border-radius);
75
+ }
76
+ }
77
+
78
+ .accordion-collapse {
79
+ border-bottom-width: $accordion-border-width;
80
+ @include border-bottom-radius($accordion-border-radius);
81
+ }
82
+ }
83
+ }
84
+
85
+ .accordion-collapse {
86
+ border: solid $accordion-border-color;
87
+ border-width: 0 $accordion-border-width;
88
+ }
89
+
90
+ .accordion-body {
91
+ padding: $accordion-body-padding-y $accordion-body-padding-x;
92
+ }
93
+
94
+
95
+ // Flush accordion items
96
+ //
97
+ // Remove borders and border-radius to keep accordion items edge-to-edge.
98
+
99
+ .accordion-flush {
100
+ .accordion-button {
101
+ border-right: 0;
102
+ border-left: 0;
103
+ @include border-radius(0);
104
+ }
105
+
106
+ .accordion-collapse {
107
+ border-width: 0;
108
+ }
109
+
110
+ .accordion-item {
111
+ &:first-of-type {
112
+ .accordion-button {
113
+ border-top-width: 0;
114
+ @include border-top-radius(0);
115
+ }
116
+ }
117
+
118
+ &:last-of-type {
119
+ .accordion-button.collapsed {
120
+ border-bottom-width: 0;
121
+ @include border-bottom-radius(0);
122
+ }
123
+ }
124
+ }
125
+ }
@@ -27,25 +27,31 @@
27
27
  // Expand the right padding and account for the close button's positioning.
28
28
 
29
29
  .alert-dismissible {
30
- padding-right: $close-font-size + $alert-padding-x * 2;
30
+ padding-right: $alert-dismissible-padding-r;
31
31
 
32
32
  // Adjust close link position
33
- .close {
33
+ .btn-close {
34
34
  position: absolute;
35
35
  top: 0;
36
36
  right: 0;
37
- padding: $alert-padding-y $alert-padding-x;
38
- color: inherit;
37
+ z-index: $stretched-link-z-index + 1;
38
+ padding: $alert-padding-y * 1.25 $alert-padding-x;
39
39
  }
40
40
  }
41
41
 
42
42
 
43
- // Alternate styles
44
- //
43
+ // scss-docs-start alert-modifiers
45
44
  // Generate contextual modifier classes for colorizing the alert.
46
45
 
47
- @each $color, $value in $theme-colors {
48
- .alert-#{$color} {
49
- @include alert-variant(theme-color-level($color, $alert-bg-level), theme-color-level($color, $alert-border-level), theme-color-level($color, $alert-color-level));
46
+ @each $state, $value in $theme-colors {
47
+ $background: shift-color($value, $alert-bg-scale);
48
+ $border: shift-color($value, $alert-border-scale);
49
+ $color: shift-color($value, $alert-color-scale);
50
+ @if (contrast-ratio($background, $color) < $min-contrast-ratio) {
51
+ $color: mix($value, color-contrast($background), abs($alert-color-scale));
52
+ }
53
+ .alert-#{$state} {
54
+ @include alert-variant($background, $border, $color);
50
55
  }
51
56
  }
57
+ // scss-docs-end alert-modifiers
@@ -9,17 +9,12 @@
9
9
  @include font-size($badge-font-size);
10
10
  font-weight: $badge-font-weight;
11
11
  line-height: 1;
12
+ color: $badge-color;
12
13
  text-align: center;
13
14
  white-space: nowrap;
14
15
  vertical-align: baseline;
15
16
  @include border-radius($badge-border-radius);
16
- @include transition($badge-transition);
17
-
18
- @at-root a#{&} {
19
- @include hover-focus() {
20
- text-decoration: none;
21
- }
22
- }
17
+ @include gradient-bg();
23
18
 
24
19
  // Empty badges collapse automatically
25
20
  &:empty {
@@ -32,23 +27,3 @@
32
27
  position: relative;
33
28
  top: -1px;
34
29
  }
35
-
36
- // Pill badges
37
- //
38
- // Make them extra rounded with a modifier to replace v3's badges.
39
-
40
- .badge-pill {
41
- padding-right: $badge-pill-padding-x;
42
- padding-left: $badge-pill-padding-x;
43
- @include border-radius($badge-pill-border-radius);
44
- }
45
-
46
- // Colors
47
- //
48
- // Contextual variations (linked badges get darker on :hover).
49
-
50
- @each $color, $value in $theme-colors {
51
- .badge-#{$color} {
52
- @include badge-variant($value);
53
- }
54
- }
@@ -10,34 +10,18 @@
10
10
  }
11
11
 
12
12
  .breadcrumb-item {
13
- display: flex;
14
-
15
13
  // The separator between breadcrumbs (by default, a forward-slash: "/")
16
14
  + .breadcrumb-item {
17
- padding-left: $breadcrumb-item-padding;
15
+ padding-left: $breadcrumb-item-padding-x;
18
16
 
19
17
  &::before {
20
- display: inline-block; // Suppress underlining of the separator in modern browsers
21
- padding-right: $breadcrumb-item-padding;
18
+ float: left; // Suppress inline spacings and underlining of the separator
19
+ padding-right: $breadcrumb-item-padding-x;
22
20
  color: $breadcrumb-divider-color;
23
- content: escape-svg($breadcrumb-divider);
21
+ content: var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider)) #{"/* rtl:"} var(--#{$variable-prefix}breadcrumb-divider, escape-svg($breadcrumb-divider-flipped)) #{"*/"};
24
22
  }
25
23
  }
26
24
 
27
- // IE9-11 hack to properly handle hyperlink underlines for breadcrumbs built
28
- // without `<ul>`s. The `::before` pseudo-element generates an element
29
- // *within* the .breadcrumb-item and thereby inherits the `text-decoration`.
30
- //
31
- // To trick IE into suppressing the underline, we give the pseudo-element an
32
- // underline and then immediately remove it.
33
- + .breadcrumb-item:hover::before {
34
- text-decoration: underline;
35
- }
36
- // stylelint-disable-next-line no-duplicate-selectors
37
- + .breadcrumb-item:hover::before {
38
- text-decoration: none;
39
- }
40
-
41
25
  &.active {
42
26
  color: $breadcrumb-active-color;
43
27
  }
@@ -1,5 +1,3 @@
1
- // stylelint-disable selector-no-qualifying-type
2
-
3
1
  // Make the div behave like a button
4
2
  .btn-group,
5
3
  .btn-group-vertical {
@@ -10,17 +8,17 @@
10
8
  > .btn {
11
9
  position: relative;
12
10
  flex: 1 1 auto;
11
+ }
13
12
 
14
- // Bring the hover, focused, and "active" buttons to the front to overlay
15
- // the borders properly
16
- @include hover() {
17
- z-index: 1;
18
- }
19
- &:focus,
20
- &:active,
21
- &.active {
22
- z-index: 1;
23
- }
13
+ // Bring the hover, focused, and "active" buttons to the front to overlay
14
+ // the borders properly
15
+ > .btn-check:checked + .btn,
16
+ > .btn-check:focus + .btn,
17
+ > .btn:hover,
18
+ > .btn:focus,
19
+ > .btn:active,
20
+ > .btn.active {
21
+ z-index: 1;
24
22
  }
25
23
  }
26
24
 
@@ -45,12 +43,17 @@
45
43
  // Reset rounded corners
46
44
  > .btn:not(:last-child):not(.dropdown-toggle),
47
45
  > .btn-group:not(:last-child) > .btn {
48
- @include border-right-radius(0);
46
+ @include border-end-radius(0);
49
47
  }
50
48
 
51
- > .btn:not(:first-child),
49
+ // The left radius should be 0 if the button is:
50
+ // - the "third or more" child
51
+ // - the second child and the previous element isn't `.btn-check` (making it the first child visually)
52
+ // - part of a btn-group which isn't the first child
53
+ > .btn:nth-child(n + 3),
54
+ > :not(.btn-check) + .btn,
52
55
  > .btn-group:not(:first-child) > .btn {
53
- @include border-left-radius(0);
56
+ @include border-start-radius(0);
54
57
  }
55
58
  }
56
59
 
@@ -72,11 +75,11 @@
72
75
 
73
76
  &::after,
74
77
  .dropup &::after,
75
- .dropright &::after {
78
+ .dropend &::after {
76
79
  margin-left: 0;
77
80
  }
78
81
 
79
- .dropleft &::before {
82
+ .dropstart &::before {
80
83
  margin-right: 0;
81
84
  }
82
85
  }
@@ -129,35 +132,8 @@
129
132
  @include border-bottom-radius(0);
130
133
  }
131
134
 
132
- > .btn:not(:first-child),
135
+ > .btn ~ .btn,
133
136
  > .btn-group:not(:first-child) > .btn {
134
137
  @include border-top-radius(0);
135
138
  }
136
139
  }
137
-
138
-
139
- // Checkbox and radio options
140
- //
141
- // In order to support the browser's form validation feedback, powered by the
142
- // `required` attribute, we have to "hide" the inputs via `clip`. We cannot use
143
- // `display: none;` or `visibility: hidden;` as that also hides the popover.
144
- // Simply visually hiding the inputs via `opacity` would leave them clickable in
145
- // certain cases which is prevented by using `clip` and `pointer-events`.
146
- // This way, we ensure a DOM element is visible to position the popover from.
147
- //
148
- // See https://github.com/twbs/bootstrap/pull/12794 and
149
- // https://github.com/twbs/bootstrap/pull/14559 for more information.
150
-
151
- .btn-group-toggle {
152
- > .btn,
153
- > .btn-group > .btn {
154
- margin-bottom: 0; // Override default `<label>` value
155
-
156
- input[type="radio"],
157
- input[type="checkbox"] {
158
- position: absolute;
159
- clip: rect(0, 0, 0, 0);
160
- pointer-events: none;
161
- }
162
- }
163
- }