2.21.0A web-component powered carousel component for cycling through a series of content such as images, text, or cards.
The <bolt-carousel> provides all the basic functionality expected with a modern carousel with a sliding effect, left/right arrow buttons, and page dots. The user can move between each carousel slide with touch, the mouse, the keyboard, or a trackpad.
Under the hood, the <bolt-carousel> component uses the excellent Swiper library to provide top-notice mobile, responsive, and touch support.
yarn add @bolt/components-carousel
Via Web Component
<bolt-carousel>
  <bolt-carousel-slide>
    Slide 1
  </bolt-carousel-slide>
  <bolt-carousel-slide>
    Slide 2
  </bolt-carousel-slide>
  <bolt-carousel-slide>
    Slide 3
  </bolt-carousel-slide>
</bolt-carousel>
    
Via Twig
{% include "@bolt-components-carousel/carousel.twig" with {
  slides: [
    'Slide 1',
    'Slide 2',
    'Slide 3',
  ]
} only %}
    The <bolt-carousel> component is most appropriate when:
Note: when assigning component props as HTML attributes on a web component, make sure to use kebab-case.
| Prop Name | Description | Type | Default Value | Option(s) | 
|---|---|---|---|---|
| attributes |        A Drupal attributes object. Used to apply with extra HTML attributes to the outer <bolt-carousel> tag.  | 
    
            object
      
      
     | — |       
  | 
  
| slides |        Array of content to include in the carousel. Note: each slide gets wrapped with a   | 
    
            array
      
      
     | — |       
  | 
  
| slides_per_view |        Controls the number of slides to be shown at once.  | 
    
            string
      
      
     | 
              1
           | 
    
          
  | 
  
| slides_per_group |        Controls the number of slides to be swiped at once.  | 
    
            string
      
      
     | 
              auto
           | 
    
          
  | 
  
| space_between |        Controls the horizontal spacing between each slide.  | 
    
            string
      
      
     | 
              medium
           | 
    
          
  | 
  
| nav_button_position |        Positions the previous and next buttons to either inside or outside of the carousel container.  | 
    
            string
      
      
     | 
              inside
           | 
    
          
  | 
  
| overflow |        Makes overflowing carousel slides visible.  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| no_nav_buttons |        Visually hide the previoius and next nav buttons.  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| autoplay |        Allows the carousel to automatically rotate through its slides until the user interacts with it.  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| free_scroll |        Enables content to be freely scrolled and flicked without snapping to an end position. Automatically switches off the pagination and switches on the scrollbar.  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| prev_slide_message |        Accessible label for previous button.  | 
    
            string
      
      
     | 
              Previous slide
           | 
    
          
  | 
  
| next_slide_message |        Accessible label for next button.  | 
    
            string
      
      
     | 
              Next slide
           | 
    
          
  | 
  
| first_slide_message |        Accessible label for the previous button when the carousel is on the first slide.  | 
    
            string
      
      
     | 
              This is the first slide
           | 
    
          
  | 
  
| last_slide_message |        Accessible label for previous button when the carousel is on the last slide.  | 
    
            string
      
      
     | 
              This is the last slide
           | 
    
          
  | 
  
| pagination_bullet_message |        Accessible label for a single pagination bullet.  | 
    
            string
      
      
     | 
              Go to slide {{index}}
           | 
    
          
  | 
  
| max_slides_per_view |         - [1 ~ 3]
   Limits the maximum number of slides that can display at any screen size. Combine this with the   | 
    
            integer
      
      
     | 
              3
           | 
    
          
  | 
  
| no_pagination |        Removes the pagination. Not recommended unless being used with an alternative UI to display carousel progress (such as custom thumbnail previews).  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| no_scrollbar |        Removes the scrollbar. Not recommended unless being used with an alternative UI to display carousel progress (such as custom thumbnail previews).  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| no_min_width |        Disables the slide min width logic. Typically not recommended unless being used with an alternative UI to display carousel progress (such as custom thumbnail previews).  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| mode |        Switches between the default carousel mode and the image gallery mode.  | 
    
            string
      
      
     | 
              default
           | 
    
          
  | 
  
| slide_to_clicked_slide |        Set to true and click on any slide will produce transition to this slide.  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  | 
  
| loop |        Enables continuous loop mode. Note: the loop option is temporarily disabled and will be re-enabled in a future Bolt release.  | 
    
            boolean
      
      
     | 
              false
           | 
    
          
  |