Skip to content

Commit f951be3

Browse files
mdoXhmikosR
andauthored
Carousel enhancements, including .carousel-dark (#31650)
* Replace existing carousel control icons with chevrons from Bootstrap Icons * Add .carousel-dark variant * Test * Add variable for .carousel-dark filter * Update _variables.scss Co-authored-by: XhmikosR <xhmikosr@gmail.com>
1 parent 979c66b commit f951be3

File tree

3 files changed

+69
-4
lines changed

3 files changed

+69
-4
lines changed

scss/_carousel.scss

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,3 +193,20 @@
193193
color: $carousel-caption-color;
194194
text-align: center;
195195
}
196+
197+
// Dark mode carousel
198+
199+
.carousel-dark {
200+
.carousel-control-prev-icon,
201+
.carousel-control-next-icon {
202+
filter: $carousel-dark-control-icon-filter;
203+
}
204+
205+
.carousel-indicators li {
206+
background-color: $carousel-dark-indicator-active-bg;
207+
}
208+
209+
.carousel-caption {
210+
color: $carousel-dark-caption-color;
211+
}
212+
}

scss/_variables.scss

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1254,14 +1254,18 @@ $carousel-caption-color: $white !default;
12541254
$carousel-caption-padding-y: 1.25rem !default;
12551255
$carousel-caption-spacer: 1.25rem !default;
12561256

1257-
$carousel-control-icon-width: 20px !default;
1257+
$carousel-control-icon-width: 2rem !default;
12581258

1259-
$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'><path d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/></svg>") !default;
1260-
$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'><path d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/></svg>") !default;
1259+
$carousel-control-prev-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 16 16'><path d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/></svg>") !default;
1260+
$carousel-control-next-icon-bg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 16 16'><path d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/></svg>") !default;
12611261

12621262
$carousel-transition-duration: .6s !default;
12631263
$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
12641264

1265+
$carousel-dark-indicator-active-bg: $black !default;
1266+
$carousel-dark-caption-color: $black !default;
1267+
$carousel-dark-control-icon-filter: invert(1) grayscale(100) !default;
1268+
12651269

12661270
// Spinners
12671271

@@ -1288,7 +1292,7 @@ $btn-close-opacity: .5 !default;
12881292
$btn-close-hover-opacity: .75 !default;
12891293
$btn-close-focus-opacity: 1 !default;
12901294
$btn-close-disabled-opacity: .25 !default;
1291-
$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
1295+
$btn-close-white-filter: invert(1) grayscale(100%) brightness(200%) !default;
12921296

12931297
// Code
12941298

site/content/docs/5.0/components/carousel.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,50 @@ Add `data-interval=""` to a `.carousel-item` to change the amount of time to del
206206
</div>
207207
{{< /example >}}
208208

209+
## Dark variant
210+
211+
Add `.carousel-dark` to the `.carousel` for darker controls, indicators, and captions. Controls have been inverted from their default white fill with the `filter` CSS property. Captions and controls have additional Sass variables that customize the `color` and `background-color`.
212+
213+
{{< example >}}
214+
<div id="carouselExampleDark" class="carousel carousel-dark slide" data-ride="carousel">
215+
<ol class="carousel-indicators">
216+
<li data-target="#carouselExampleDark" data-slide-to="0" class="active"></li>
217+
<li data-target="#carouselExampleDark" data-slide-to="1"></li>
218+
<li data-target="#carouselExampleDark" data-slide-to="2"></li>
219+
</ol>
220+
<div class="carousel-inner">
221+
<div class="carousel-item active" data-interval="10000">
222+
{{< placeholder width="800" height="400" class="bd-placeholder-img-lg d-block w-100" color="#aaa" background="#f5f5f5" text="First slide" >}}
223+
<div class="carousel-caption d-none d-md-block">
224+
<h5>First slide label</h5>
225+
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
226+
</div>
227+
</div>
228+
<div class="carousel-item" data-interval="2000">
229+
{{< placeholder width="800" height="400" class="bd-placeholder-img-lg d-block w-100" color="#bbb" background="#eee" text="Second slide" >}}
230+
<div class="carousel-caption d-none d-md-block">
231+
<h5>Second slide label</h5>
232+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
233+
</div>
234+
</div>
235+
<div class="carousel-item">
236+
{{< placeholder width="800" height="400" class="bd-placeholder-img-lg d-block w-100" color="#999" background="#e5e5e5" text="Third slide" >}}
237+
<div class="carousel-caption d-none d-md-block">
238+
<h5>Third slide label</h5>
239+
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
240+
</div>
241+
</div>
242+
</div>
243+
<a class="carousel-control-prev" href="#carouselExampleDark" role="button" data-slide="prev">
244+
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
245+
<span class="visually-hidden">Previous</span>
246+
</a>
247+
<a class="carousel-control-next" href="#carouselExampleDark" role="button" data-slide="next">
248+
<span class="carousel-control-next-icon" aria-hidden="true"></span>
249+
<span class="visually-hidden">Next</span>
250+
</a>
251+
</div>
252+
{{< /example >}}
209253

210254
## Usage
211255

0 commit comments

Comments
 (0)