Carousel/carousel-standard-

PreviousNext

A carousel/carousel-standard- example

Docs
shadcnblocksblock

Preview

Loading preview…
code/example/carousel/carousel-standard-4.tsx
import { faker } from "@faker-js/faker";

import { Button } from "@/components/ui/button";
import {
  Carousel,
  CarouselContent,
  CarouselItem,
  CarouselNext,
  CarouselPrevious,
} from "@/components/ui/carousel";

export const title = "Hero Carousel";

const slides = Array.from({ length: 3 }, () => ({
  id: faker.string.uuid(),
  title: faker.company.catchPhrase(),
  description: faker.lorem.sentence(),
  cta: faker.helpers.arrayElement([
    "Learn More",
    "Get Started",
    "Shop Now",
    "Discover",
  ]),
}));

const Example = () => (
  <div className="mx-auto w-full max-w-2xl">
    <Carousel>
      <CarouselContent>
        {slides.map((slide) => (
          <CarouselItem key={slide.id}>
            <div className="relative aspect-[16/9] overflow-hidden rounded-lg bg-muted">
              <div className="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent" />
              <div className="absolute inset-0 flex flex-col items-center justify-center p-8 text-center text-white">
                <h2 className="mb-2 text-3xl font-bold">{slide.title}</h2>
                <p className="mb-6 max-w-md text-sm opacity-90">
                  {slide.description}
                </p>
                <Button variant="secondary">{slide.cta}</Button>
              </div>
            </div>
          </CarouselItem>
        ))}
      </CarouselContent>
      <CarouselPrevious className="left-4" />
      <CarouselNext className="right-4" />
    </Carousel>
  </div>
);

export default Example;

Installation

npx shadcn@latest add @shadcnblocks/carousel-carousel-standard-4

Usage

import { CarouselCarouselStandard4 } from "@/components/carousel-carousel-standard-4"
<CarouselCarouselStandard4 />