Design System

Carousel dots

The canonical carousel indicator. A row of cream dots; the active one stretches from a 10px circle into a 38px pill (width-eased), with a soft drop-shadow so it reads over photography. First shown in the public “whole starts here” ConversionBand, it is now the single source of truth for the pattern — reused by that band and the auth photo carousel. Reach for it any time slides need progress indicators; never hand-roll bar/dot indicators.

Controlled: pass count, activeIndex, and onSelect(i). The row is keyboard-focusable and exposes role="tablist"/tab with per-dot labels (override via labelFor). Positioning is the caller's job — pass a className (e.g. absolute bottom-left over a frame).

import from @halwel/ui/components/marketing/CarouselDots

Props: count, activeIndex, onSelect, labelFor?, ariaLabel?, className?. Styles: .halwel-carousel-* in packages/ui/styles/marketing.css.

Variants

Three slides (click a dot)
Slide 1
Five slides
Slide 1