Bootstrap 5 Carousel
Carousel is a slideshow component used to display multiple images, text, or custom content in a rotating slider format. It supports automatic sliding, manual navigation, indicators, and controls.
Bootstrap Carousel with Indicators
.carousel
Defines the carousel container..carousel-inner
Contains all the slides..carousel-item
Each slide inside the carousel..carousel-indicators
Dots for navigation..carousel-control-prev
Left arrows for manual navigation..carousel-control-next
Right arrows for manual navigation.data-bs-ride="carousel"
Enables automatic sliding.
Example
<div id="demo" class="carousel slide" data-bs-ride="carousel"> <!-- Indicators/dots --> <div class="carousel-indicators"> <button type="button" data-bs-target="#demo" data-bs-slide-to="0" class="active"></button> <button type="button" data-bs-target="#demo" data-bs-slide-to="1"></button> <button type="button" data-bs-target="#demo" data-bs-slide-to="2"></button> </div> <!-- The slideshow/carousel --> <div class="carousel-inner"> <div class="carousel-item active"> <img src="c1.jpg" alt="Image" class="d-block w-100"> </div> <div class="carousel-item"> <img src="c2.jpg" alt="Image" class="d-block w-100"> </div> <div class="carousel-item"> <img src="c3.jpg" alt="Image" class="d-block w-100"> </div> </div> <!-- Left and right controls/icons --> <button class="carousel-control-prev" type="button" data-bs-target="#demo" data-bs-slide="prev"> <span class="carousel-control-prev-icon"></span> </button> <button class="carousel-control-next" type="button" data-bs-target="#demo" data-bs-slide="next"> <span class="carousel-control-next-icon"></span> </button> </div>Try it Yourself
Carousel with Caption
You can create a carousel with captions using the built-in carousel component. Add <div class="carousel-caption">
inside <div class="carousel-item">
.
Example
<div class="carousel-inner"> <div class="carousel-item active"> <img src="c1.jpg" alt="Image" class="d-block w-100"> <div class="carousel-caption"> <h5>First Slide Caption</h5> <p>This is a description for the first slide.</p> </div> </div> <div class="carousel-item"> <img src="c2.jpg" alt="Image" class="d-block w-100"> <div class="carousel-caption"> <h5>Second Slide Caption</h5> <p>This is a description for the second slide.</p> </div> </div> <div class="carousel-item"> <img src="c3.jpg" alt="Image" class="d-block w-100"> <div class="carousel-caption"> <h5>Third Slide Caption</h5> <p>This is a description for the third slide.</p> </div> </div> </div>Try it Yourself
Carousel with Crossfade
You can create a carousel with a crossfade effect by adding the .carousel-fade
class to the carousel container.
Example
<div id="demo" class="carousel slide carousel-fade" data-bs-ride="carousel"> <!-- Indicators/dots --> <div class="carousel-indicators"> <button type="button" data-bs-target="#demo" data-bs-slide-to="0" class="active"></button> <button type="button" data-bs-target="#demo" data-bs-slide-to="1"></button> <button type="button" data-bs-target="#demo" data-bs-slide-to="2"></button> </div> <!-- The slideshow/carousel --> <div class="carousel-inner"> <div class="carousel-item active"> <img src="c1.jpg" alt="Image" class="d-block w-100"> </div> <div class="carousel-item"> <img src="c2.jpg" alt="Image" class="d-block w-100"> </div> <div class="carousel-item"> <img src="c3.jpg" alt="Image" class="d-block w-100"> </div> </div> <!-- Left and right controls/icons --> <button class="carousel-control-prev" type="button" data-bs-target="#demo" data-bs-slide="prev"> <span class="carousel-control-prev-icon"></span> </button> <button class="carousel-control-next" type="button" data-bs-target="#demo" data-bs-slide="next"> <span class="carousel-control-next-icon"></span> </button> </div>Try it Yourself
Carousel with Different Intervals for Each Slide
You can set an individual interval for each .carousel-item
using the data-bs-interval
attribute. This allows different slides to have different durations before transitioning to the next slide.
Example
<div id="demo" class="carousel slide" data-bs-ride="carousel"> <!-- Indicators/dots --> <div class="carousel-indicators"> <button type="button" data-bs-target="#demo" data-bs-slide-to="0" class="active"></button> <button type="button" data-bs-target="#demo" data-bs-slide-to="1"></button> <button type="button" data-bs-target="#demo" data-bs-slide-to="2"></button> </div> <!-- The slideshow/carousel --> <div class="carousel-inner"> <div class="carousel-item active" data-bs-interval="2000"> <img src="c1.jpg" alt="Image" class="d-block w-100"> <div class="carousel-caption"> <h5>First Slide Caption</h5> <p>Stays for 2 seconds.</p> </div> </div> <div class="carousel-item" data-bs-interval="4000"> <img src="c2.jpg" alt="Image" class="d-block w-100"> <div class="carousel-caption"> <h5>Second Slide Caption</h5> <p>Stays for 4 seconds.</p> </div> </div> <div class="carousel-item" data-bs-interval="3000"> <img src="c3.jpg" alt="Image" class="d-block w-100"> <div class="carousel-caption"> <h5>Third Slide Caption</h5> <p>Stays for 3 seconds.</p> </div> </div> </div> <!-- Left and right controls/icons --> <button class="carousel-control-prev" type="button" data-bs-target="#demo" data-bs-slide="prev"> <span class="carousel-control-prev-icon"></span> </button> <button class="carousel-control-next" type="button" data-bs-target="#demo" data-bs-slide="next"> <span class="carousel-control-next-icon"></span> </button> </div>Try it Yourself