A file card with paper sheets and tilted profile cards behind it that rise in on enter and fan out on hover.
Set your access key from API keys as NEXTUI_TOKEN in .env.local and add the @nextui namespace below to components.json once. Then every item installs by name. Each install counts as a copy on a free account.
$pnpm dlx shadcn@latest add @nextui/pdf-stack
1{2"registries": {3"@nextui": {4"url": "https://nextui.dev/r/{name}.json",5"headers": { "Authorization": "Bearer ${NEXTUI_TOKEN}" }6}7}8}
1"use client";23import { AtSign, FileSpreadsheet, Globe } from "lucide-react";4import { SmartPdfStack } from "@/components/nextui/pdf-stack";56export function Example() {7return (8<SmartPdfStack9title="Shared report"10description="Q3 numbers, ready to discuss"11icon={FileSpreadsheet}12profiles={[13{14name: "Mia Chen",15role: "Finance Lead",16bio: "Owns the quarterly report and answers questions in the doc.",17initials: "MC",18tone: "from-rose-400 to-rose-700",19links: [{ icon: Globe, label: "mia.finance" }],20},21{22name: "Sam Ortiz",23role: "Analyst",24bio: "Builds the charts and keeps the numbers up to date.",25initials: "SO",26tone: "from-sky-400 to-sky-700",27links: [{ icon: AtSign, label: "@sam.ortiz" }],28},29]}30onClick={() => console.log("open report")}31/>32);33}
| Prop | Type | Default | Description |
|---|---|---|---|
| title | string | "New Smart PDF" | Heading on the front card |
| description | string | "Share your files and analyze" | Text under the heading |
| icon | LucideIcon | FileText | Icon in the round badge |
| profiles | SmartPdfProfile[] | 2 sample profiles | Profile cards on the right (first two shown): name, role, bio, initials, avatar gradient and links |
| onClick | () => void | – | Called when the card is clicked |
| className | string | – | Extra class on the root |
Sign in to see the code
Preview it freely. A free account copies code and prompts a few times a day.