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
.carouselDefines the carousel container..carousel-innerContains all the slides..carousel-itemEach slide inside the carousel..carousel-indicatorsDots for navigation..carousel-control-prevLeft arrows for manual navigation..carousel-control-nextRight 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