2.21.0
A 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
|
|