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>