π§± Bootstrap 5 Carousel / Slider Demo β Responsive Image Slider with Captions
π§² Introduction β Create Responsive Carousels with Bootstrap 5
Bootstrap 5 Carousel is a built-in component that enables you to display a series of images, text, or custom content inside a sliding container. With built-in support for fade effects, indicators, captions, and controls, it’s perfect for landing pages, hero sliders, and image showcases.
π― In this guide, youβll learn:
- How to implement a basic image slider using
.carousel
- Add indicators, navigation arrows, and captions
- Use fade transitions with
.carousel-fade
- Customize carousel timing and autoplay behavior
β Example 1 β Basic Image Carousel
<div id="carouselExample" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Slide 1">
</div>
<div class="carousel-item">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Slide 2">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExample" data-bs-slide="prev">
<span class="carousel-control-prev-icon"></span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExample" data-bs-slide="next">
<span class="carousel-control-next-icon"></span>
</button>
</div>
Class | Description |
---|---|
.carousel | Initializes the carousel container |
.carousel-inner | Holds all .carousel-item slides |
.carousel-item | Defines each slide |
.carousel-control-* | Adds next/prev navigation buttons |
π This creates a sliding image carousel with basic controls.
β Example 2 β Carousel with Indicators and Captions
<div id="carouselIndicators" class="carousel slide" data-bs-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselIndicators" data-bs-slide-to="0" class="active"></button>
<button type="button" data-bs-target="#carouselIndicators" data-bs-slide-to="1"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Slide A">
<div class="carousel-caption d-none d-md-block">
<h5>First Slide Title</h5>
<p>Some quick description goes here.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Slide B">
<div class="carousel-caption d-none d-md-block">
<h5>Second Slide Title</h5>
<p>Another short caption text here.</p>
</div>
</div>
</div>
</div>
Class | Description |
---|---|
.carousel-indicators | Adds clickable dots for slide control |
.carousel-caption | Displays heading and text over image |
.d-none d-md-block | Hides captions on small devices |
π Combine indicators and captions for informative, user-friendly sliders.
β Example 3 β Fade Transition Carousel
<div id="carouselFade" class="carousel slide carousel-fade" data-bs-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Fade Slide 1">
</div>
<div class="carousel-item">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Fade Slide 2">
</div>
</div>
</div>
Class | Description |
---|---|
.carousel-fade | Enables fade transition between slides |
π Ideal for creating smooth, elegant transitions instead of sliding.
β Example 4 β Carousel Autoplay Timing Control
<div id="carouselAutoplay" class="carousel slide" data-bs-ride="carousel" data-bs-interval="2000">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Auto 1">
</div>
<div class="carousel-item">
<img src="https://via.placeholder.com/800x300" class="d-block w-100" alt="Auto 2">
</div>
</div>
</div>
Attribute | Function |
---|---|
data-bs-interval="2000" | Changes slide interval to 2 seconds |
π Customize autoplay speed per carousel or slide with data attributes.
π Bootstrap Carousel Utility Reference
Feature | Class / Attribute | Description |
---|---|---|
Carousel Container | .carousel | Main slider component |
Slide Wrapper | .carousel-inner | Contains .carousel-item elements |
Individual Slide | .carousel-item | Each slide in the sequence |
Controls | .carousel-control-next/prev | Navigates between slides |
Indicators | .carousel-indicators | Shows active slide buttons |
Captions | .carousel-caption | Overlay for text or headings |
Fade Effect | .carousel-fade | Adds crossfade animation |
Interval Control | data-bs-interval="ms" | Controls time per slide |
π οΈ Best Practices for Bootstrap Carousels
Tip | Why Itβs Important |
---|---|
Always set alt text | Ensures accessibility and SEO |
Use d-none d-md-block on text | Improves mobile UX and layout clarity |
Optimize image sizes | Prevents layout shifts and improves load speed |
Limit slides to 3β5 items | Avoids overwhelming users or causing distraction |
Disable autoplay on forms/modals | Prevents user input interference |
π Summary β Recap & Next Steps
Bootstrap 5βs carousel component offers a sleek, responsive way to showcase images, marketing content, or UI features. Itβs easy to extend with captions, controls, indicators, and timing customizations.
π Key Takeaways:
- Use
.carousel
,.carousel-item
, and.carousel-inner
to structure the slider - Add
.carousel-fade
for crossfade effects - Enhance UX with captions and clickable indicators
- Use
data-bs-interval
to control timing behavior
βοΈ Best suited for hero sliders, featured product showcases, testimonials, and marketing banners.
β FAQs β Bootstrap 5 Carousel / Slider
β Can I stop autoplay on Bootstrap carousel?
β
Yes. Remove data-bs-ride="carousel"
or use JavaScript to pause the slider.
β Can I show multiple cards in one carousel slide?
β
Yes. Use custom layout inside each .carousel-item
using .row
and .col-*
.
β Is Bootstrap carousel accessible?
β
Partially. Use aria-*
attributes and provide meaningful alt
text for full accessibility.
β How to pause carousel on hover?
β
Add data-bs-pause="hover"
to the carousel container to pause sliding when hovered.
Share Now :