Preview Card

Displays a compact, visually appealing preview of content.

import Link from "next/link";
 
import { cn } from "@/lib/utils";
import {
  Avatar,
  AvatarFallback,
  AvatarImage,
} from "@/components/ui/avatar";
import { Button, buttonVariants } from "@/components/ui/button";
import {
  PreviewCard,
  PreviewCardContent,
  PreviewCardTrigger,
} from "@/components/ui/preview-card";
 
export function PreviewCardDemo() {
  return (
    <PreviewCard>
      <PreviewCardTrigger
        render={
          <Button variant="link" className="p-0">
            @Aeonzz
          </Button>
        }
      />
      <PreviewCardContent className="flex w-80 items-start gap-3">
        <Avatar className="size-10">
          <AvatarImage src="https://github.com/aeonzz.png" alt="@aeonzz" />
          <AvatarFallback>AE</AvatarFallback>
        </Avatar>
        <div className="flex w-full flex-col gap-0.5">
          <p className="text-sm font-semibold">@Aeonzz</p>
          <p className="text-sm">Innovating in reverse.</p>
          <Link
            className={cn(
              buttonVariants({ variant: "secondary", size: "sm" }),
              "mt-2"
            )}
            href="https://github.com/aeonzz"
          >
            Follow
          </Link>
        </div>
      </PreviewCardContent>
    </PreviewCard>
  );
}

Installation

npx shadcn@latest add "https://eo-n.vercel.app/r/preview-card"

Usage

Import all parts and piece them together.

import {
  PreviewCard,
  PreviewCardContent,
  PreviewCardTrigger,
} from "@/components/ui/preview-card";
<PreviewCard>
  <PreviewCardTrigger>Hover</PreviewCardTrigger>
  <PreviewCardContent>Innovating in reverse.</PreviewCardContent>
</PreviewCard>

On this page