Copy to clipboard
Installation
Copy to clipboard
npx bearnie add carousel
npx bearnie add carousel
bunx bearnie add carousel
bunx bearnie add carousel
pnpm dlx bearnie add carousel
pnpm dlx bearnie add carousel
yarn dlx bearnie add carousel
yarn dlx bearnie add carousel
Copy to clipboard
npm install keen-slider
import Carousel from '@/components/ui/carousel/Carousel.astro';
import CarouselContent from '@/components/ui/carousel/CarouselContent.astro';
import CarouselItem from '@/components/ui/carousel/CarouselItem.astro';
import CarouselPrevious from '@/components/ui/carousel/CarouselPrevious.astro';
import CarouselNext from '@/components/ui/carousel/CarouselNext.astro';
import CarouselDots from '@/components/ui/carousel/CarouselDots.astro';
External dependency: This component requires Keen Slider, a lightweight touch slider library.
Usage
import {
Carousel,
CarouselContent,
CarouselItem,
CarouselPrevious,
CarouselNext,
CarouselDots,
} from "@/components/ui/carousel"
<Carousel>
<CarouselContent>
<CarouselItem>Slide 1</CarouselItem>
<CarouselItem>Slide 2</CarouselItem>
<CarouselItem>Slide 3</CarouselItem>
</CarouselContent>
<CarouselPrevious />
<CarouselNext />
</Carousel>
Examples
With dots
Copy to clipboard
Loop
Copy to clipboard
Autoplay
Copy to clipboard
Multiple slides per view
Copy to clipboard
Props
Carousel
| Prop | Type | Default | Description |
|---|---|---|---|
| loop | boolean | false | Enable infinite loop |
| autoplay | boolean | false | Auto-advance slides |
| autoplayDelay | number | 4000 | Delay between slides in ms |
| pauseOnHover | boolean | true | Pause autoplay on hover |
| slidesPerView | number | “auto” | 1 | Slides visible at once |
| spacing | number | 16 | Gap between slides in px |
| orientation | ”horizontal” | “vertical" | "horizontal” | Slide direction |
CarouselDots
| Prop | Type | Default | Description |
|---|---|---|---|
| count | number | required | Number of dots to display |
Accessibility
- Navigation buttons have proper aria-labels
- Dots indicate current slide position
- Touch and swipe gestures supported
- Keyboard navigation supported (arrow keys when focused)