Data Display
Forms
Navigation
Carousel
A carousel with motion and swipe built using Embla.
2
3
4
5
6
import { Card, CardContent } from "@/components/ui/card";
import {
Carousel,
CarouselContent,
CarouselItem,
CarouselNext,
CarouselPrevious,
} from "@/components/ui/carousel";
export function CarouselDemo() {
const items = [1, 2, 3, 4, 5];
return (
<Carousel className="w-full max-w-xs">
<CarouselContent>
{items.map((index) => (
<CarouselItem key={`caroa-${index}`}>
<div className="p-1">
<Card>
<CardContent className="flex aspect-square items-center justify-center p-6">
<span className="font-semibold text-4xl">{index + 1}</span>
</CardContent>
</Card>
</div>
</CarouselItem>
))}
</CarouselContent>
<CarouselPrevious />
<CarouselNext />
</Carousel>
);
}
Installation
pnpm dlx cnippet@latest add carousel
Examples
Fallback Only
2
3
4
5
6
import { Card, CardContent } from "@/components/ui/card";
import {
Carousel,
CarouselContent,
CarouselItem,
CarouselNext,
CarouselPrevious,
} from "@/components/ui/carousel";
export function CarouselSize() {
const items = [1, 2, 3, 4, 5];
return (
<Carousel
className="w-full max-w-sm"
opts={{
align: "start",
}}
>
<CarouselContent>
{items.map((index) => (
<CarouselItem
className="md:basis-1/2 lg:basis-1/3"
key={`caroc-${index}`}
>
<div className="p-1">
<Card>
<CardContent className="flex aspect-square items-center justify-center p-6">
<span className="font-semibold text-3xl">{index + 1}</span>
</CardContent>
</Card>
</div>
</CarouselItem>
))}
</CarouselContent>
<CarouselPrevious />
<CarouselNext />
</Carousel>
);
}
Different Sizes
2
3
4
5
6
import { Card, CardContent } from "@/components/ui/card";
import {
Carousel,
CarouselContent,
CarouselItem,
CarouselNext,
CarouselPrevious,
} from "@/components/ui/carousel";
export function CarouselOrientation() {
const items = [1, 2, 3, 4, 5];
return (
<Carousel
className="w-full max-w-xs"
opts={{
align: "start",
}}
orientation="vertical"
>
<CarouselContent className="-mt-1 h-[200px]">
{items.map((index) => (
<CarouselItem className="pt-1 md:basis-1/2" key={`carob-${index}`}>
<div className="p-1">
<Card>
<CardContent className="flex items-center justify-center p-6">
<span className="font-semibold text-3xl">{index + 1}</span>
</CardContent>
</Card>
</div>
</CarouselItem>
))}
</CarouselContent>
<CarouselPrevious />
<CarouselNext />
</Carousel>
);
}
On This Page