Brand Design System

Slideshow / Carousel

Image slideshow/carousel element for displaying multiple images with thumbnail navigation.

Live Preview

Slide 1
Slide 2
Slide 3
Slide 4

Code

1<div class="slideshow" role="region" aria-label="Image carousel">
2 <div class="slideshow__viewport">
3 <div class="slideshow__track" style="transform: translateX(-0%)">
4 <div class="slideshow__slide">
5 <img src="/slide-1.jpg" alt="Slide 1" />
6 </div>
7 <div class="slideshow__slide">
8 <img src="/slide-2.jpg" alt="Slide 2" />
9 </div>
10 <div class="slideshow__slide">
11 <img src="/slide-3.jpg" alt="Slide 3" />
12 </div>
13 </div>
14 </div>
15
16 <!-- Navigation Arrows -->
17 <button class="slideshow__prev" aria-label="Previous slide">
18 <svg viewBox="0 0 24 24"><path d="M15 19l-7-7 7-7" /></svg>
19 </button>
20 <button class="slideshow__next" aria-label="Next slide">
21 <svg viewBox="0 0 24 24"><path d="M9 5l7 7-7 7" /></svg>
22 </button>
23
24 <!-- Pagination Dots -->
25 <div class="slideshow__dots">
26 <button class="slideshow__dot slideshow__dot--active" aria-label="Go to slide 1"></button>
27 <button class="slideshow__dot" aria-label="Go to slide 2"></button>
28 <button class="slideshow__dot" aria-label="Go to slide 3"></button>
29 </div>
30</div>

Brand Properties

Carousel Container

PropertyTypeBrand DefaultHoB ValueTAE Value
Margins TopInput (px)202020
Margins RightInput (px)000
Margins BottomInput (px)202020
Margins LeftInput (px)000
PaddingInput (px)000
Max WidthInput (px)500500500
Image source 1Text input(URL)(URL)(URL)
Image source 2Text input(URL)(URL)(URL)
Image source 3Text input(URL)(URL)(URL)
Image source 4Text input(URL)(URL)(URL)
Image source 5Text input(URL)(URL)(URL)
Image source 6Text input(URL)(URL)(URL)
Image source 7Text input(URL)(URL)(URL)
Image source 8Text input(URL)(URL)(URL)
Image source 9Text input(URL)(URL)(URL)
Image source 10Text input(URL)(URL)(URL)

Main Image

PropertyTypeBrand DefaultHoB ValueTAE Value
Aspect RatioToggleOriginalOriginalOriginal
Image WidthSlider500 px500 px500 px
Image Position9-position gridcentercentercenter
Border StyleDropdownnonenonenone
OpacitySlider100%100%100%
ShadowToggleOffOffOff

Image List (Thumbnails)

PropertyTypeBrand DefaultHoB ValueTAE Value
Image Position9-position gridcentercentercenter
Margins TopInput (px)000
Margins RightInput (px)101010
Margins BottomInput (px)101010
Margins LeftInput (px)000
PaddingInput (px)000
OpacitySlider100%100%100%
ShadowToggleOffOffOff

Accessibility

  • Use role="region" with aria-label on the container
  • Navigation buttons need descriptive aria-label attributes
  • Include aria-live="polite" for auto-playing carousels
  • Provide pause controls for auto-playing content
  • Ensure all images have meaningful alt text
  • Support keyboard navigation (arrow keys, tab)
  • Thumbnails should indicate current selection (aria-current)

Do's and Don'ts

Do

  • Provide manual navigation controls
  • Include pause functionality for auto-play
  • Optimize images for fast loading
  • Use swipe gestures on touch devices
  • Show clear position indicators

Don't

  • Auto-play with no way to stop
  • Use very fast auto-advance speeds
  • Hide critical information in carousels
  • Create carousels with too many slides
  • Use carousels for the only way to access content

Unmapped Brand Values

The following brand-specific design tokens are available but not directly mapped to CRAFT carousel properties:

TokenHoB ValueTAE Value
Border Radius (sm)4px4px
Border Radius (md)8px8px
Border Radius (lg)12px12px
Shadow (sm)AvailableAvailable
Shadow (md)AvailableAvailable
Primary Color--
Background Color--
Surface Color--

Related Elements

  • Image - Single image display
  • Video - Video player element