Atomx Docs
Components

Carousel

A touch-friendly, accessible carousel built on Embla Carousel with previous/next controls and keyboard support.

Install

npx shadcn@latest add https://atomx.acau.net/r/carousel.json

Usage

Carousel wraps Embla Carousel's useEmblaCarousel hook. Place CarouselContent and any number of CarouselItem children inside it. Add CarouselPrevious and CarouselNext for navigation buttons — these are positioned absolutely, so the parent needs enough horizontal padding.

<Carousel>
  <CarouselContent>
    <CarouselItem>Slide 1</CarouselItem>
    <CarouselItem>Slide 2</CarouselItem>
    <CarouselItem>Slide 3</CarouselItem>
  </CarouselContent>
  <CarouselPrevious />
  <CarouselNext />
</Carousel>

Preview

Slide 1
Slide 2
Slide 3
Slide 4

Props

Carousel extends React.HTMLAttributes<HTMLDivElement>.

PropTypeNotes
orientation"horizontal" | "vertical"Scroll axis. Defaults to "horizontal".
optsEmblaOptionsTypePassed directly to useEmblaCarousel.
pluginsEmblaPluginType[]Embla plugins (e.g. Autoplay).
setApi(api) => voidReceive the Embla API instance for programmatic control.

CarouselPrevious and CarouselNext extend Button props (variant, size, className).