Skip to content

Commit 0cbfe13

Browse files
Fix display issues of carousel child elements in contextual light and dark modes (#40695)
Co-authored-by: Louis-Maxime Piton <[email protected]>
1 parent 214a5e0 commit 0cbfe13

File tree

3 files changed

+28
-28
lines changed

3 files changed

+28
-28
lines changed

scss/_carousel.scss

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
color: $carousel-control-color;
100100
text-align: center;
101101
background: none;
102+
filter: var(--#{$prefix}carousel-control-icon-filter);
102103
border: 0;
103104
opacity: $carousel-control-opacity;
104105
@include transition($carousel-control-transition);
@@ -168,7 +169,7 @@
168169
margin-left: $carousel-indicator-spacer;
169170
text-indent: -999px;
170171
cursor: pointer;
171-
background-color: $carousel-indicator-active-bg;
172+
background-color: var(--#{$prefix}carousel-indicator-active-bg);
172173
background-clip: padding-box;
173174
border: 0;
174175
// Use transparent borders to increase the hit area by 10px on top and bottom.
@@ -195,42 +196,31 @@
195196
left: (100% - $carousel-caption-width) * .5;
196197
padding-top: $carousel-caption-padding-y;
197198
padding-bottom: $carousel-caption-padding-y;
198-
color: $carousel-caption-color;
199+
color: var(--#{$prefix}carousel-caption-color);
199200
text-align: center;
200201
}
201202

202203
// Dark mode carousel
203204

204205
@mixin carousel-dark() {
205-
.carousel-control-prev-icon,
206-
.carousel-control-next-icon {
207-
filter: $carousel-dark-control-icon-filter;
208-
}
209-
210-
.carousel-indicators [data-bs-target] {
211-
background-color: $carousel-dark-indicator-active-bg;
212-
}
213-
214-
.carousel-caption {
215-
color: $carousel-dark-caption-color;
216-
}
206+
--#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark};
207+
--#{$prefix}carousel-caption-color: #{$carousel-caption-color-dark};
208+
--#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter-dark};
217209
}
218210

219211
.carousel-dark {
220212
@include carousel-dark();
221213
}
222214

215+
:root,
216+
[data-bs-theme="light"] {
217+
--#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg};
218+
--#{$prefix}carousel-caption-color: #{$carousel-caption-color};
219+
--#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter};
220+
}
221+
223222
@if $enable-dark-mode {
224-
@include color-mode(dark) {
225-
@if $color-mode-type == "media-query" {
226-
.carousel {
227-
@include carousel-dark();
228-
}
229-
} @else {
230-
.carousel,
231-
&.carousel {
232-
@include carousel-dark();
233-
}
234-
}
223+
@include color-mode(dark, true) {
224+
@include carousel-dark();
235225
}
236226
}

scss/_variables-dark.scss

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,12 @@ $accordion-icon-active-color-dark: $primary-text-emphasis-dark !default;
8585
$accordion-button-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
8686
$accordion-button-active-icon-dark: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='#{$accordion-icon-active-color-dark}'><path fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708'/></svg>") !default;
8787
// scss-docs-end sass-dark-mode-vars
88+
89+
90+
//
91+
// Carousel
92+
//
93+
94+
$carousel-indicator-active-bg-dark: $carousel-dark-indicator-active-bg !default;
95+
$carousel-caption-color-dark: $carousel-dark-caption-color !default;
96+
$carousel-control-icon-filter-dark: $carousel-dark-control-icon-filter !default;

scss/_variables.scss

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1652,6 +1652,7 @@ $carousel-control-width: 15% !default;
16521652
$carousel-control-opacity: .5 !default;
16531653
$carousel-control-hover-opacity: .9 !default;
16541654
$carousel-control-transition: opacity .15s ease !default;
1655+
$carousel-control-icon-filter: null !default;
16551656

16561657
$carousel-indicator-width: 30px !default;
16571658
$carousel-indicator-height: 3px !default;
@@ -1677,9 +1678,9 @@ $carousel-transition: transform $carousel-transition-duration eas
16771678
// scss-docs-end carousel-variables
16781679

16791680
// scss-docs-start carousel-dark-variables
1680-
$carousel-dark-indicator-active-bg: $black !default;
1681-
$carousel-dark-caption-color: $black !default;
1682-
$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
1681+
$carousel-dark-indicator-active-bg: $black !default; // Deprecated in v5.3.4
1682+
$carousel-dark-caption-color: $black !default; // Deprecated in v5.3.4
1683+
$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Deprecated in v5.3.4
16831684
// scss-docs-end carousel-dark-variables
16841685

16851686

0 commit comments

Comments
 (0)