---
title: Carousel
description: A slideshow component for cycling through elements—images or slides of text—like a carousel.
toc: true
---
## How it works
- The carousel is a slideshow for cycling through a series of content, built with CSS 3D transforms and a bit of JavaScript. It works with a series of images, text, or custom markup. It also includes support for previous/next controls and indicators.
- For performance reasons, **carousels must be manually initialized** using the [carousel constructor method](#methods). Without initialization, some of the event listeners (specifically, the events needed touch/swipe support) will not be registered until a user has explicitly activated a control or indicator.
The only exception are [autoplaying carousels](#autoplaying-carousels) with the `data-bs-ride="carousel"` attribute as these are initialized automatically on page load. If you’re using autoplaying carousels with the data attribute, **don’t explicitly initialize the same carousels with the constructor method.**
- Nested carousels are not supported. You should also be aware that carousels in general can often cause usability and accessibility challenges.
## Basic examples
Here is a basic example of a carousel with three slides. Note the previous/next controls. We recommend using `