Carousel

A slideshow component for cycling through elements—images or slides of text—like a carousel.

Slides only

Here’s a carousel with slides only. Note the presence of the .d-block and .w-100 on carousel images to prevent browser default image alignment.

<Carousel controls={false} indicators={false} >
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="First slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Second slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Third slide"/>
</Carousel.Item>
</Carousel>

With Control

Adding in the previous and next controls:

<Carousel indicators={false}>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="First slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Second slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Third slide"/>
</Carousel.Item>
</Carousel>

With indicators

You can also add the indicators to the carousel, alongside the controls, too.

<Carousel indicators>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="First slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Second slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Third slide"/>
</Carousel.Item>
</Carousel>

With caption

Add captions to your slides easily with the <Carousel.Caption> within any <Carousel.Item>.

function ControlledCarousel() {
const [index, setIndex] = useState(0);
const handleSelect = (selectedIndex, e) => {
setIndex(selectedIndex);
};
return (
<Carousel activeIndex={index} onSelect={handleSelect}>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="First slide"/>
<Carousel.Caption>
<h3 className="text-white" >First slide label</h3>
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
</Carousel.Caption>
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Second slide" />
<Carousel.Caption>
<h3 className="text-white" >Second slide label</h3>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</Carousel.Caption>
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Third slide" />
<Carousel.Caption>
<h3 className="text-white" >Third slide label</h3>
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
</Carousel.Caption>
</Carousel.Item>
</Carousel>
)
}
render(<ControlledCarousel />);

Crossfade

Add the fade prop to your carousel to animate slides with a fade transition instead of a slide.

<Carousel fade indicators={false}>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="First slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Second slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Third slide"/>
</Carousel.Item>
</Carousel>

Individual

You can specify individual intervals for each carousel item via the interval prop.

<Carousel indicators={false}>
<Carousel.Item interval={1000}>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="First slide" />
</Carousel.Item>
<Carousel.Item interval={500}>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Second slide" />
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Third slide" />
</Carousel.Item>
</Carousel>

Dark Variant

Add variant="dark" to the Carousel for darker controls, indicators, and captions.

<Carousel variant="dark">
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="First slide" />
<Carousel.Caption>
<h5>First slide label</h5>
<p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
</Carousel.Caption>
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Second slide"/>
<Carousel.Caption>
<h5>Second slide label</h5>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
</Carousel.Caption>
</Carousel.Item>
<Carousel.Item>
<Image className="d-block w-100" src="https://fakeimg.pl/1140x350/?text=Image%20Placeholder" alt="Third slide"/>
<Carousel.Caption>
<h5>Third slide label</h5>
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
</Carousel.Caption>
</Carousel.Item>
</Carousel>