bootstrap 5.0.0.alpha2 → 5.0.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 (96) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -0
  3. data/README.md +7 -4
  4. data/assets/javascripts/bootstrap-global-this-define.js +6 -0
  5. data/assets/javascripts/bootstrap-global-this-undefine.js +2 -0
  6. data/assets/javascripts/bootstrap-sprockets.js +10 -7
  7. data/assets/javascripts/bootstrap.js +2554 -2564
  8. data/assets/javascripts/bootstrap.min.js +3 -3
  9. data/assets/javascripts/bootstrap/alert.js +119 -115
  10. data/assets/javascripts/bootstrap/base-component.js +63 -0
  11. data/assets/javascripts/bootstrap/button.js +67 -69
  12. data/assets/javascripts/bootstrap/carousel.js +340 -331
  13. data/assets/javascripts/bootstrap/collapse.js +214 -209
  14. data/assets/javascripts/bootstrap/dom/data.js +35 -48
  15. data/assets/javascripts/bootstrap/dom/event-handler.js +105 -98
  16. data/assets/javascripts/bootstrap/dom/manipulator.js +26 -34
  17. data/assets/javascripts/bootstrap/dom/selector-engine.js +28 -41
  18. data/assets/javascripts/bootstrap/dropdown.js +392 -325
  19. data/assets/javascripts/bootstrap/modal.js +492 -434
  20. data/assets/javascripts/bootstrap/offcanvas.js +671 -0
  21. data/assets/javascripts/bootstrap/popover.js +114 -132
  22. data/assets/javascripts/bootstrap/scrollspy.js +172 -180
  23. data/assets/javascripts/bootstrap/tab.js +168 -144
  24. data/assets/javascripts/bootstrap/toast.js +141 -150
  25. data/assets/javascripts/bootstrap/tooltip.js +466 -452
  26. data/assets/stylesheets/_bootstrap-grid.scss +9 -9
  27. data/assets/stylesheets/_bootstrap-reboot.scss +3 -3
  28. data/assets/stylesheets/_bootstrap.scss +5 -3
  29. data/assets/stylesheets/bootstrap/_accordion.scss +118 -0
  30. data/assets/stylesheets/bootstrap/_alert.scss +10 -3
  31. data/assets/stylesheets/bootstrap/_breadcrumb.scss +2 -4
  32. data/assets/stylesheets/bootstrap/_button-group.scss +5 -7
  33. data/assets/stylesheets/bootstrap/_buttons.scss +2 -15
  34. data/assets/stylesheets/bootstrap/_card.scss +2 -29
  35. data/assets/stylesheets/bootstrap/_carousel.scss +35 -18
  36. data/assets/stylesheets/bootstrap/_close.scss +2 -3
  37. data/assets/stylesheets/bootstrap/_dropdown.scss +33 -29
  38. data/assets/stylesheets/bootstrap/_forms.scss +1 -1
  39. data/assets/stylesheets/bootstrap/_functions.scss +11 -12
  40. data/assets/stylesheets/bootstrap/_list-group.scss +23 -6
  41. data/assets/stylesheets/bootstrap/_mixins.scss +1 -0
  42. data/assets/stylesheets/bootstrap/_modal.scss +2 -9
  43. data/assets/stylesheets/bootstrap/_nav.scss +12 -0
  44. data/assets/stylesheets/bootstrap/_navbar.scss +15 -2
  45. data/assets/stylesheets/bootstrap/_offcanvas.scss +77 -0
  46. data/assets/stylesheets/bootstrap/_pagination.scss +3 -3
  47. data/assets/stylesheets/bootstrap/_popover.scss +10 -22
  48. data/assets/stylesheets/bootstrap/_progress.scss +4 -1
  49. data/assets/stylesheets/bootstrap/_reboot.scss +48 -44
  50. data/assets/stylesheets/bootstrap/_root.scss +5 -5
  51. data/assets/stylesheets/bootstrap/_spinners.scss +18 -5
  52. data/assets/stylesheets/bootstrap/_tables.scss +15 -16
  53. data/assets/stylesheets/bootstrap/_toasts.scss +15 -12
  54. data/assets/stylesheets/bootstrap/_tooltip.scss +12 -12
  55. data/assets/stylesheets/bootstrap/_transitions.scss +2 -0
  56. data/assets/stylesheets/bootstrap/_utilities.scss +133 -70
  57. data/assets/stylesheets/bootstrap/_variables.scss +363 -207
  58. data/assets/stylesheets/bootstrap/bootstrap-utilities.scss +5 -5
  59. data/assets/stylesheets/bootstrap/forms/_floating-labels.scss +61 -0
  60. data/assets/stylesheets/bootstrap/forms/_form-check.scss +21 -11
  61. data/assets/stylesheets/bootstrap/forms/_form-control.scss +112 -9
  62. data/assets/stylesheets/bootstrap/forms/_form-range.scss +1 -46
  63. data/assets/stylesheets/bootstrap/forms/_form-select.scss +1 -16
  64. data/assets/stylesheets/bootstrap/forms/_input-group.scss +21 -40
  65. data/assets/stylesheets/bootstrap/forms/_validation.scss +1 -1
  66. data/assets/stylesheets/bootstrap/helpers/_colored-links.scss +2 -2
  67. data/assets/stylesheets/bootstrap/helpers/_ratio.scss +2 -2
  68. data/assets/stylesheets/bootstrap/helpers/_visually-hidden.scss +1 -1
  69. data/assets/stylesheets/bootstrap/mixins/_alert.scss +3 -1
  70. data/assets/stylesheets/bootstrap/mixins/_border-radius.scss +8 -6
  71. data/assets/stylesheets/bootstrap/mixins/_buttons.scss +10 -5
  72. data/assets/stylesheets/bootstrap/mixins/_caret.scss +8 -6
  73. data/assets/stylesheets/bootstrap/mixins/_color-scheme.scss +7 -0
  74. data/assets/stylesheets/bootstrap/mixins/_container.scss +2 -4
  75. data/assets/stylesheets/bootstrap/mixins/_forms.scss +26 -22
  76. data/assets/stylesheets/bootstrap/mixins/_gradients.scss +5 -1
  77. data/assets/stylesheets/bootstrap/mixins/_grid.scss +18 -13
  78. data/assets/stylesheets/bootstrap/mixins/_list-group.scss +3 -1
  79. data/assets/stylesheets/bootstrap/mixins/_pagination.scss +5 -3
  80. data/assets/stylesheets/bootstrap/mixins/_table-variants.scss +7 -7
  81. data/assets/stylesheets/bootstrap/mixins/_utilities.scss +19 -0
  82. data/assets/stylesheets/bootstrap/mixins/_visually-hidden.scss +3 -2
  83. data/assets/stylesheets/bootstrap/utilities/_api.scss +1 -1
  84. data/bootstrap.gemspec +1 -3
  85. data/lib/bootstrap/version.rb +2 -2
  86. data/tasks/updater/js.rb +20 -5
  87. data/tasks/updater/network.rb +7 -1
  88. data/test/dummy_rails/app/assets/javascripts/application.js +4 -3
  89. data/test/dummy_rails/app/views/layouts/application.html.erb +3 -1
  90. data/test/dummy_rails/app/views/pages/root.html +89 -0
  91. data/test/dummy_rails/config/application.rb +0 -3
  92. data/test/gemfiles/rails_6_1.gemfile +7 -0
  93. metadata +20 -40
  94. data/assets/javascripts/bootstrap/dom/polyfill.js +0 -110
  95. data/assets/stylesheets/bootstrap/forms/_form-file.scss +0 -91
  96. data/test/dummy_rails/app/views/pages/root.html.slim +0 -58
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap Grid v5.0.0-alpha2 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors
4
- * Copyright 2011-2020 Twitter, Inc.
2
+ * Bootstrap Grid v5.0.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
@@ -42,23 +42,23 @@ $utilities: map-get-multiple(
42
42
  "bootstrap/margin-x",
43
43
  "bootstrap/margin-y",
44
44
  "bootstrap/margin-top",
45
- "bootstrap/margin-right",
45
+ "bootstrap/margin-end",
46
46
  "bootstrap/margin-bottom",
47
- "bootstrap/margin-left",
47
+ "bootstrap/margin-start",
48
48
  "bootstrap/negative-margin",
49
49
  "bootstrap/negative-margin-x",
50
50
  "bootstrap/negative-margin-y",
51
51
  "bootstrap/negative-margin-top",
52
- "bootstrap/negative-margin-right",
52
+ "bootstrap/negative-margin-end",
53
53
  "bootstrap/negative-margin-bottom",
54
- "bootstrap/negative-margin-left",
54
+ "bootstrap/negative-margin-start",
55
55
  "bootstrap/padding",
56
56
  "bootstrap/padding-x",
57
57
  "bootstrap/padding-y",
58
58
  "bootstrap/padding-top",
59
- "bootstrap/padding-right",
59
+ "bootstrap/padding-end",
60
60
  "bootstrap/padding-bottom",
61
- "bootstrap/padding-left",
61
+ "bootstrap/padding-start",
62
62
  )
63
63
  );
64
64
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap Reboot v5.0.0-alpha2 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors
4
- * Copyright 2011-2020 Twitter, Inc.
2
+ * Bootstrap Reboot v5.0.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
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
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
- * Bootstrap v5.0.0-alpha2 (https://getbootstrap.com/)
3
- * Copyright 2011-2020 The Bootstrap Authors
4
- * Copyright 2011-2020 Twitter, Inc.
2
+ * Bootstrap v5.0.0 (https://getbootstrap.com/)
3
+ * Copyright 2011-2021 The Bootstrap Authors
4
+ * Copyright 2011-2021 Twitter, Inc.
5
5
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
6
6
  */
7
7
 
@@ -28,6 +28,7 @@
28
28
  @import "bootstrap/nav";
29
29
  @import "bootstrap/navbar";
30
30
  @import "bootstrap/card";
31
+ @import "bootstrap/accordion";
31
32
  @import "bootstrap/breadcrumb";
32
33
  @import "bootstrap/pagination";
33
34
  @import "bootstrap/badge";
@@ -41,6 +42,7 @@
41
42
  @import "bootstrap/popover";
42
43
  @import "bootstrap/carousel";
43
44
  @import "bootstrap/spinners";
45
+ @import "bootstrap/offcanvas";
44
46
 
45
47
  // Helpers
46
48
  @import "bootstrap/helpers";
@@ -0,0 +1,118 @@
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
+ text-align: left; // Reset button style
14
+ background-color: $accordion-button-bg;
15
+ border: 0;
16
+ @include border-radius(0);
17
+ overflow-anchor: none;
18
+ @include transition($accordion-transition);
19
+
20
+ &:not(.collapsed) {
21
+ color: $accordion-button-active-color;
22
+ background-color: $accordion-button-active-bg;
23
+ box-shadow: inset 0 ($accordion-border-width * -1) 0 $accordion-border-color;
24
+
25
+ &::after {
26
+ background-image: escape-svg($accordion-button-active-icon);
27
+ transform: $accordion-icon-transform;
28
+ }
29
+ }
30
+
31
+ // Accordion icon
32
+ &::after {
33
+ flex-shrink: 0;
34
+ width: $accordion-icon-width;
35
+ height: $accordion-icon-width;
36
+ margin-left: auto;
37
+ content: "";
38
+ background-image: escape-svg($accordion-button-icon);
39
+ background-repeat: no-repeat;
40
+ background-size: $accordion-icon-width;
41
+ @include transition($accordion-icon-transition);
42
+ }
43
+
44
+ &:hover {
45
+ z-index: 2;
46
+ }
47
+
48
+ &:focus {
49
+ z-index: 3;
50
+ border-color: $accordion-button-focus-border-color;
51
+ outline: 0;
52
+ box-shadow: $accordion-button-focus-box-shadow;
53
+ }
54
+ }
55
+
56
+ .accordion-header {
57
+ margin-bottom: 0;
58
+ }
59
+
60
+ .accordion-item {
61
+ background-color: $accordion-bg;
62
+ border: $accordion-border-width solid $accordion-border-color;
63
+
64
+ &:first-of-type {
65
+ @include border-top-radius($accordion-border-radius);
66
+
67
+ .accordion-button {
68
+ @include border-top-radius($accordion-inner-border-radius);
69
+ }
70
+ }
71
+
72
+ &:not(:first-of-type) {
73
+ border-top: 0;
74
+ }
75
+
76
+ // Only set a border-radius on the last item if the accordion is collapsed
77
+ &:last-of-type {
78
+ @include border-bottom-radius($accordion-border-radius);
79
+
80
+ .accordion-button {
81
+ &.collapsed {
82
+ @include border-bottom-radius($accordion-inner-border-radius);
83
+ }
84
+ }
85
+
86
+ .accordion-collapse {
87
+ @include border-bottom-radius($accordion-border-radius);
88
+ }
89
+ }
90
+ }
91
+
92
+ .accordion-body {
93
+ padding: $accordion-body-padding-y $accordion-body-padding-x;
94
+ }
95
+
96
+
97
+ // Flush accordion items
98
+ //
99
+ // Remove borders and border-radius to keep accordion items edge-to-edge.
100
+
101
+ .accordion-flush {
102
+ .accordion-collapse {
103
+ border-width: 0;
104
+ }
105
+
106
+ .accordion-item {
107
+ border-right: 0;
108
+ border-left: 0;
109
+ @include border-radius(0);
110
+
111
+ &:first-child { border-top: 0; }
112
+ &:last-child { border-bottom: 0; }
113
+
114
+ .accordion-button {
115
+ @include border-radius(0);
116
+ }
117
+ }
118
+ }
@@ -34,6 +34,7 @@
34
34
  position: absolute;
35
35
  top: 0;
36
36
  right: 0;
37
+ z-index: $stretched-link-z-index + 1;
37
38
  padding: $alert-padding-y * 1.25 $alert-padding-x;
38
39
  }
39
40
  }
@@ -42,9 +43,15 @@
42
43
  // scss-docs-start alert-modifiers
43
44
  // Generate contextual modifier classes for colorizing the alert.
44
45
 
45
- @each $color, $value in $theme-colors {
46
- .alert-#{$color} {
47
- @include alert-variant(color-level($value, $alert-bg-level), color-level($value, $alert-border-level), color-level($value, $alert-color-level));
46
+ @each $state, $value in $theme-colors {
47
+ $alert-background: shift-color($value, $alert-bg-scale);
48
+ $alert-border: shift-color($value, $alert-border-scale);
49
+ $alert-color: shift-color($value, $alert-color-scale);
50
+ @if (contrast-ratio($alert-background, $alert-color) < $min-contrast-ratio) {
51
+ $alert-color: mix($value, color-contrast($alert-background), abs($alert-color-scale));
52
+ }
53
+ .alert-#{$state} {
54
+ @include alert-variant($alert-background, $alert-border, $alert-color);
48
55
  }
49
56
  }
50
57
  // scss-docs-end alert-modifiers
@@ -10,17 +10,15 @@
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
15
  padding-left: $breadcrumb-item-padding-x;
18
16
 
19
17
  &::before {
20
- display: inline-block; // Suppress underlining of the separator
18
+ float: left; // Suppress inline spacings and underlining of the separator
21
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
 
@@ -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 {
@@ -45,7 +43,7 @@
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
49
  // The left radius should be 0 if the button is:
@@ -55,7 +53,7 @@
55
53
  > .btn:nth-child(n + 3),
56
54
  > :not(.btn-check) + .btn,
57
55
  > .btn-group:not(:first-child) > .btn {
58
- @include border-left-radius(0);
56
+ @include border-start-radius(0);
59
57
  }
60
58
  }
61
59
 
@@ -77,11 +75,11 @@
77
75
 
78
76
  &::after,
79
77
  .dropup &::after,
80
- .dropright &::after {
78
+ .dropend &::after {
81
79
  margin-left: 0;
82
80
  }
83
81
 
84
- .dropleft &::before {
82
+ .dropstart &::before {
85
83
  margin-right: 0;
86
84
  }
87
85
  }
@@ -134,7 +132,7 @@
134
132
  @include border-bottom-radius(0);
135
133
  }
136
134
 
137
- > .btn:not(:first-child),
135
+ > .btn ~ .btn,
138
136
  > .btn-group:not(:first-child) > .btn {
139
137
  @include border-top-radius(0);
140
138
  }
@@ -55,6 +55,7 @@
55
55
  // Alternate buttons
56
56
  //
57
57
 
58
+ // scss-docs-start btn-variant-loops
58
59
  @each $color, $value in $theme-colors {
59
60
  .btn-#{$color} {
60
61
  @include button-variant($value, $value);
@@ -66,6 +67,7 @@
66
67
  @include button-outline-variant($value);
67
68
  }
68
69
  }
70
+ // scss-docs-end btn-variant-loops
69
71
 
70
72
 
71
73
  //
@@ -107,18 +109,3 @@
107
109
  .btn-sm {
108
110
  @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
109
111
  }
110
-
111
-
112
- //
113
- // Block button
114
- //
115
-
116
- .btn-block {
117
- display: block;
118
- width: 100%;
119
-
120
- // Vertically space out multiple block buttons
121
- + .btn-block {
122
- margin-top: $btn-block-spacing-y;
123
- }
124
- }
@@ -181,7 +181,7 @@
181
181
  // Handle rounded corners
182
182
  @if $enable-rounded {
183
183
  &:not(:last-child) {
184
- @include border-right-radius(0);
184
+ @include border-end-radius(0);
185
185
 
186
186
  .card-img-top,
187
187
  .card-header {
@@ -196,7 +196,7 @@
196
196
  }
197
197
 
198
198
  &:not(:first-child) {
199
- @include border-left-radius(0);
199
+ @include border-start-radius(0);
200
200
 
201
201
  .card-img-top,
202
202
  .card-header {
@@ -213,30 +213,3 @@
213
213
  }
214
214
  }
215
215
  }
216
-
217
-
218
- //
219
- // Accordion
220
- //
221
-
222
- .accordion {
223
- overflow-anchor: none;
224
-
225
- > .card {
226
- overflow: hidden;
227
-
228
- &:not(:last-of-type) {
229
- border-bottom: 0;
230
- @include border-bottom-radius(0);
231
- }
232
-
233
- &:not(:first-of-type) {
234
- @include border-top-radius(0);
235
- }
236
-
237
- > .card-header {
238
- @include border-radius(0);
239
- margin-bottom: -$card-border-width;
240
- }
241
- }
242
- }
@@ -3,12 +3,12 @@
3
3
  // 1. .carousel.pointer-event should ideally be pan-y (to allow for users to scroll vertically)
4
4
  // even when their scroll action started on a carousel, but for compatibility (with Firefox)
5
5
  // we're preventing all actions instead
6
- // 2. The .carousel-item-left and .carousel-item-right is used to indicate where
6
+ // 2. The .carousel-item-start and .carousel-item-end is used to indicate where
7
7
  // the active slide is heading.
8
8
  // 3. .active.carousel-item is the current slide.
9
- // 4. .active.carousel-item-left and .active.carousel-item-right is the current
9
+ // 4. .active.carousel-item-start and .active.carousel-item-end is the current
10
10
  // slide in its in-transition state. Only one of these occurs at a time.
11
- // 5. .carousel-item-next.carousel-item-left and .carousel-item-prev.carousel-item-right
11
+ // 5. .carousel-item-next.carousel-item-start and .carousel-item-prev.carousel-item-end
12
12
  // is the upcoming slide in transition.
13
13
 
14
14
  .carousel {
@@ -42,16 +42,19 @@
42
42
  display: block;
43
43
  }
44
44
 
45
- .carousel-item-next:not(.carousel-item-left),
46
- .active.carousel-item-right {
45
+ /* rtl:begin:ignore */
46
+ .carousel-item-next:not(.carousel-item-start),
47
+ .active.carousel-item-end {
47
48
  transform: translateX(100%);
48
49
  }
49
50
 
50
- .carousel-item-prev:not(.carousel-item-right),
51
- .active.carousel-item-left {
51
+ .carousel-item-prev:not(.carousel-item-end),
52
+ .active.carousel-item-start {
52
53
  transform: translateX(-100%);
53
54
  }
54
55
 
56
+ /* rtl:end:ignore */
57
+
55
58
 
56
59
  //
57
60
  // Alternate transitions
@@ -65,14 +68,14 @@
65
68
  }
66
69
 
67
70
  .carousel-item.active,
68
- .carousel-item-next.carousel-item-left,
69
- .carousel-item-prev.carousel-item-right {
71
+ .carousel-item-next.carousel-item-start,
72
+ .carousel-item-prev.carousel-item-end {
70
73
  z-index: 1;
71
74
  opacity: 1;
72
75
  }
73
76
 
74
- .active.carousel-item-left,
75
- .active.carousel-item-right {
77
+ .active.carousel-item-start,
78
+ .active.carousel-item-end {
76
79
  z-index: 0;
77
80
  opacity: 0;
78
81
  @include transition(opacity 0s $carousel-transition-duration);
@@ -95,8 +98,11 @@
95
98
  align-items: center; // 2. vertically center contents
96
99
  justify-content: center; // 3. horizontally center contents
97
100
  width: $carousel-control-width;
101
+ padding: 0;
98
102
  color: $carousel-control-color;
99
103
  text-align: center;
104
+ background: none;
105
+ border: 0;
100
106
  opacity: $carousel-control-opacity;
101
107
  @include transition($carousel-control-transition);
102
108
 
@@ -128,6 +134,15 @@
128
134
  background-position: 50%;
129
135
  background-size: 100% 100%;
130
136
  }
137
+
138
+ /* rtl:options: {
139
+ "autoRename": true,
140
+ "stringMap":[ {
141
+ "name" : "prev-next",
142
+ "search" : "prev",
143
+ "replace" : "next"
144
+ } ]
145
+ } */
131
146
  .carousel-control-prev-icon {
132
147
  background-image: escape-svg($carousel-control-prev-icon-bg);
133
148
  }
@@ -135,11 +150,10 @@
135
150
  background-image: escape-svg($carousel-control-next-icon-bg);
136
151
  }
137
152
 
138
-
139
- // Optional indicator pips
153
+ // Optional indicator pips/controls
140
154
  //
141
- // Add an ordered list with the following class and add a list item for each
142
- // slide your carousel holds.
155
+ // Add a container (such as a list) with the following class and add an item (ideally a focusable control,
156
+ // like a button) with data-bs-target for each slide your carousel holds.
143
157
 
144
158
  .carousel-indicators {
145
159
  position: absolute;
@@ -149,23 +163,26 @@
149
163
  z-index: 2;
150
164
  display: flex;
151
165
  justify-content: center;
152
- padding-left: 0; // override <ol> default
166
+ padding: 0;
153
167
  // Use the .carousel-control's width as margin so we don't overlay those
154
168
  margin-right: $carousel-control-width;
169
+ margin-bottom: 1rem;
155
170
  margin-left: $carousel-control-width;
156
171
  list-style: none;
157
172
 
158
- li {
173
+ [data-bs-target] {
159
174
  box-sizing: content-box;
160
175
  flex: 0 1 auto;
161
176
  width: $carousel-indicator-width;
162
177
  height: $carousel-indicator-height;
178
+ padding: 0;
163
179
  margin-right: $carousel-indicator-spacer;
164
180
  margin-left: $carousel-indicator-spacer;
165
181
  text-indent: -999px;
166
182
  cursor: pointer;
167
183
  background-color: $carousel-indicator-active-bg;
168
184
  background-clip: padding-box;
185
+ border: 0;
169
186
  // Use transparent borders to increase the hit area by 10px on top and bottom.
170
187
  border-top: $carousel-indicator-hit-area-height solid transparent;
171
188
  border-bottom: $carousel-indicator-hit-area-height solid transparent;
@@ -202,7 +219,7 @@
202
219
  filter: $carousel-dark-control-icon-filter;
203
220
  }
204
221
 
205
- .carousel-indicators li {
222
+ .carousel-indicators [data-bs-target] {
206
223
  background-color: $carousel-dark-indicator-active-bg;
207
224
  }
208
225