@ui-registries/pdf

UI components

Copy-paste PDF components and blocks, installed with the shadcn CLI.

The registry works like shadcn/ui, for PDFs. Components are not a dependency: the shadcn CLI copies their source into your project, and you own and edit the code.

  • @ui-registries/pdf (npm) provides the primitives: Block, Text, Page, the Tailwind engine, fonts.
  • The registry provides components (Table, Card, Badge…) and complete blocks (Invoice) built on top of them.

Installation

Your project needs a components.json (created by npx shadcn init). Then add any item by URL:

Terminal
npx shadcn add https://ui-registry.com/r/pdf/invoice.json

The CLI installs @ui-registries/pdf and the components the item depends on.

With a namespace

Register the namespace once in your components.json:

components.json
{  "registries": {    "@pdf": "https://ui-registry.com/r/pdf/{name}.json"  }}

Then add items by name:

Terminal
npx shadcn add @pdf/invoice @pdf/table

Where files go

PDF components are installed in components/pdf/, not components/ui/, so they never overwrite the HTML shadcn components with the same name (card, table, badge…).

text
components/├── ui/          ← your HTML shadcn components│   └── card.tsx└── pdf/         ← PDF components from this registry    ├── card.tsx    ├── table.tsx    └── invoice.tsx

Theming

Components only use semantic colors (bg-primary, text-muted-foreground, border-border…). Pass your theme to <Document theme> — or to the theme prop of a block — to match your brand. See Theming.

Available components

ComponentDescription
HeadingDocument headings (levels 1–4)
SeparatorHorizontal or vertical divider
BadgeStatus label with variants
CardBordered container with header and footer
TableTable with a repeating header
Page FooterFooter on every page, with page numbers
AlertCallout with title, description and icon
ItemList row with media, content and actions
AvatarRound image with fallback, and groups
TypesetLong-form content rhythm driven by three tokens
Typeset MarkdownMarkdown rendered with the Typeset components
PDF blocks· 6 documentsLooking for complete documents?The blocks assemble these components into finished documents: pass your data, get a PDF.InvoiceQuoteReceiptReportResumeCertificateBrowse the blocks