diff --git a/scss/_carousel.scss b/scss/_carousel.scss
index 3a13522001..5ebf6b15dc 100644
--- a/scss/_carousel.scss
+++ b/scss/_carousel.scss
@@ -99,6 +99,7 @@
color: $carousel-control-color;
text-align: center;
background: none;
+ filter: var(--#{$prefix}carousel-control-icon-filter);
border: 0;
opacity: $carousel-control-opacity;
@include transition($carousel-control-transition);
@@ -168,7 +169,7 @@
margin-left: $carousel-indicator-spacer;
text-indent: -999px;
cursor: pointer;
- background-color: $carousel-indicator-active-bg;
+ background-color: var(--#{$prefix}carousel-indicator-active-bg);
background-clip: padding-box;
border: 0;
// Use transparent borders to increase the hit area by 10px on top and bottom.
@@ -195,42 +196,31 @@
left: (100% - $carousel-caption-width) * .5;
padding-top: $carousel-caption-padding-y;
padding-bottom: $carousel-caption-padding-y;
- color: $carousel-caption-color;
+ color: var(--#{$prefix}carousel-caption-color);
text-align: center;
}
// Dark mode carousel
@mixin carousel-dark() {
- .carousel-control-prev-icon,
- .carousel-control-next-icon {
- filter: $carousel-dark-control-icon-filter;
- }
-
- .carousel-indicators [data-bs-target] {
- background-color: $carousel-dark-indicator-active-bg;
- }
-
- .carousel-caption {
- color: $carousel-dark-caption-color;
- }
+ --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg-dark};
+ --#{$prefix}carousel-caption-color: #{$carousel-caption-color-dark};
+ --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter-dark};
}
.carousel-dark {
@include carousel-dark();
}
+:root,
+[data-bs-theme="light"] {
+ --#{$prefix}carousel-indicator-active-bg: #{$carousel-indicator-active-bg};
+ --#{$prefix}carousel-caption-color: #{$carousel-caption-color};
+ --#{$prefix}carousel-control-icon-filter: #{$carousel-control-icon-filter};
+}
+
@if $enable-dark-mode {
- @include color-mode(dark) {
- @if $color-mode-type == "media-query" {
- .carousel {
- @include carousel-dark();
- }
- } @else {
- .carousel,
- &.carousel {
- @include carousel-dark();
- }
- }
+ @include color-mode(dark, true) {
+ @include carousel-dark();
}
}
diff --git a/scss/_variables-dark.scss b/scss/_variables-dark.scss
index 723747bf45..f9bb99d968 100644
--- a/scss/_variables-dark.scss
+++ b/scss/_variables-dark.scss
@@ -85,3 +85,12 @@ $accordion-icon-active-color-dark: $primary-text-emphasis-dark !default;
$accordion-button-icon-dark: url("data:image/svg+xml,") !default;
$accordion-button-active-icon-dark: url("data:image/svg+xml,") !default;
// scss-docs-end sass-dark-mode-vars
+
+
+//
+// Carousel
+//
+
+$carousel-indicator-active-bg-dark: $carousel-dark-indicator-active-bg !default;
+$carousel-caption-color-dark: $carousel-dark-caption-color !default;
+$carousel-control-icon-filter-dark: $carousel-dark-control-icon-filter !default;
diff --git a/scss/_variables.scss b/scss/_variables.scss
index 176e635132..2d2aae2ff7 100644
--- a/scss/_variables.scss
+++ b/scss/_variables.scss
@@ -1652,6 +1652,7 @@ $carousel-control-width: 15% !default;
$carousel-control-opacity: .5 !default;
$carousel-control-hover-opacity: .9 !default;
$carousel-control-transition: opacity .15s ease !default;
+$carousel-control-icon-filter: null !default;
$carousel-indicator-width: 30px !default;
$carousel-indicator-height: 3px !default;
@@ -1677,9 +1678,9 @@ $carousel-transition: transform $carousel-transition-duration eas
// scss-docs-end carousel-variables
// scss-docs-start carousel-dark-variables
-$carousel-dark-indicator-active-bg: $black !default;
-$carousel-dark-caption-color: $black !default;
-$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
+$carousel-dark-indicator-active-bg: $black !default; // Deprecated in v5.3.4
+$carousel-dark-caption-color: $black !default; // Deprecated in v5.3.4
+$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default; // Deprecated in v5.3.4
// scss-docs-end carousel-dark-variables