--- layout: docs title: Carousel description: A slideshow component for cycling through elements—images or slides of text—like a carousel. group: components 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. In browsers where the [Page Visibility API](https://www.w3.org/TR/page-visibility/) is supported, the carousel will avoid sliding when the webpage is not visible to the user (such as when the browser tab is inactive, the browser window is minimized, etc.). Please be aware that nested carousels are not supported, and carousels are generally not compliant with accessibility standards. Lastly, if you're building our JS from source, it [requires `util.js`]({{ site.baseurl }}/docs/getting-started/javascript/#util). ## Example Carousels don't automatically normalize slide dimensions. As such, you may need to use additional utilities or custom styles to appropriately size content. While carousels support previous/next controls and indicators, they're not explicitly required. Add and customize as you see fit. Be sure to set a unique id on the `.carousel` for optional controls, especially if you're using multiple carousels on a single page. ### Slides only Here's a carousel with slides only. Note the presence of the `.d-block` and `.img-fluid` on carousel images to prevent browser default image alignment. {% example html %}
{% endexample %} ### With controls Adding in the previous and next controls: {% example html %} {% endexample %} ### With indicators You can also add the indicators to the carousel, alongside the controls, too. {% example html %} {% endexample %} {% callout warning %} #### Initial active element required The `.active` class needs to be added to one of the slides. Otherwise, the carousel will not be visible. {% endcallout %} ### With captions Add captions to your slides easily with the `.carousel-caption` element within any `.carousel-item`. They can be easily hidden on smaller viewports, as shown below, with optional [display utilities]({{ site.baseurl }}/docs/{{ site.docs_version }}/utilities/display/). We hide them initially with `.d-none` and bring them back on medium-sized devices with `.d-md-block`.Name | Type | Default | Description |
---|---|---|---|
interval | number | 5000 | The amount of time to delay between automatically cycling an item. If false, carousel will not automatically cycle. |
keyboard | boolean | true | Whether the carousel should react to keyboard events. |
pause | string | boolean | "hover" | If set to On touch-enabled devices, when set to |
ride | string | false | Autoplays the carousel after the user manually cycles the first item. If "carousel", autoplays the carousel on load. |
wrap | boolean | true | Whether the carousel should cycle continuously or have hard stops. |
Event Type | Description |
---|---|
slide.bs.carousel | This event fires immediately when the slide instance method is invoked. |
slid.bs.carousel | This event is fired when the carousel has completed its slide transition. |