Carousels

A carousel enables a user to cycle through a queue of related images, cards or other items. The experience is generally more consumable and engaging, and less intimidating, because only one item from the set is in view at a time.

Banner Carousels

Banner carousels are used for displaying a collection of banners or images one at a time through either auto-rotation or user interaction. The order of items should be based on priority, with the most important item in position one or two.

  • Maximum 3 total images in the carousel.
  • Previous/Next arrows are optional.
  • Auto-rotation behavior is optional. Auto-rotation is suspended, until the page is reloaded, when the user interacts with any carousel control.
  • A row of either buttons or carousel indicators, beneath the image area, is recommended to assist the user with understanding how much content is in the collection while also providing a means to cycle the content.
  • Image heights, from one carousel slide to the next, should be consistent to avoid undesired "position jumping" during a slide transition.

See the Banners page for more information about banner creation.

Filmstrip Carousels

Used for a collection of content with varying dimensions, such as multiple product stacks or cards.

Several items are shown at once on larger breakpoints.

UX best practices still recommend a maximum of 8 items in the collection because users generally don't consider options sets larger than this.

If there are more than 8 items in the carousel, display text above the carousel (right-aligned) that indicates the visible set in relation to the total number in the collection (e.g. "Viewing 5-8 of 12").

Touchscreen Interaction

Swipe to the left across the carousel content in order to cycle to the next item/set, and swipe to the right to cycle to the previous item/set.

Do's and Don'ts

Types

Variants

Common Button Labels and Usage

Title case, 2-3 words maximum.
Do not combine actions in a label (exception: "Customize & Buy").
If standard labels don't fit the button's purpose, align label with the task the user is attempting.

Please refer to the Dell Technologies branding website, https://brand.delltechnologies.com/faq/#voice, for further information regarding call-to-action labels and usage.

Button Label:
Corresponding Action:
Add to Cart
Search
Cancel
Save
Edit
Delete
Continue
Next/Previous
Submit
Select
Sign In/Sign Out
View Details
Ok/Cancel
Learn More
Close
Takes users to Cart page, with item added
Used for search buttons
Takes users back to entry point for a task
Used to save an item
Navigates users to change an item
Deletes an item on the page, usually with a verification step
Used as progression
Used as forward and backward navigation (Next is primary, Previous is secondary)
Used to submit a task or info
Used for choosing items in a task flow
Authentication standard, for consistency do not use Log In/Log Out or Signin/Signout
Used instead of “Select” in cases of product details or within learn content
For use in modal verification steps when more specific CTAs will not fit due to space
Used to link users to more learning content or contextual help
Used within modal windows

Banner Carousels

Banner Carousel with Auto-Rotate

<div id="banner-carousel-no-arrows" class="dds__carousel slide" data-ride="dds__carousel" data-interval="5000" data-pause="hover"> <div class="dds__carousel-inner"> <div class="dds__carousel-item dds__active"> <a href="javascript:;"><img class="dds__img-fluid" alt="First slide" src="http://placehold.it/2160x480?text=First+Slide"></a> </div> <div class="dds__carousel-item"> <a href="javascript:;"><img class="dds__img-fluid" alt="Second slide" src="http://placehold.it/2160x480?text=Second+Slide"></a> </div> <div class="dds__carousel-item"> <a href="javascript:;"><img class="dds__img-fluid" alt="Third slide" src="http://placehold.it/2160x480?text=Third+Slide"></a> </div> <div class="dds__carousel-item"> <a href="javascript:;"><img class="dds__img-fluid" alt="Third slide" src="http://placehold.it/2160x480?text=Fourth+Slide"></a> </div> </div> <ol class="dds__carousel-indicators"> <li data-target="#banner-carousel-no-arrows" data-slide-to="0" class="dds__active"></li> <li data-target="#banner-carousel-no-arrows" data-slide-to="1" class=""></li> <li data-target="#banner-carousel-no-arrows" data-slide-to="2" class=""></li> <li data-target="#banner-carousel-no-arrows" data-slide-to="3" class=""></li> </ol>
</div>

Banner Carousel with Buttons

<div id="banner-carousel-with-buttons" class="dds__carousel slide" data-ride="dds__carousel" data-interval="5000" data-pause="hover"> <div class="dds__carousel-inner"> <div class="dds__carousel-item dds__active"> <a href="javascript:;"><img class="dds__img-fluid" alt="First slide" src="http://placehold.it/2160x480?text=First+Slide"></a> </div> <div class="dds__carousel-item"> <a href="javascript:;"><img class="dds__img-fluid" alt="Second slide" src="http://placehold.it/2160x480?text=Second+Slide"></a> </div> <div class="dds__carousel-item"> <a href="javascript:;"><img class="dds__img-fluid" alt="Third slide" src="http://placehold.it/2160x480?text=Third+Slide"></a> </div> <div class="dds__carousel-item"> <a href="javascript:;"><img class="dds__img-fluid" alt="Third slide" src="http://placehold.it/2160x480?text=Fourth+Slide"></a> </div> </div> <ol class="dds__carousel-indicators-btn dds__d-flex"> <li class="dds__flex-column dds__active"> <div class="dds__carousel-arrow-up"></div> <button class="dds__carousel-btn dds__d-none dds__d-lg-inline" data-slide-to="0">This is a button for the First Slide.</button> <button class="dds__carousel-btn dds__d-lg-none" data-slide-to="0">1</button> </li> <li class="dds__flex-column"> <div class="dds__carousel-arrow-up"></div> <button class="dds__carousel-btn dds__d-none dds__d-lg-inline" data-slide-to="1">This is a button for the Two Slide.</button> <button class="dds__carousel-btn dds__d-lg-none" data-slide-to="1">2</button> </li> <li class="dds__flex-column"> <div class="dds__carousel-arrow-up"></div> <button class="dds__carousel-btn dds__d-none dds__d-lg-inline" data-slide-to="2">This is a button for the Third Slide.</button> <button class="dds__carousel-btn dds__d-lg-none" data-slide-to="2">3</button> </li> <li class="dds__flex-column"> <div class="dds__carousel-arrow-up"></div> <button class="dds__carousel-btn dds__d-none dds__d-lg-inline" data-slide-to="3">This is a button for the Fourth Slide.</button> <button class="dds__carousel-btn dds__d-lg-none" data-slide-to="3">4</button> </li> </ol>
</div>

No items found.

Filmstrip Carousel

<div class="dds__col-md-12"> <div class="dds__filmstrip-carousel"> <div class="dds__items-view"><span>Viewing 1-8 of 10 items </span></div> <div class="dds__glide glide--ltr glide--slider" data-toggle="dds__filmstrip-carousel"> <div data-glide-el="track" class="dds__glide__track"> <ul class="dds__glide__slides" style="transition: transform 0ms cubic-bezier(0.165, 0.84, 0.44, 1) 0s; width: 1040px; transform: translate3d(50px, 0px, 0px);"> <button class="dds__filmstrip-container dds__active glide__slide--active" aria-pressed="true" data-filter="dds__filter" data-filter-value="Title 1" style="width: 95px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 1</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 2" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 2</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 3" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 3</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 4" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 4</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 5" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 5</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 6" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 6</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 7" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 7</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 8" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 8</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 9" style="width: 95px; margin-left: 5px; margin-right: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 9</span> </button> <button class="dds__filmstrip-container" aria-pressed="false" data-filter="dds__filter" data-filter-value="Title 10" style="width: 95px; margin-left: 5px;"> <img class="dds__container-image" src="https://images-na.ssl-images-amazon.com/images/I/41R3dDegcDL._SY679_.jpg" alt="" aria-hidden="true"> <span class="dds__container-title dds__btn-link">Title 10</span> </button> </ul> </div> <div class="dds__glide__arrows" data-glide-el="controls"> <button class="dds__icons dds__chevron-left" data-glide-dir="<" style="display: none;"></button> <button class="dds__icons dds__chevron-right" data-glide-dir=">" style="display: block;"></button> </div> </div> </div> </div>

No items found.

Carousel content most often consists of banners, cards and product stacks.

The W3C Web Accessibility Initiative (WAI) develops standards and support materials to help you understand and implement accessibility.

Please follow the best practices for carousels from WAI-ARIA authoring practices 1.1.

You may refer to this example of an auto-rotating image carousel from WAI-ARIA practices 1.1.

You may also refer to these tutorials for carousels from Web Accessibility Tutorials.