Carousel

React Bootstrap 5 Carousel component

Responsive Carousel built with Bootstrap 5, React 17 and Material Design 2.0. Slider examples with indicators, captions, image and multiple item carousel.

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

Note: Read the API tab to find all available options and advanced customization


Basic example

        
            
          import React from 'react';
          import { 
            MDBCarousel, 
            MDBCarouselItem, 
          } from 'mdb-react-ui-kit';
  
          export default function App() {
            return (
              <MDBCarousel showIndicators showControls fade>
                <MDBCarouselItem
                  className='w-100 d-block'
                  itemId={1}
                  src='https://mdbootstrap.com/img/Photos/Slides/img%20(15).jpg'
                  alt='...'
                >
                  <h5>First slide label</h5>
                  <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
                </MDBCarouselItem>
  
                <MDBCarouselItem
                  className='w-100 d-block'
                  itemId={2}
                  src='https://mdbootstrap.com/img/Photos/Slides/img%20(22).jpg'
                  alt='...'
                >
                  <h5>Second slide label</h5>
                  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
                </MDBCarouselItem>
  
                <MDBCarouselItem
                  className='w-100 d-block'
                  itemId={3}
                  src='https://mdbootstrap.com/img/Photos/Slides/img%20(23).jpg'
                  alt='...'
                >
                  <h5>Third slide label</h5>
                  <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
                </MDBCarouselItem>
              </MDBCarousel>
            );
          }
        
        
    

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 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.).

Note: Please be aware that nested carousels are not supported, and carousels are generally not compliant with accessibility standards.

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.

The .active class needs to be added to one of the slides otherwise the carousel will not be visible. Also be sure to set a unique id on the MDBCarouselItem.


Variations

Slides only

Here’s a carousel with slides only.

        
            
            import React from 'react';
            import { 
              MDBCarousel, 
              MDBCarouselItem, 
            } from 'mdb-react-ui-kit';
    
            export default function App() {
              return (
                <MDBCarousel>
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={1}
                    src='https://mdbootstrap.com/img/new/slides/041.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={2}
                    src='https://mdbootstrap.com/img/new/slides/042.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={3}
                    src='https://mdbootstrap.com/img/new/slides/043.jpg'
                    alt='...'
                  />
                </MDBCarousel>
              );
            }
     
        
    

With controls

Adding in the previous and next controls:

        
            
            import React from 'react';
            import { 
              MDBCarousel, 
              MDBCarouselItem, 
            } from 'mdb-react-ui-kit';
    
            export default function App() {
              return (
                <MDBCarousel showControls>
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={1}
                    src='https://mdbootstrap.com/img/new/slides/041.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={2}
                    src='https://mdbootstrap.com/img/new/slides/042.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={3}
                    src='https://mdbootstrap.com/img/new/slides/043.jpg'
                    alt='...'
                  />
                </MDBCarousel>
              );
            }
          
        
    

With indicators

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

        
            
            import React from 'react';
            import { 
              MDBCarousel, 
              MDBCarouselItem, 
            } from 'mdb-react-ui-kit';
    
            export default function App() {
              return (
                <MDBCarousel showControls showIndicators>
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={1}
                    src='https://mdbootstrap.com/img/new/slides/041.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={2}
                    src='https://mdbootstrap.com/img/new/slides/042.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={3}
                    src='https://mdbootstrap.com/img/new/slides/043.jpg'
                    alt='...'
                  />
                </MDBCarousel>
              );
            }
     
        
    

With captions

Add captions to your slides easily with the MDBCarouselCaption element within any MDBCarouselItem. They can be easily hidden on smaller viewports, as shown below, with optional display utilities. We hide them initially with .d-none and bring them back on medium-sized devices with .d-md-block.

        
            
            import React from 'react';
            import { 
              MDBCarousel,
              MDBCarouselItem, 
            } from 'mdb-react-ui-kit';
    
            export default function App() {
              return (
                <MDBCarousel showControls showIndicators>
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={1}
                    src='https://mdbootstrap.com/img/new/slides/041.jpg'
                    alt='...'
                  >
                    <h5>First slide label</h5>
                    <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
                  </MDBCarouselItem>
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={2}
                    src='https://mdbootstrap.com/img/new/slides/042.jpg'
                    alt='...'
                  >
                    <h5>Second slide label</h5>
                    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
                  </MDBCarouselItem>
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={3}
                    src='https://mdbootstrap.com/img/new/slides/043.jpg'
                    alt='...'
                  >
                    <h5>Third slide label</h5>
                    <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
                  </MDBCarouselItem>
                </MDBCarousel>
              );
            }
     
        
    

Crossfade

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

        
            
            import React from 'react';
            import { 
              MDBCarousel, 
              MDBCarouselItem, 
            } from 'mdb-react-ui-kit';
    
            export default function App() {
              return (
                <MDBCarousel showControls fade>
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={1}
                    src='https://mdbootstrap.com/img/new/slides/041.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={2}
                    src='https://mdbootstrap.com/img/new/slides/042.jpg'
                    alt='...'
                  />
                  <MDBCarouselItem
                    className='w-100 d-block'
                    itemId={3}
                    src='https://mdbootstrap.com/img/new/slides/043.jpg'
                    alt='...'
                  />
                </MDBCarousel>
              );
            }
     
        
    

Disable touch swiping

Swiping left/right on touchscreen devices can be disabled by setting the touch property to false.

        
            
            import React from 'react';
            import { 
              MDBCarousel, 
              MDBCarouselInner, 
              MDBCarouselItem, 
              MDBCarouselElement, 
            } from 'mdb-react-ui-kit';
    
            export default function App() {
              return (
                <MDBCarousel showControls touch={false}>
                  <MDBCarouselInner>
                    <MDBCarouselItem className='active'>
                      <MDBCarouselElement src='https://mdbootstrap.com/img/new/slides/041.webp' alt='...' />
                    </MDBCarouselItem>
                    <MDBCarouselItem>
                      <MDBCarouselElement src='https://mdbootstrap.com/img/new/slides/042.webp' alt='...' />
                    </MDBCarouselItem>
                    <MDBCarouselItem>
                      <MDBCarouselElement src='https://mdbootstrap.com/img/new/slides/043.webp' alt='...' />
                    </MDBCarouselItem>
                  </MDBCarouselInner>
                </MDBCarousel>
              );
            }
          
        
    

Material style

If you want to make your carousel look more "material" use the rounded-* and shadow-* classes to add rounded corners and a shadows.

        
            
            import React from 'react';
            import { 
              MDBCarousel, 
              MDBCarouselInner, 
              MDBCarouselItem, 
              MDBCarouselElement, 
            } from 'mdb-react-ui-kit';
    
            export default function App() {
              return (
                <MDBCarousel showControls>
                  <MDBCarouselInner className="rounded-5 shadow-4-strong">
                    <MDBCarouselItem className='active'>
                      <MDBCarouselElement src='https://mdbootstrap.com/img/new/slides/041.webp' alt='...' />
                    </MDBCarouselItem>
                    <MDBCarouselItem>
                      <MDBCarouselElement src='https://mdbootstrap.com/img/new/slides/042.webp' alt='...' />
                    </MDBCarouselItem>
                    <MDBCarouselItem>
                      <MDBCarouselElement src='https://mdbootstrap.com/img/new/slides/043.webp' alt='...' />
                    </MDBCarouselItem>
                  </MDBCarouselInner>
                </MDBCarousel>
              );
            }
          
        
    

Dark variant

Add dark property to the MDBCarousel for darker controls, indicators, and captions.

        
            
          import React from 'react';
          import { 
            MDBCarousel, 
            MDBCarouselItem, 
          } from 'mdb-react-ui-kit';
  
          export default function App() {
            return (
              <MDBCarousel showControls showIndicators dark fade>
                <MDBCarouselItem
                  className='w-100 d-block'
                  itemId={1}
                  src='https://mdbootstrap.com/img/Photos/Slides/img%20(19).jpg'
                  alt='...'
                >
                  <h5>First slide label</h5>
                  <p>Nulla vitae elit libero, a pharetra augue mollis interdum.</p>
                </MDBCarouselItem>
                <MDBCarouselItem
                  className='w-100 d-block'
                  itemId={2}
                  src='https://mdbootstrap.com/img/Photos/Slides/img%20(35).jpg'
                  alt='...'
                >
                  <h5>Second slide label</h5>
                  <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
                </MDBCarouselItem>
  
                <MDBCarouselItem
                  className='w-100 d-block'
                  itemId={3}
                  src='https://mdbootstrap.com/img/Photos/Slides/img%20(40).jpg'
                  alt='...'
                >
                  <h5>Third slide label</h5>
                  <p>Praesent commodo cursus magna, vel scelerisque nisl consectetur.</p>
                </MDBCarouselItem>
              </MDBCarousel>
            );
          }
     
        
    


Carousel - API


Import

        
            
        import { 
          MDBCarousel, 
          MDBCarouselItem, 
        } from 'mdb-react-ui-kit';
        
        
    

Properties


Events