Carousels cycle through images or other content. Add controls with data-ui-slide, indicators with data-ui-slide-to, captions, a fade transition or the dark variant, and start autoplay with data-ui-ride="carousel". Keep slides few and meaningful.
1Slides only
The simplest carousel: slides that cycle automatically, without controls.
<div id="carousel-881" class="carousel slide" data-ui-ride="carousel">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="First slide">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1761839258420-5c3e2f2e2a74?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Second slide">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1599058917212-d750089bc07e?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Third slide">
</div>
</div>
</div>2With controls
Previous and next buttons with data-ui-slide.
<div id="carousel-882" class="carousel slide">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Slide one">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1689877020200-403d8542d95d?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Slide two">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Slide three">
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-882" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-882" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>3With indicators
Indicator buttons with data-ui-slide-to jump straight to a slide.
<div id="carousel-883" class="carousel slide">
<div class="carousel-indicators">
<button type="button" data-ui-target="#carousel-883" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#carousel-883" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#carousel-883" data-ui-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1778828494354-9b717d36dc99?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Slide one">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1574680096145-d05b474e2155?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Slide two">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1641337221253-fdc7237f6b61?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Slide three">
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-883" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-883" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>4With captions
carousel-caption adds a heading and text over each slide (hidden on phones).
<div id="carousel-884" class="carousel slide">
<div class="carousel-indicators">
<button type="button" data-ui-target="#carousel-884" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#carousel-884" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#carousel-884" data-ui-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1583454110551-21f2fa2afe61?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Nutrition plans">
<div class="carousel-caption d-none d-md-block">
<h5>Yoga</h5>
<p>Online coaching keeps you on track when you travel.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1554284126-aa88f22d8b74?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Online coaching">
<div class="carousel-caption d-none d-md-block">
<h5>Nutrition plans</h5>
<p>Start in minutes and get help from a real person whenever you need it.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1507398941214-572c25f4b1dc?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Nutrition plans">
<div class="carousel-caption d-none d-md-block">
<h5>Yoga</h5>
<p>Thousands of members already trust us, and we work hard to keep it that way.</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-884" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-884" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>5Crossfade
carousel-fade fades between slides instead of sliding.
<div id="carousel-885" class="carousel slide carousel-fade">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1761839258420-5c3e2f2e2a74?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Fade one">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Fade two">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Fade three">
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-885" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-885" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>6Autoplay
data-ui-ride="carousel" starts cycling on page load; hovering pauses it.
<div id="carousel-886" class="carousel slide" data-ui-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-ui-target="#carousel-886" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#carousel-886" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#carousel-886" data-ui-slide-to="2" aria-label="Slide 3"></button>
<button type="button" data-ui-target="#carousel-886" data-ui-slide-to="3" aria-label="Slide 4"></button>
</div>
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Autoplay one">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1689877020200-403d8542d95d?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Autoplay two">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Autoplay three">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1778828494354-9b717d36dc99?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Autoplay four">
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-886" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-886" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>7Per-slide interval
data-ui-interval on each item sets how long that slide stays (in ms).
<div id="carousel-887" class="carousel slide" data-ui-ride="carousel">
<div class="carousel-inner rounded">
<div class="carousel-item active" data-ui-interval="8000">
<img src="https://images.unsplash.com/photo-1599058917212-d750089bc07e?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Shown for 8 seconds">
<div class="carousel-caption d-none d-md-block">
<p class="mb-0">8 seconds</p>
</div>
</div>
<div class="carousel-item" data-ui-interval="3000">
<img src="https://images.unsplash.com/photo-1689877020200-403d8542d95d?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Shown for 3 seconds">
<div class="carousel-caption d-none d-md-block">
<p class="mb-0">3 seconds</p>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1778828494354-9b717d36dc99?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Default interval">
<div class="carousel-caption d-none d-md-block">
<p class="mb-0">Default 5 seconds</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-887" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-887" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>8Dark variant
data-ui-theme="dark" gives dark controls, indicators and captions for light images.
<div id="carousel-888" class="carousel slide" data-ui-theme="dark">
<div class="carousel-indicators">
<button type="button" data-ui-target="#carousel-888" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#carousel-888" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#carousel-888" data-ui-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner rounded border">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1778828494354-9b717d36dc99?auto=format&fit=crop&w=800&h=800&q=70" class="d-block w-100" alt="Light slide one">
<div class="carousel-caption d-none d-md-block">
<h5>Secure community</h5>
<p>Small group classes mean your coach knows your name and your form.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1574680096145-d05b474e2155?auto=format&fit=crop&w=800&h=800&q=70" class="d-block w-100" alt="Light slide two">
<div class="carousel-caption d-none d-md-block">
<h5>Friendly experience</h5>
<p>Track your progress in the app and see how far you have come.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1641337221253-fdc7237f6b61?auto=format&fit=crop&w=800&h=800&q=70" class="d-block w-100" alt="Light slide three">
<div class="carousel-caption d-none d-md-block">
<h5>Clear release</h5>
<p>We keep things simple, so you can focus on what matters to you.</p>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-888" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-888" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>9Hero banner
Wide slides with left-aligned headline and call to action, shown on all screen sizes.
<div id="hero-889" class="carousel slide carousel-fade ca-hero-car" data-ui-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-ui-target="#hero-889" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#hero-889" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#hero-889" data-ui-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner rounded-3">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1574680096145-d05b474e2155?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Banner 1">
<div class="carousel-caption text-start">
<h3 class="fw-bold">Sweat, breathe, repeat</h3>
<p class="d-none d-sm-block">Clear prices, honest advice and no surprises along the way.</p>
<a href="#" class="btn btn-primary">Get started</a>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1641337221253-fdc7237f6b61?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Banner 2">
<div class="carousel-caption text-start">
<h3 class="fw-bold">Real coaches, real results</h3>
<p class="d-none d-sm-block">We measure success by how many members come back and tell their friends.</p>
<a href="#" class="btn btn-primary">See features</a>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1583454110551-21f2fa2afe61?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Banner 3">
<div class="carousel-caption text-start">
<h3 class="fw-bold">Feel at home in your gym</h3>
<p class="d-none d-sm-block">More than sixty classes a week, from sunrise yoga to late-night spin.</p>
<a href="#" class="btn btn-primary">View pricing</a>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#hero-889" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#hero-889" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>10No touch swiping
data-ui-touch="false" turns off swipe, useful when slides contain draggable content.
<div id="carousel-890" class="carousel slide" data-ui-touch="false">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1574680096145-d05b474e2155?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Map view">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1641337221253-fdc7237f6b61?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Satellite view">
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-890" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-890" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>11Testimonial slider
Text-only slides with customer quotes; dark controls sit on the light panel.
<div id="quotes-891" class="carousel slide bg-light rounded-3 py-4" data-ui-theme="dark" data-ui-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<div class="text-center px-5 mx-auto" style="max-width: 560px;" data-ui-theme="light">
<img src="../assets/img/avatar-12.svg" alt="Ethan Delgado" class="rounded-circle mb-3" width="64" height="64">
<p class="fs-5 fst-italic text-body">“Modern equipment is cleaned, serviced and ready every day.”</p>
<div class="fw-semibold text-body">
Ethan Delgado
</div>
<div class="small text-body-secondary">
Operations Manager
</div>
</div>
</div>
<div class="carousel-item">
<div class="text-center px-5 mx-auto" style="max-width: 560px;" data-ui-theme="light">
<img src="../assets/img/avatar-4.svg" alt="Elena Rossi" class="rounded-circle mb-3" width="64" height="64">
<p class="fs-5 fst-italic text-body">“Pause or change your membership any time, with no long contracts.”</p>
<div class="fw-semibold text-body">
Elena Rossi
</div>
<div class="small text-body-secondary">
Product Designer
</div>
</div>
</div>
<div class="carousel-item">
<div class="text-center px-5 mx-auto" style="max-width: 560px;" data-ui-theme="light">
<img src="../assets/img/avatar-11.svg" alt="Arjun Silva" class="rounded-circle mb-3" width="64" height="64">
<p class="fs-5 fst-italic text-body">“Certified coaches design every session around your level and your goals.”</p>
<div class="fw-semibold text-body">
Arjun Silva
</div>
<div class="small text-body-secondary">
Sales Executive
</div>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#quotes-891" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#quotes-891" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>12Product slider
Several product cards per slide; on phones one card per slide is shown.
<div id="products-892" class="carousel slide ca-car-products" data-ui-theme="dark">
<div class="carousel-inner px-5">
<div class="carousel-item active">
<div class="row row-cols-1 row-cols-sm-3 g-3" data-ui-theme="light">
<div class="col">
<div class="card h-100">
<img src="../assets/img/product-8.svg" class="card-img-top" alt="Sauna session">
<div class="card-body">
<h6 class="card-title mb-1">Sauna session</h6>
<span class="fw-semibold">$16.00</span>
</div>
</div>
</div>
<div class="col d-none d-sm-block">
<div class="card h-100">
<img src="../assets/img/product-2.svg" class="card-img-top" alt="10-class pack">
<div class="card-body">
<h6 class="card-title mb-1">10-class pack</h6>
<span class="fw-semibold">$120.99</span>
</div>
</div>
</div>
<div class="col d-none d-sm-block">
<div class="card h-100">
<img src="../assets/img/product-12.svg" class="card-img-top" alt="Massage">
<div class="card-body">
<h6 class="card-title mb-1">Massage</h6>
<span class="fw-semibold">$76.99</span>
</div>
</div>
</div>
</div>
</div>
<div class="carousel-item">
<div class="row row-cols-1 row-cols-sm-3 g-3" data-ui-theme="light">
<div class="col">
<div class="card h-100">
<img src="../assets/img/product-11.svg" class="card-img-top" alt="Bootcamp">
<div class="card-body">
<h6 class="card-title mb-1">Bootcamp</h6>
<span class="fw-semibold">$125.99</span>
</div>
</div>
</div>
<div class="col d-none d-sm-block">
<div class="card h-100">
<img src="../assets/img/product-10.svg" class="card-img-top" alt="Mobility workshop">
<div class="card-body">
<h6 class="card-title mb-1">Mobility workshop</h6>
<span class="fw-semibold">$35.00</span>
</div>
</div>
</div>
<div class="col d-none d-sm-block">
<div class="card h-100">
<img src="../assets/img/product-4.svg" class="card-img-top" alt="Nutrition guide">
<div class="card-body">
<h6 class="card-title mb-1">Nutrition guide</h6>
<span class="fw-semibold">$29.00</span>
</div>
</div>
</div>
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#products-892" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#products-892" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>13Thumbnail navigation
Image thumbnails below the slides act as indicators, like a product gallery.
<div id="thumbs-893" class="carousel slide">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1599058917212-d750089bc07e?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Gallery photo 1">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Gallery photo 2">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1689877020200-403d8542d95d?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Gallery photo 3">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Gallery photo 4">
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#thumbs-893" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#thumbs-893" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
<div class="carousel-indicators ca-thumbs position-static m-0 mt-2 justify-content-start gap-2">
<button type="button" data-ui-target="#thumbs-893" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Photo 1"><img src="https://images.unsplash.com/photo-1599058917212-d750089bc07e?auto=format&fit=crop&w=1200&h=800&q=70" alt="" class="rounded"></button>
<button type="button" data-ui-target="#thumbs-893" data-ui-slide-to="1" aria-label="Photo 2"><img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1200&h=800&q=70" alt="" class="rounded"></button>
<button type="button" data-ui-target="#thumbs-893" data-ui-slide-to="2" aria-label="Photo 3"><img src="https://images.unsplash.com/photo-1689877020200-403d8542d95d?auto=format&fit=crop&w=1200&h=800&q=70" alt="" class="rounded"></button>
<button type="button" data-ui-target="#thumbs-893" data-ui-slide-to="3" aria-label="Photo 4"><img src="https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?auto=format&fit=crop&w=1200&h=800&q=70" alt="" class="rounded"></button>
</div>
</div>14Inside a card
A carousel as the media area of a card, with rounded top corners.
Seoul loft
4.9$119.62 per night
<div class="card overflow-hidden" style="max-width: 24rem;">
<div id="carousel-894" class="carousel slide">
<div class="carousel-indicators">
<button type="button" data-ui-target="#carousel-894" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#carousel-894" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#carousel-894" data-ui-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1583454110551-21f2fa2afe61?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Room photo 1">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1554284126-aa88f22d8b74?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Room photo 2">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1507398941214-572c25f4b1dc?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Room photo 3">
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-894" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-894" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>
<div class="card-body">
<div class="d-flex justify-content-between">
<h5 class="card-title mb-1">Seoul loft</h5>
<span class="small"><i class="bi bi-star-fill" aria-hidden="true"></i> 4.9</span>
</div>
<p class="card-text text-body-secondary small mb-0">$119.62 per night</p>
</div>
</div>15Caption below the image
Text under each image and custom buttons outside the slides, e.g. an onboarding walkthrough.
<div id="carousel-895" class="carousel slide" style="max-width: 560px;">
<div class="carousel-inner">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100 rounded" alt="Step 1">
<div class="pt-3">
<h6 class="mb-1">Step 1: Modern journey</h6>
<p class="small text-body-secondary mb-0">Small group classes mean your coach knows your name and your form.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1599058917212-d750089bc07e?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100 rounded" alt="Step 2">
<div class="pt-3">
<h6 class="mb-1">Step 2: Fast story</h6>
<p class="small text-body-secondary mb-0">Friendly people answer your questions quickly, by phone, chat or email.</p>
</div>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1689877020200-403d8542d95d?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100 rounded" alt="Step 3">
<div class="pt-3">
<h6 class="mb-1">Step 3: Calm experience</h6>
<p class="small text-body-secondary mb-0">Online coaching keeps you on track when you travel.</p>
</div>
</div>
</div>
<div class="d-flex justify-content-end gap-2 mt-2">
<button class="btn btn-outline-secondary btn-sm" type="button" data-ui-target="#carousel-895" data-ui-slide="prev"><i class="bi bi-chevron-left" aria-hidden="true"></i> Back</button>
<button class="btn btn-primary btn-sm" type="button" data-ui-target="#carousel-895" data-ui-slide="next">Next <i class="bi bi-chevron-right" aria-hidden="true"></i></button>
</div>
</div>16Announcement bar
A slim text-only carousel that rotates short announcements.
<div id="ticker-896" class="carousel slide carousel-fade text-bg-dark rounded py-2" data-ui-ride="carousel" data-ui-interval="4000">
<div class="carousel-inner text-center small">
<div class="carousel-item active">
<i class="bi bi-truck" aria-hidden="true"></i> Free shipping on orders over $72.11
</div>
<div class="carousel-item">
<i class="bi bi-gift-fill" aria-hidden="true"></i> New members get 14% off the first order
</div>
<div class="carousel-item">
<i class="bi bi-arrow-return-left" aria-hidden="true"></i> 39-day free returns
</div>
</div>
</div>17Keep playing on hover
data-ui-pause="false" keeps the autoplay running when the pointer is over the slides.
<div id="carousel-897" class="carousel slide" data-ui-ride="carousel" data-ui-pause="false">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1554284126-aa88f22d8b74?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Showreel one">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1507398941214-572c25f4b1dc?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Showreel two">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1517836357463-d25dfeac3438?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Showreel three">
</div>
</div>
</div>18Fixed aspect ratio
A ratio wrapper with object-fit keeps every slide the same 21:9 shape whatever the image size.
<div id="carousel-898" class="carousel slide">
<div class="carousel-indicators">
<button type="button" data-ui-target="#carousel-898" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#carousel-898" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#carousel-898" data-ui-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner rounded-4">
<div class="carousel-item active">
<div class="ratio ratio-21x9">
<img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1200&h=800&q=70" class="object-fit-cover" alt="Cinematic slide 1">
</div>
</div>
<div class="carousel-item">
<div class="ratio ratio-21x9">
<img src="https://images.unsplash.com/photo-1778828494354-9b717d36dc99?auto=format&fit=crop&w=1200&h=800&q=70" class="object-fit-cover" alt="Cinematic slide 2">
</div>
</div>
<div class="carousel-item">
<div class="ratio ratio-21x9">
<img src="https://images.unsplash.com/photo-1583454110551-21f2fa2afe61?auto=format&fit=crop&w=1200&h=800&q=70" class="object-fit-cover" alt="Cinematic slide 3">
</div>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#carousel-898" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#carousel-898" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>19Gallery with counter, no wrap
A position badge on each slide; data-ui-wrap="false" stops at the first and last photo.
<div id="gallery-899" class="carousel slide" data-ui-wrap="false">
<div class="carousel-inner rounded">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1761839258420-5c3e2f2e2a74?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Photo 1"><span class="badge text-bg-dark position-absolute top-0 end-0 m-3">1 / 4</span>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Photo 2"><span class="badge text-bg-dark position-absolute top-0 end-0 m-3">2 / 4</span>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Photo 3"><span class="badge text-bg-dark position-absolute top-0 end-0 m-3">3 / 4</span>
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1574680096145-d05b474e2155?auto=format&fit=crop&w=1200&h=800&q=70" class="d-block w-100" alt="Photo 4"><span class="badge text-bg-dark position-absolute top-0 end-0 m-3">4 / 4</span>
</div>
</div>
<button class="carousel-control-prev" type="button" data-ui-target="#gallery-899" data-ui-slide="prev"> <span class="carousel-control-prev-icon" aria-hidden="true"></span> <span class="visually-hidden">Previous</span> </button>
<button class="carousel-control-next" type="button" data-ui-target="#gallery-899" data-ui-slide="next"> <span class="carousel-control-next-icon" aria-hidden="true"></span> <span class="visually-hidden">Next</span> </button>
</div>20Pill indicators
Custom-styled indicators: the active one stretches into a pill in the theme colour.
<div id="carousel-900" class="carousel slide ca-car-pills" data-ui-ride="carousel">
<div class="carousel-indicators">
<button type="button" data-ui-target="#carousel-900" data-ui-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-ui-target="#carousel-900" data-ui-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-ui-target="#carousel-900" data-ui-slide-to="2" aria-label="Slide 3"></button>
<button type="button" data-ui-target="#carousel-900" data-ui-slide-to="3" aria-label="Slide 4"></button>
</div>
<div class="carousel-inner rounded-3">
<div class="carousel-item active">
<img src="https://images.unsplash.com/photo-1761839258420-5c3e2f2e2a74?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Feature one">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1599058917212-d750089bc07e?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Feature two">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1758875569612-94d5e0f1a35f?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Feature three">
</div>
<div class="carousel-item">
<img src="https://images.unsplash.com/photo-1641337221253-fdc7237f6b61?auto=format&fit=crop&w=1600&h=700&q=70" class="d-block w-100" alt="Feature four">
</div>
</div>
</div>