Prodular UI

Data display

Carousel

A horizontal slider for a small set of cards or previews, with arrow buttons, dots and keyboard support.

npx prodular-ui add carousel

One at a time

Release notes, one card per slide, with dots for position.

v2.18
Usage based pricing tiers
Bill by API calls, seats or events with graduated tiers and a free allowance.
v2.17
Dunning emails in 9 languages
Failed payment reminders now follow the customer's locale and your brand.
v2.16
Webhook retry dashboard
See every failed delivery, inspect the payload and retry it in one click.
v2.15
Bulk credit notes
Issue credit notes for up to 500 invoices at once from a CSV.

Several per view

Set a basis on CarouselItem and align start to show a row of previews.

Minimal invoice2,410 workspaces
Itemized usage1,182 workspaces
Agency retainer860 workspaces
Annual contract744 workspaces
Marketplace payout391 workspaces
Credit note2,035 workspaces

Anatomy

<Carousel>  <CarouselContent>    <CarouselItem>...</CarouselItem>  </CarouselContent>  <CarouselPrevious />  <CarouselNext />  <CarouselDots /></Carousel>

Guidance

Use it when

  • A short set of optional, browsable items: templates, release notes, onboarding tips.
  • Previews where seeing a few at once is enough.

Avoid

  • Content people must see. Items after the first are easy to miss.
  • More than about ten items. Use a grid or a list.
  • Autoplay. It moves content away while people read.

Rules for AI agents

Published in llms-full.txt and the registry, so coding agents follow them when they build with this component.

  • Always include CarouselPrevious and CarouselNext. They sit outside the content, so leave about 48px of space on each side.
  • Add CarouselDots when there are fewer than ten slides.
  • For several items per view, set className="basis-1/2 sm:basis-1/3" on CarouselItem and opts={{ align: "start" }} on Carousel.
  • Make slides the same height. Use h-full on the slide content.
  • Do not add autoplay plugins unless the user asks for them.

API

Carousel

PropTypeDefaultDescription
optsEmblaOptionsTypeEmbla options such as align and loop.
orientation"horizontal" | "vertical""horizontal"Scroll direction.
setApi(api: CarouselApi) => voidReceives the Embla API for custom controls.

CarouselItem

PropTypeDefaultDescription
classNamestringSet basis-* to show several items per view.

CarouselDots

PropTypeDefaultDescription
classNamestringOne dot per snap point. Hidden when there is only one.