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,5 +1,3 @@
1
- // stylelint-disable selector-no-qualifying-type
2
-
3
1
  //
4
2
  // Base styles
5
3
  //
@@ -8,53 +6,48 @@
8
6
  display: inline-block;
9
7
  font-family: $btn-font-family;
10
8
  font-weight: $btn-font-weight;
9
+ line-height: $btn-line-height;
11
10
  color: $body-color;
12
11
  text-align: center;
13
12
  text-decoration: if($link-decoration == none, null, none);
14
13
  white-space: $btn-white-space;
15
14
  vertical-align: middle;
15
+ cursor: if($enable-button-pointers, pointer, null);
16
16
  user-select: none;
17
17
  background-color: transparent;
18
18
  border: $btn-border-width solid transparent;
19
- @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-line-height, $btn-border-radius);
19
+ @include button-size($btn-padding-y, $btn-padding-x, $btn-font-size, $btn-border-radius);
20
20
  @include transition($btn-transition);
21
21
 
22
- @include hover() {
22
+ &:hover {
23
23
  color: $body-color;
24
- text-decoration: none;
24
+ text-decoration: if($link-hover-decoration == underline, none, null);
25
25
  }
26
26
 
27
- &:focus,
28
- &.focus {
27
+ .btn-check:focus + &,
28
+ &:focus {
29
29
  outline: 0;
30
30
  box-shadow: $btn-focus-box-shadow;
31
31
  }
32
32
 
33
- // Disabled comes first so active can properly restyle
34
- &.disabled,
35
- &:disabled {
36
- opacity: $btn-disabled-opacity;
37
- @include box-shadow(none);
38
- }
39
-
40
- &:not(:disabled):not(.disabled) {
41
- cursor: if($enable-pointer-cursor-for-buttons, pointer, null);
42
-
43
- &:active,
44
- &.active {
45
- @include box-shadow($btn-active-box-shadow);
33
+ .btn-check:checked + &,
34
+ .btn-check:active + &,
35
+ &:active,
36
+ &.active {
37
+ @include box-shadow($btn-active-box-shadow);
46
38
 
47
- &:focus {
48
- @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
49
- }
39
+ &:focus {
40
+ @include box-shadow($btn-focus-box-shadow, $btn-active-box-shadow);
50
41
  }
51
42
  }
52
- }
53
43
 
54
- // Future-proof disabling of clicks on `<a>` elements
55
- a.btn.disabled,
56
- fieldset:disabled a.btn {
57
- pointer-events: none;
44
+ &:disabled,
45
+ &.disabled,
46
+ fieldset:disabled & {
47
+ pointer-events: none;
48
+ opacity: $btn-disabled-opacity;
49
+ @include box-shadow(none);
50
+ }
58
51
  }
59
52
 
60
53
 
@@ -82,23 +75,21 @@ fieldset:disabled a.btn {
82
75
  // Make a button look and behave like a link
83
76
  .btn-link {
84
77
  font-weight: $font-weight-normal;
85
- color: $link-color;
78
+ color: $btn-link-color;
86
79
  text-decoration: $link-decoration;
87
80
 
88
- @include hover() {
89
- color: $link-hover-color;
81
+ &:hover {
82
+ color: $btn-link-hover-color;
90
83
  text-decoration: $link-hover-decoration;
91
84
  }
92
85
 
93
- &:focus,
94
- &.focus {
86
+ &:focus {
95
87
  text-decoration: $link-hover-decoration;
96
88
  }
97
89
 
98
90
  &:disabled,
99
91
  &.disabled {
100
92
  color: $btn-link-disabled-color;
101
- pointer-events: none;
102
93
  }
103
94
 
104
95
  // No need for an active state here
@@ -110,33 +101,9 @@ fieldset:disabled a.btn {
110
101
  //
111
102
 
112
103
  .btn-lg {
113
- @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);
104
+ @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-border-radius-lg);
114
105
  }
115
106
 
116
107
  .btn-sm {
117
- @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);
118
- }
119
-
120
-
121
- //
122
- // Block button
123
- //
124
-
125
- .btn-block {
126
- display: block;
127
- width: 100%;
128
-
129
- // Vertically space out multiple block buttons
130
- + .btn-block {
131
- margin-top: $btn-block-spacing-y;
132
- }
133
- }
134
-
135
- // Specificity overrides
136
- input[type="submit"],
137
- input[type="reset"],
138
- input[type="button"] {
139
- &.btn-block {
140
- width: 100%;
141
- }
108
+ @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-border-radius-sm);
142
109
  }
@@ -46,19 +46,16 @@
46
46
  // Enable `flex-grow: 1` for decks and groups so that card blocks take up
47
47
  // as much space as possible, ensuring footers are aligned to the bottom.
48
48
  flex: 1 1 auto;
49
- // Workaround for the image size bug in IE
50
- // See: https://github.com/twbs/bootstrap/pull/28855
51
- min-height: 1px;
52
- padding: $card-spacer-x;
49
+ padding: $card-spacer-y $card-spacer-x;
53
50
  color: $card-color;
54
51
  }
55
52
 
56
53
  .card-title {
57
- margin-bottom: $card-spacer-y;
54
+ margin-bottom: $card-title-spacer-y;
58
55
  }
59
56
 
60
57
  .card-subtitle {
61
- margin-top: -$card-spacer-y / 2;
58
+ margin-top: -$card-title-spacer-y / 2;
62
59
  margin-bottom: 0;
63
60
  }
64
61
 
@@ -67,12 +64,12 @@
67
64
  }
68
65
 
69
66
  .card-link {
70
- @include hover() {
67
+ &:hover {
71
68
  text-decoration: none;
72
69
  }
73
70
 
74
71
  + .card-link {
75
- margin-left: $card-spacer-x;
72
+ margin-left: $card-spacer-x #{"/* rtl:ignore */"};
76
73
  }
77
74
  }
78
75
 
@@ -81,7 +78,7 @@
81
78
  //
82
79
 
83
80
  .card-header {
84
- padding: $card-spacer-y $card-spacer-x;
81
+ padding: $card-cap-padding-y $card-cap-padding-x;
85
82
  margin-bottom: 0; // Removes the default margin-bottom of <hN>
86
83
  color: $card-cap-color;
87
84
  background-color: $card-cap-bg;
@@ -93,7 +90,7 @@
93
90
  }
94
91
 
95
92
  .card-footer {
96
- padding: $card-spacer-y $card-spacer-x;
93
+ padding: $card-cap-padding-y $card-cap-padding-x;
97
94
  color: $card-cap-color;
98
95
  background-color: $card-cap-bg;
99
96
  border-top: $card-border-width solid $card-border-color;
@@ -109,15 +106,22 @@
109
106
  //
110
107
 
111
108
  .card-header-tabs {
112
- margin-right: -$card-spacer-x / 2;
113
- margin-bottom: -$card-spacer-y;
114
- margin-left: -$card-spacer-x / 2;
109
+ margin-right: -$card-cap-padding-x / 2;
110
+ margin-bottom: -$card-cap-padding-y;
111
+ margin-left: -$card-cap-padding-x / 2;
115
112
  border-bottom: 0;
113
+
114
+ @if $nav-tabs-link-active-bg != $card-bg {
115
+ .nav-link.active {
116
+ background-color: $card-bg;
117
+ border-bottom-color: $card-bg;
118
+ }
119
+ }
116
120
  }
117
121
 
118
122
  .card-header-pills {
119
- margin-right: -$card-spacer-x / 2;
120
- margin-left: -$card-spacer-x / 2;
123
+ margin-right: -$card-cap-padding-x / 2;
124
+ margin-left: -$card-cap-padding-x / 2;
121
125
  }
122
126
 
123
127
  // Card image
@@ -134,7 +138,6 @@
134
138
  .card-img,
135
139
  .card-img-top,
136
140
  .card-img-bottom {
137
- flex-shrink: 0; // For IE: https://github.com/twbs/bootstrap/issues/29396
138
141
  width: 100%; // Required because we use flexbox and this inherently applies align-self: stretch
139
142
  }
140
143
 
@@ -149,30 +152,6 @@
149
152
  }
150
153
 
151
154
 
152
- // Card deck
153
-
154
- .card-deck {
155
- .card {
156
- margin-bottom: $card-deck-margin;
157
- }
158
-
159
- @include media-breakpoint-up(sm) {
160
- display: flex;
161
- flex-flow: row wrap;
162
- margin-right: -$card-deck-margin;
163
- margin-left: -$card-deck-margin;
164
-
165
- .card {
166
- // Flexbugs #4: https://github.com/philipwalton/flexbugs#flexbug-4
167
- flex: 1 0 0%;
168
- margin-right: $card-deck-margin;
169
- margin-bottom: 0; // Override the default
170
- margin-left: $card-deck-margin;
171
- }
172
- }
173
- }
174
-
175
-
176
155
  //
177
156
  // Card groups
178
157
  //
@@ -202,31 +181,31 @@
202
181
  // Handle rounded corners
203
182
  @if $enable-rounded {
204
183
  &:not(:last-child) {
205
- @include border-right-radius(0);
184
+ @include border-end-radius(0);
206
185
 
207
186
  .card-img-top,
208
187
  .card-header {
209
- // stylelint-disable-next-line property-blacklist
188
+ // stylelint-disable-next-line property-disallowed-list
210
189
  border-top-right-radius: 0;
211
190
  }
212
191
  .card-img-bottom,
213
192
  .card-footer {
214
- // stylelint-disable-next-line property-blacklist
193
+ // stylelint-disable-next-line property-disallowed-list
215
194
  border-bottom-right-radius: 0;
216
195
  }
217
196
  }
218
197
 
219
198
  &:not(:first-child) {
220
- @include border-left-radius(0);
199
+ @include border-start-radius(0);
221
200
 
222
201
  .card-img-top,
223
202
  .card-header {
224
- // stylelint-disable-next-line property-blacklist
203
+ // stylelint-disable-next-line property-disallowed-list
225
204
  border-top-left-radius: 0;
226
205
  }
227
206
  .card-img-bottom,
228
207
  .card-footer {
229
- // stylelint-disable-next-line property-blacklist
208
+ // stylelint-disable-next-line property-disallowed-list
230
209
  border-bottom-left-radius: 0;
231
210
  }
232
211
  }
@@ -234,53 +213,3 @@
234
213
  }
235
214
  }
236
215
  }
237
-
238
-
239
- //
240
- // Columns
241
- //
242
-
243
- .card-columns {
244
- .card {
245
- margin-bottom: $card-columns-margin;
246
- }
247
-
248
- @include media-breakpoint-up(sm) {
249
- column-count: $card-columns-count;
250
- column-gap: $card-columns-gap;
251
- orphans: 1;
252
- widows: 1;
253
-
254
- .card {
255
- display: inline-block; // Don't let them vertically span multiple columns
256
- width: 100%; // Don't let their width change
257
- }
258
- }
259
- }
260
-
261
-
262
- //
263
- // Accordion
264
- //
265
-
266
- .accordion {
267
- overflow-anchor: none;
268
-
269
- > .card {
270
- overflow: hidden;
271
-
272
- &:not(:last-of-type) {
273
- border-bottom: 0;
274
- @include border-bottom-radius(0);
275
- }
276
-
277
- &:not(:first-of-type) {
278
- @include border-top-radius(0);
279
- }
280
-
281
- > .card-header {
282
- @include border-radius(0);
283
- margin-bottom: -$card-border-width;
284
- }
285
- }
286
- }
@@ -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);
@@ -101,7 +104,8 @@
101
104
  @include transition($carousel-control-transition);
102
105
 
103
106
  // Hover/focus state
104
- @include hover-focus() {
107
+ &:hover,
108
+ &:focus {
105
109
  color: $carousel-control-color;
106
110
  text-decoration: none;
107
111
  outline: 0;
@@ -110,15 +114,11 @@
110
114
  }
111
115
  .carousel-control-prev {
112
116
  left: 0;
113
- @if $enable-gradients {
114
- background-image: linear-gradient(90deg, rgba($black, .25), rgba($black, .001));
115
- }
117
+ background-image: if($enable-gradients, linear-gradient(90deg, rgba($black, .25), rgba($black, .001)), null);
116
118
  }
117
119
  .carousel-control-next {
118
120
  right: 0;
119
- @if $enable-gradients {
120
- background-image: linear-gradient(270deg, rgba($black, .25), rgba($black, .001));
121
- }
121
+ background-image: if($enable-gradients, linear-gradient(270deg, rgba($black, .25), rgba($black, .001)), null);
122
122
  }
123
123
 
124
124
  // Icons for within
@@ -127,8 +127,19 @@
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%;
131
- }
130
+ background-repeat: no-repeat;
131
+ background-position: 50%;
132
+ background-size: 100% 100%;
133
+ }
134
+
135
+ /* rtl:options: {
136
+ "autoRename": true,
137
+ "stringMap":[ {
138
+ "name" : "prev-next",
139
+ "search" : "prev",
140
+ "replace" : "next"
141
+ } ]
142
+ } */
132
143
  .carousel-control-prev-icon {
133
144
  background-image: escape-svg($carousel-control-prev-icon-bg);
134
145
  }
@@ -136,7 +147,6 @@
136
147
  background-image: escape-svg($carousel-control-next-icon-bg);
137
148
  }
138
149
 
139
-
140
150
  // Optional indicator pips
141
151
  //
142
152
  // Add an ordered list with the following class and add a list item for each
@@ -147,7 +157,7 @@
147
157
  right: 0;
148
158
  bottom: 0;
149
159
  left: 0;
150
- z-index: 15;
160
+ z-index: 2;
151
161
  display: flex;
152
162
  justify-content: center;
153
163
  padding-left: 0; // override <ol> default
@@ -170,12 +180,12 @@
170
180
  // Use transparent borders to increase the hit area by 10px on top and bottom.
171
181
  border-top: $carousel-indicator-hit-area-height solid transparent;
172
182
  border-bottom: $carousel-indicator-hit-area-height solid transparent;
173
- opacity: .5;
183
+ opacity: $carousel-indicator-opacity;
174
184
  @include transition($carousel-indicator-transition);
175
185
  }
176
186
 
177
187
  .active {
178
- opacity: 1;
188
+ opacity: $carousel-indicator-active-opacity;
179
189
  }
180
190
  }
181
191
 
@@ -187,11 +197,27 @@
187
197
  .carousel-caption {
188
198
  position: absolute;
189
199
  right: (100% - $carousel-caption-width) / 2;
190
- bottom: 20px;
200
+ bottom: $carousel-caption-spacer;
191
201
  left: (100% - $carousel-caption-width) / 2;
192
- z-index: 10;
193
- padding-top: 20px;
194
- padding-bottom: 20px;
202
+ padding-top: $carousel-caption-padding-y;
203
+ padding-bottom: $carousel-caption-padding-y;
195
204
  color: $carousel-caption-color;
196
205
  text-align: center;
197
206
  }
207
+
208
+ // Dark mode carousel
209
+
210
+ .carousel-dark {
211
+ .carousel-control-prev-icon,
212
+ .carousel-control-next-icon {
213
+ filter: $carousel-dark-control-icon-filter;
214
+ }
215
+
216
+ .carousel-indicators li {
217
+ background-color: $carousel-dark-indicator-active-bg;
218
+ }
219
+
220
+ .carousel-caption {
221
+ color: $carousel-dark-caption-color;
222
+ }
223
+ }