carousel

carousel docs

Carousel

A web-component powered carousel component for cycling through a series of content such as images, text, or cards.

Published Last updated: 3.0.0 Change log Github NPM
Twig Usage
  {% include "@bolt-components-carousel/carousel.twig" with {
  slides: [
    "Slide 1",
    "Slide 2",
    "Slide 3",
  ]
} only %}
Schema
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 <bolt-carousel-slide> automatically.

array —
  • —
slides_per_view

Controls the number of slides to be shown at once.

string 1
  • auto , 1 , 2 , 3
slides_per_group

Controls the number of slides to be swiped at once.

string auto
  • auto or 1
space_between

Controls the horizontal spacing between each slide.

string medium
  • none , small , medium
nav_button_position

Positions the previous and next buttons to either inside or outside of the carousel container.

string inside
  • inside or outside
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}}
  • —
Advanced Schema Options
max_slides_per_view
- [1 ~ 3]

Limits the maximum number of slides that can display at any screen size. Combine this with the slidesPerView option to get the benefits of automatically adjusting the number of slides displayed at different screen sizes while putting a max limit of how many slides display at once.

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
  • default , gallery , gallery-thumbnail
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.Not: the loop option is temporarily disabled and will be re-enabled in a future Bolt release.

boolean false
  • —
Install Install
  npm install @bolt/components-carousel
Dependencies @bolt/components-button @bolt/core-v3.x @bolt/lazy-queue swiper

carousel

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

carousel nav button position variations

Nav Button Position: Inside

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

Nav Button Position: Outside

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

carousel slides per view variations

Slides Per View: Auto

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

Slides Per View: 1

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

Slides Per View: 2

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

Slides Per View: 3

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

carousel autoplay variations

Autoplay: true

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

Autoplay: false

Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Previous Next

carousel basic variations

Basic Usage

When using the basic carousel component, it is recommended to pass the same type of content for each slide of the carousel, and make sure each piece of content have similar dimensions.

A carousel of bands

Band slide 1
Band slide 2
Band slide 3
Band slide 4
Previous Next

A carousel of calls to action

This Is an Eyebrow

This Is a Call to Action Headline 1

This Is an Eyebrow

This Is a Call to Action Headline 2

This Is an Eyebrow

This Is a Call to Action Headline 3

This Is an Eyebrow

This Is a Call to Action Headline 4

This Is an Eyebrow

This Is a Call to Action Headline 5

Previous Next

A carousel of cards

ImageImage

Slide 1

This is a card

This is a button
ImageImage

Slide 2

This is a card

This is a button
ImageImage

Slide 3

This is a card

This is a button
ImageImage

Slide 4

This is a card

This is a button
Previous Next

A carousel of images

Image caption Image caption
This is caption for image figure slide 1.
Image caption Image caption
This is caption for image figure slide 2.
Previous Next

A carousel of blockquotes

You buy yourself a tape recorder, you just record yourself for a whole day. I think you’re going to be surprised at some of your phrasing.

Michael

There’s always money in the banana stand.

George

I don’t understand the question and I won’t respond to it.

Lucille
Previous Next

carousel advanced variations

Advanced Usage

Use specific combination of props to create different kinds of advanced carousel.

Card Carousel

Previous Next

This card's media has an image carousel

This is a button

Hero Band Carousel

Experience The Best of Both Worlds

Customer engagement meets intelligent automation.

Customer Success

Every enterprise success story starts with the right technology.

Previous Next

carousel with web component

Web Component Usage Bolt carousel is a web component, you can simply use <bolt-carousel> in the markup to make it render. For each slide, you must use <bolt-carousel-slide> to wrap around the slide content.
Slide 1
Slide 2
Slide 3
<bolt-carousel> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-xdark">Slide 1</div> </bolt-carousel-slide> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-dark">Slide 2</div> </bolt-carousel-slide> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-light">Slide 3</div> </bolt-carousel-slide> </bolt-carousel>
Basic Usage The web component has all the options shown in the schema table. You can define each prop within the <bolt-carousel> element. Use unique combinations to customize a carousel to your liking.
Slide 1
Slide 2
Slide 3
Slide 4
<bolt-carousel nav-button-position="inside" slides-per-view=2 loop autoplay> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-xdark">Slide 1</div> </bolt-carousel-slide> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-dark">Slide 2</div> </bolt-carousel-slide> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-light">Slide 3</div> </bolt-carousel-slide> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-xlight">Slide 4</div> </bolt-carousel-slide> </bolt-carousel>
Server-side Rendered Web Components (Experimental) The <bolt-carousel> component, among many other web components in Bolt, will support server-side rendering via the new upcoming {% filter bolt_ssr %} custom Twig filter. Check out the docs on server-side rendering for information!
Slide 1
Slide 2
Slide 3
{% filter bolt_ssr %} <bolt-carousel> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-xdark">Slide 1</div> </bolt-carousel-slide> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-dark">Slide 2</div> </bolt-carousel-slide> <bolt-carousel-slide> <div class="u-bolt-padding-large t-bolt-light">Slide 3</div> </bolt-carousel-slide> </bolt-carousel> {% endfilter %}