# Introduction
Copy-paste PDF components for React. Built on Takumi and Forme, works with the shadcn CLI.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
**pdfcn** provides beautifully designed, accessible, and customizable PDF components. Built on [Takumi](https://takumi.kane.tw/docs/pdf) and [Forme](https://docs.formepdf.com), and designed to work seamlessly with the [shadcn CLI](https://ui.shadcn.com).
## Philosophy [#philosophy]
pdfcn follows the shadcn model for document generation: copy-paste components you can own, with zero lock-in and sensible defaults that work immediately.
PDF layouts are often treated as one-off templates — assembled with renderer-specific primitives, duplicated styling, and brittle page-break logic. pdfcn takes a different approach. It stays close to each renderer's primitives, keeps the API familiar across Takumi and Forme, and lets you drop down to the underlying renderer whenever you need more control.
The goal is simple: make generated PDFs feel like the rest of your stack — composable, themeable, accessible, and easy to customize.
## Why pdfcn? [#why-pdfcn]
Most PDF component setups are either too opinionated or too scattered. pdfcn is built for teams that want to ship quickly without giving up control:
* **Own Your Code:** Copy the components into your project and customize everything.
* **Start Fast:** Run one command and render your first document with production-ready defaults.
* **Choose Your Engine:** Use the same component API with Takumi or Forme, then drop to raw renderer APIs when needed.
## Features [#features]
# Installation
Install PDF components, blocks, and themes from the registry.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Prerequisites [#prerequisites]
A React project that can run either [Takumi](https://takumi.kane.tw/docs/pdf) or [Forme](https://docs.formepdf.com).
## Installation [#installation]
Run the following command to add a Takumi component:
```bash
npx shadcn@latest add @pdfcn/takumi/text
```
Forme components use the `forme/` namespace:
```bash
npx shadcn@latest add @pdfcn/forme/text
```
The registry installs the matching renderer dependencies and the shared theme utilities required by the selected component.
## Usage [#usage]
Import the installed component and use it inside your renderer's document primitives:
```tsx
import { Document, Page } from "@/components/pdf/pdf-primitives";
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { Text } from "@/components/pdf/text";
export function Invoice() {
return (
Invoice
);
}
```
For Forme, use `Document` and `Page` from `@formepdf/react`; the installed pdfcn component API stays the same.
## Install a Block [#install-a-block]
Blocks are complete document templates composed from registry components:
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-minimal
```
Use the `forme/` namespace for the equivalent Forme document:
```bash
npx shadcn@latest add @pdfcn/forme/invoice-minimal
```
## Install a Theme [#install-a-theme]
pdfcn ships theme presets that integrate with `PdfcnThemeProvider`:
```bash
npx shadcn@latest add @pdfcn/takumi/theme-minimal
```
For Forme:
```bash
npx shadcn@latest add @pdfcn/theme-minimal
```
# MCP
Learn how to use the shadcn MCP (Model Context Protocol) server with pdfcn.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
[MCP](https://modelcontextprotocol.io/) is an open protocol that standardizes how applications provide context to LLMs. The shadcn CLI can register an MCP server so your editor can discover registry components—including items you install from **pdfcn** via the same CLI.
## Configure MCP [#configure-mcp]
Run:
```bash
npx shadcn@latest mcp init
```
Choose your MCP client when prompted, then enable the MCP server in that client to finish setup.
## Usage [#usage]
With MCP enabled, you can ask your IDE to work with **Takumi** and **Forme** patterns and pdfcn registry components. Example prompts:
* Build an invoice layout with **Table**, **Heading**, **Text**, and **KeyValue**.
* Add a **QRCode** and **Signature** to a PDF document.
* Create a report with **Graph**, **DataTable**, and **PageHeader**.
* Lay out a PDF using **Section**, **Stack**, **Divider**, and **KeepTogether**.
* Implement a multi-page flow with **PageBreak**, **PageNumber**, and **PageFooter**.
Install components from this registry with `npx shadcn@latest add` and the JSON URL from each docs page. Components work with sensible defaults.
# Registry
Learn how to use the pdfcn registry with the shadcn CLI.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
The **pdfcn** registry ships Takumi and Forme components, blocks, and themes in the [shadcn registry format](https://ui.shadcn.com/docs/registry). Register the namespace once in `components.json`, then pull items by name with the CLI.
## Setup [#setup]
Add a **registries** entry for this site. See the [shadcn registry documentation](https://ui.shadcn.com/docs/registry) for all `components.json` fields and behaviors.
```json
{
"registries": {
"@pdfcn": "https://pdfcn.dev/r/{name}.json"
}
}
```
You can replace `@pdfcn` with another namespace; it only needs to match what you pass to `shadcn add`.
## Usage [#usage]
Items are namespaced by base: `takumi/` for Takumi and `forme/` for Forme.
Registry files follow these destinations:
* Components install into `components/ui/`.
* Blocks install into the configured blocks directory.
Components declare their dependencies, so installing a component does not require additional setup.
### Takumi [#takumi]
Install a component:
```bash
npx shadcn@latest add @pdfcn/takumi/text
```
Install a block:
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-minimal
```
Without a registry alias, use the full URL (as on each docs page):
```bash
npx shadcn@latest add https://pdfcn.dev/r/takumi/text.json
```
### Forme [#forme]
Install a component:
```bash
npx shadcn@latest add @pdfcn/forme/text
```
Install a block:
```bash
npx shadcn@latest add @pdfcn/forme/invoice-minimal
```
Without a registry alias, use the full URL (as on each docs page):
```bash
npx shadcn@latest add https://pdfcn.dev/r/forme/text.json
```
# Blocks
Pre-built invoices and reports composed from pdfcn components.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Components
Here you can find all the PDF components available in the library.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Blueprint
Dark slate with cyan accent, monospace headings, technical precision.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-blueprint
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { blueprintTheme } from "@/lib/pdf-themes/blueprint";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Corporate
Blue-gray palette, Lato sans-serif, structured and dependable.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-corporate
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { corporateTheme } from "@/lib/pdf-themes/corporate";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Elegant
Warm cream whites, amber/gold accent, classic editorial combination.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-elegant
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { elegantTheme } from "@/lib/pdf-themes/elegant";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Executive
Deep navy palette, Merriweather serif headings, premium boardroom aesthetic.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-executive
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { executiveTheme } from "@/lib/pdf-themes/executive";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Forest
Natural deep greens, Merriweather headings, earthy and trustworthy.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-forest
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { forestTheme } from "@/lib/pdf-themes/forest";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Themes
Pre-built theme presets for styling your PDF components.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Minimal
Courier headings, zinc neutrals, maximum whitespace.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-minimal
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { minimalTheme } from "@/lib/pdf-themes/minimal";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Modern
All-Helvetica typography, slate-cool neutrals with subtle violet accent.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-modern
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { modernTheme } from "@/lib/pdf-themes/modern";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Professional
Serif headings, refined zinc/slate palette, formal document feel.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-professional
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { professionalTheme } from "@/lib/pdf-themes/professional";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# Vivid
Deep violet palette, Nunito rounded sans-serif, playful but professional.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/theme-vivid
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { vividTheme } from "@/lib/pdf-themes/vivid";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
# August 13, 2026 - Initial Release
PDF components for React PDF, React PDF Renderer, and JSX PDF.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
We shipped the initial release of pdfcn with ready-to-use PDF components for Takumi PDF and Forme PDF.
# August 30, 2026 - Theme Builder
Visual theme customization with live PDF preview, undo/redo, code export, and shareable URLs.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
We shipped the Theme Builder — a visual editor for customizing PDF themes with live preview, instant feedback, and one-click code export.
### What's new [#whats-new]
* **Live PDF Preview** — See your theme applied in real time as you adjust colors, typography, spacing, and page settings
* **Theme Picker** — Browse and switch between 9 built-in [presets](/docs/themes) (Professional, Modern, Minimal, Executive, Corporate, Elegant, Vivid, Forest, Blueprint)
* **Undo / Redo** — Full history with keyboard shortcuts (⌘Z / ⌘⇧Z)
* **Code Export** — Copy the theme config as a JSON object or TypeScript preset to drop into your project
* **Shareable URLs** — Theme state is encoded in the URL hash so you can share an exact configuration with anyone
* **Base-specific routing** — Separate theme builders for [Takumi PDF](/theme-builder/takumi) and [Forme PDF](/theme-builder/forme)
* **Font preview** — See how your chosen body and heading fonts look at actual size before generating a PDF
# Changelog
Latest updates and announcements for pdfcn.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## August 2026 - Initial Release [#august-2026---initial-release]
We shipped the initial release of pdfcn with ready-to-use PDF components for Takumi PDF and Forme PDF.
# Event Agenda
Print-ready conference, summit, or meeting agenda template with multi-day support, track legend, and concurrent sessions.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/event-agenda
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { EventAgendaDocument } from "@/components/pdf/event-agenda";
```
```tsx
```
## API Reference [#api-reference]
### EventAgendaProps [#eventagendaprops]
| Prop | Type | Description |
| ------------------ | --------------- | --------------------------------------------------------------- |
| `eventName` | `string` | The title or name of the event or conference. |
| `date` | `string` | Start date of the event (e.g. "October 20, 2026"). |
| `endDate` | `string?` | Optional end date for multi-day events. |
| `venue` | `string` | Venue name or physical address. |
| `days` | `DaySchedule[]` | Array of day schedules, each containing sessions. |
| `tracks` | `Track[]?` | Color-coded conference tracks for the legend and session pills. |
| `wifiInfo` | `string?` | Network credentials displayed in the footer. |
| `emergencyContact` | `string?` | Important contact info displayed in the footer. |
| `accentColor` | `string?` | Accent color for headers, badges, and highlights. |
# Event Ticket
Print-ready event admission ticket with event details, seat info, QR code scan-in area, and branding strip.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/event-ticket
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core qrcode
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { EventTicketDocument } from "@/components/pdf/event-ticket";
```
```tsx
```
### With a pre-rendered QR image [#with-a-pre-rendered-qr-image]
Provide `qrCodeUrl` to render an image instead of the generated QR code:
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | ----------------- | -------------------------------------------------------------------------------- |
| `data` | `EventTicketData` | Ticket content: event, venue, times, seat, ticket type/number, and footer fields |
| `theme` | `PdfcnTheme` | Optional theme override |
# Gift Certificate
Printable gift certificate template with decorative styling.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/gift-certificate
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { GiftCertificateDocument } from "@/components/pdf/gift-certificate";
```
```tsx
```
# Forme
Invoice and report templates for the Forme base.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Invoice Classic
Classic invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/invoice-classic
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceClassicDocument } from "@/components/pdf/invoice-classic";
```
```tsx
```
# Invoice Consultant
Consultant-style invoice template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/invoice-consultant
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceConsultantDocument } from "@/components/pdf/invoice-consultant";
```
```tsx
```
# Invoice Corporate
Corporate invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/invoice-corporate
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceCorporateDocument } from "@/components/pdf/invoice-corporate";
```
```tsx
```
# Invoice Creative
Creative invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/invoice-creative
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceCreativeDocument } from "@/components/pdf/invoice-creative";
```
```tsx
```
# Invoice Minimal
Minimal invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/invoice-minimal
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceMinimalDocument } from "@/components/pdf/invoice-minimal";
```
```tsx
```
# Invoice Modern
Modern invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/invoice-modern
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceModernDocument } from "@/components/pdf/invoice-modern";
```
```tsx
```
# Lesson Plan
Printable lesson plan for teachers with objectives, standards, materials, activities, and assessment.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/lesson-plan
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { LessonPlanDocument } from "@/components/pdf/lesson-plan";
```
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | ----------------- | ----------------------- |
| `data` | `LessonPlanProps` | Lesson plan content |
| `theme` | `PdfcnTheme` | Optional theme override |
# Medical Intake Form
Printable patient intake and registration form with personal, insurance, medical history, and consent sections.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/medical-intake-form
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { MedicalIntakeFormDocument } from "@/components/pdf/blocks/medical-intake-form/medical-intake-form";
```
```tsx
```
## Sections [#sections]
Every section is rendered by default and can be hidden by setting its prop to `false`.
```tsx
```
| Prop | Section |
| ------------------ | ------------------------------------------------------------- |
| `personalInfo` | Name, date of birth, gender, phone, email, and address fields |
| `emergencyContact` | Contact name, relationship, and phone fields |
| `insurance` | Provider, policy, group, and subscriber fields |
| `medicalHistory` | Condition checklist with allergy and medication prompts |
| `medications` | Medication, dosage, frequency, and prescribing doctor table |
| `allergies` | Allergen, reaction, and severity table |
| `reasonForVisit` | Free-text area for symptoms and reason for the visit |
| `consent` | HIPAA authorization, treatment consent, and signature lines |
## Props [#props]
| Prop | Type | Description |
| --------------- | ------------ | ----------------------------------------------------------- |
| `clinicName` | `string` | Clinic name shown in the header and consent text |
| `clinicLogo` | `string` | Optional logo image source |
| `clinicAddress` | `string` | Address shown in the header and footer |
| `clinicPhone` | `string` | Phone number shown in the header and footer |
| `accentColor` | `string` | Theme token or CSS color used for section rules and accents |
| `theme` | `PdfcnTheme` | Theme override for the whole document |
# Meeting Minutes
Printable meeting minutes document with attendees, agenda, discussions, decisions, and action items.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/meeting-minutes
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { MeetingMinutesDocument } from "@/components/pdf/meeting-minutes";
```
```tsx
```
# Packing Slip
Printable packing slip document with order details, itemized list, and shipping info.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/packing-slip
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PackingSlipDocument } from "@/components/pdf/packing-slip";
```
```tsx
```
# Press Release
Printable press release document with headline, body, quotes, and media contact info.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/press-release
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PressReleaseDocument } from "@/components/pdf/press-release";
```
```tsx
```
# Report Financial
Financial report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/report-financial
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { FinancialReportDocument } from "@/components/pdf/report-financial";
```
```tsx
```
# Report Marketing
Marketing report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/report-marketing
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { MarketingReportDocument } from "@/components/pdf/report-marketing";
```
```tsx
```
# Report Operations
Operations report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/report-operations
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { OperationsReportDocument } from "@/components/pdf/report-operations";
```
```tsx
```
# Report Security
Security report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/report-security
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { SecurityReportDocument } from "@/components/pdf/report-security";
```
```tsx
```
# Shipping Label
Print-ready 4x6 shipping label with sender, recipient, barcode area, and carrier info.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/shipping-label
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core qrcode
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { ShippingLabelDocument } from "@/components/pdf/shipping-label";
```
```tsx
```
### With a carrier barcode image [#with-a-carrier-barcode-image]
Provide `barcodeUrl` to render a full-width barcode image instead of the QR code:
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | ------------------- | ---------------------------------------------------------------- |
| `data` | `ShippingLabelData` | Label content: addresses, carrier, tracking, and package details |
| `theme` | `PdfcnTheme` | Optional theme override |
# Work Order
Printable service/maintenance work order with job details, parts used, labor tracking, and customer sign-off.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/work-order
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { WorkOrderDocument } from "@/components/pdf/work-order";
```
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | --------------- | ----------------------------- |
| `data` | `WorkOrderData` | Work order content and totals |
| `theme` | `PdfcnTheme` | Optional theme override |
# Event Agenda
Print-ready conference, summit, or meeting agenda template with multi-day support, track legend, and concurrent sessions.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/event-agenda
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { EventAgendaDocument } from "@/components/pdf/event-agenda";
```
```tsx
```
## API Reference [#api-reference]
### EventAgendaProps [#eventagendaprops]
| Prop | Type | Description |
| ------------------ | --------------- | --------------------------------------------------------------- |
| `eventName` | `string` | The title or name of the event or conference. |
| `date` | `string` | Start date of the event (e.g. "October 20, 2026"). |
| `endDate` | `string?` | Optional end date for multi-day events. |
| `venue` | `string` | Venue name or physical address. |
| `days` | `DaySchedule[]` | Array of day schedules, each containing sessions. |
| `tracks` | `Track[]?` | Color-coded conference tracks for the legend and session pills. |
| `wifiInfo` | `string?` | Network credentials displayed in the footer. |
| `emergencyContact` | `string?` | Important contact info displayed in the footer. |
| `accentColor` | `string?` | Accent color for headers, badges, and highlights. |
# Event Ticket
Print-ready event admission ticket with event details, seat info, QR code scan-in area, and branding strip.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/event-ticket
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers qrcode
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { EventTicketDocument } from "@/components/pdf/event-ticket";
```
```tsx
```
### With a pre-rendered QR image [#with-a-pre-rendered-qr-image]
Provide `qrCodeUrl` to render an image instead of the generated QR code:
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | ----------------- | -------------------------------------------------------------------------------- |
| `data` | `EventTicketData` | Ticket content: event, venue, times, seat, ticket type/number, and footer fields |
| `theme` | `PdfcnTheme` | Optional theme override |
# Gift Certificate
Printable gift certificate template with decorative styling.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/gift-certificate
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { GiftCertificateDocument } from "@/components/pdf/gift-certificate";
```
```tsx
```
# Takumi
Invoice and report templates for the Takumi base.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Invoice Classic
Classic invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-classic
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceClassicDocument } from "@/components/pdf/invoice-classic";
```
```tsx
```
# Invoice Consultant
Consultant-style invoice template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-consultant
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceConsultantDocument } from "@/components/pdf/invoice-consultant";
```
```tsx
```
# Invoice Corporate
Corporate invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-corporate
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceCorporateDocument } from "@/components/pdf/invoice-corporate";
```
```tsx
```
# Invoice Creative
Creative invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-creative
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceCreativeDocument } from "@/components/pdf/invoice-creative";
```
```tsx
```
# Invoice Minimal
Minimal invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-minimal
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceMinimalDocument } from "@/components/pdf/invoice-minimal";
```
```tsx
```
# Invoice Modern
Modern invoice document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/invoice-modern
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { InvoiceModernDocument } from "@/components/pdf/invoice-modern";
```
```tsx
```
# Lesson Plan
Printable lesson plan for teachers with objectives, standards, materials, activities, and assessment.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/lesson-plan
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { LessonPlanDocument } from "@/components/pdf/lesson-plan";
```
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | ----------------- | ----------------------- |
| `data` | `LessonPlanProps` | Lesson plan content |
| `theme` | `PdfcnTheme` | Optional theme override |
# Medical Intake Form
Printable patient intake and registration form with personal, insurance, medical history, and consent sections.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/medical-intake-form
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { MedicalIntakeFormDocument } from "@/components/pdf/blocks/medical-intake-form/medical-intake-form";
```
```tsx
```
## Sections [#sections]
Every section is rendered by default and can be hidden by setting its prop to `false`.
```tsx
```
| Prop | Section |
| ------------------ | ------------------------------------------------------------- |
| `personalInfo` | Name, date of birth, gender, phone, email, and address fields |
| `emergencyContact` | Contact name, relationship, and phone fields |
| `insurance` | Provider, policy, group, and subscriber fields |
| `medicalHistory` | Condition checklist with allergy and medication prompts |
| `medications` | Medication, dosage, frequency, and prescribing doctor table |
| `allergies` | Allergen, reaction, and severity table |
| `reasonForVisit` | Free-text area for symptoms and reason for the visit |
| `consent` | HIPAA authorization, treatment consent, and signature lines |
## Props [#props]
| Prop | Type | Description |
| --------------- | ------------ | ----------------------------------------------------------- |
| `clinicName` | `string` | Clinic name shown in the header and consent text |
| `clinicLogo` | `string` | Optional logo image source |
| `clinicAddress` | `string` | Address shown in the header and footer |
| `clinicPhone` | `string` | Phone number shown in the header and footer |
| `accentColor` | `string` | Theme token or CSS color used for section rules and accents |
| `theme` | `PdfcnTheme` | Theme override for the whole document |
# Meeting Minutes
Printable meeting minutes document with attendees, agenda, discussions, decisions, and action items.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/meeting-minutes
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { MeetingMinutesDocument } from "@/components/pdf/meeting-minutes";
```
```tsx
```
# Packing Slip
Printable packing slip document with order details, itemized list, and shipping info.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/packing-slip
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PackingSlipDocument } from "@/components/pdf/packing-slip";
```
```tsx
```
# Press Release
Printable press release document with headline, body, quotes, and media contact info.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/press-release
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PressReleaseDocument } from "@/components/pdf/press-release";
```
```tsx
```
# Report Financial
Financial report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/report-financial
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { FinancialReportDocument } from "@/components/pdf/report-financial";
```
```tsx
```
# Report Marketing
Marketing report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/report-marketing
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { MarketingReportDocument } from "@/components/pdf/report-marketing";
```
```tsx
```
# Report Operations
Operations report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/report-operations
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { OperationsReportDocument } from "@/components/pdf/report-operations";
```
```tsx
```
# Report Security
Security report document template.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/report-security
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { SecurityReportDocument } from "@/components/pdf/report-security";
```
```tsx
```
# Shipping Label
Print-ready 4x6 shipping label with sender, recipient, barcode area, and carrier info.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/shipping-label
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers qrcode
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { ShippingLabelDocument } from "@/components/pdf/shipping-label";
```
```tsx
```
### With a carrier barcode image [#with-a-carrier-barcode-image]
Provide `barcodeUrl` to render a full-width barcode image instead of the QR code:
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | ------------------- | ---------------------------------------------------------------- |
| `data` | `ShippingLabelData` | Label content: addresses, carrier, tracking, and package details |
| `theme` | `PdfcnTheme` | Optional theme override |
# Work Order
Printable service/maintenance work order with job details, parts used, labor tracking, and customer sign-off.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/work-order
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { WorkOrderDocument } from "@/components/pdf/work-order";
```
```tsx
```
## Props [#props]
| Prop | Type | Description |
| ------- | --------------- | ----------------------------- |
| `data` | `WorkOrderData` | Work order content and totals |
| `theme` | `PdfcnTheme` | Optional theme override |
# Alert
Alert box with info, success, warning, and error variants.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/alert
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfAlert } from "@/components/pdf/alert";
```
```tsx
Alert body
```
## API Reference [#api-reference]
### PdfAlert [#pdfalert]
| Prop | Type | Default |
| ------------ | --------------------------------------------- | ------- |
| `variant` | `'info' \| 'success' \| 'warning' \| 'error'` | 'info' |
| `title` | `string` | - |
| `children` | `ReactNode` | - |
| `showIcon` | `boolean` | true |
| `showBorder` | `boolean` | true |
# Badge
Compact status badge for labels and tags.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/badge
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Badge } from "@/components/pdf/badge";
```
```tsx
Badge
```
## API Reference [#api-reference]
### Badge [#badge]
| Prop | Type | Default |
| ------------ | ------------------------------------------------------------------------------------------ | --------- |
| `label` | `string` | - |
| `children` | `string` | - |
| `variant` | `'default' \| 'primary' \| 'success' \| 'warning' \| 'destructive' \| 'info' \| 'outline'` | 'default' |
| `size` | `'sm' \| 'md' \| 'lg'` | 'md' |
| `background` | `string` | - |
| `color` | `string` | - |
# Card
Bordered content card with title and body.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/card
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfCard } from "@/components/pdf/card";
```
```tsx
Card body
```
## API Reference [#api-reference]
### PdfCard [#pdfcard]
| Prop | Type | Default |
| ---------- | ------------------------------------ | ----------- |
| `title` | `string` | - |
| `children` | `ReactNode` | - |
| `variant` | `'default' \| 'bordered' \| 'muted'` | `'default'` |
| `padding` | `'sm' \| 'md' \| 'lg'` | `'md'` |
| `wrap` | `boolean` | `false` |
# Data Table
Tabular data with columns and rows.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/data-table
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { DataTable } from "@/components/pdf/data-table";
```
```tsx
```
### Variants [#variants]
Use any `TableVariant` for the table treatment and `size="compact"` for denser reports.
```tsx
```
## API Reference [#api-reference]
### DataTable [#datatable]
| Prop | Type | Default |
| --------- | ------------------------------------------------------------------------------------------- | ----------- |
| `columns` | `DataTableColumn[]` | - |
| `data` | `T[]` | - |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | `'grid'` |
| `footer` | `Partial>` | - |
| `stripe` | `boolean` | `false` |
| `size` | `'default' \| 'compact'` | `'default'` |
| `noWrap` | `boolean` | `false` |
| `style` | `Style` | - |
### DataTableColumn [#datatablecolumn]
`key` is the row-field accessor—for example, `key: "name"` reads `row.name`. It is not React's reserved `key` prop.
| Prop | Type | Default |
| -------------- | ------------------------------- | -------- |
| `key` | `keyof T & string` | - |
| `header` | `string` | - |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `width` | `string \| number` | - |
| `render` | `(value, row) => ReactNode` | - |
| `renderFooter` | `(value) => ReactNode` | - |
# Divider
Horizontal rule to separate sections.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/divider
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Divider } from "@/components/pdf/divider";
```
```tsx
```
## API Reference [#api-reference]
### Divider [#divider]
| Prop | Type | Default |
| ----------- | --------------------------------- | --------- |
| `spacing` | `'none' \| 'sm' \| 'md' \| 'lg'` | `'md'` |
| `variant` | `'solid' \| 'dashed' \| 'dotted'` | `'solid'` |
| `color` | `string` | - |
| `thickness` | `'thin' \| 'medium' \| 'thick'` | `'thin'` |
| `label` | `string` | - |
| `width` | `string \| number` | - |
# Form
Labeled form groups for PDF inputs.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/form
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfForm } from "@/components/pdf/form";
```
```tsx
```
### Variants [#variants]
```tsx
```
## API Reference [#api-reference]
### PdfForm [#pdfform]
| Prop | Type | Default |
| --------------- | ----------------------------------------------- | ------------- |
| `title` | `string` | - |
| `subtitle` | `string` | - |
| `groups` | `PdfFormGroup[]` | - |
| `variant` | `'underline' \| 'box' \| 'outlined' \| 'ghost'` | `'underline'` |
| `labelPosition` | `'above' \| 'left'` | `'above'` |
| `noWrap` | `boolean` | `false` |
| `style` | `Style` | - |
Groups support `single`, `two-column`, and `three-column` layouts.
# Graph
Bar, line, and area charts drawn with SVG.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/graph
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfGraph } from "@/components/pdf/graph";
```
```tsx
```
### Variants [#variants]
```tsx
```
## API Reference [#api-reference]
### PdfGraph [#pdfgraph]
| Prop | Type | Default |
| ------------- | ------------------------------------------------------------------- | ---------- |
| `variant` | `'bar' \| 'horizontal-bar' \| 'line' \| 'area' \| 'pie' \| 'donut'` | `'bar'` |
| `data` | `GraphDataPoint[] \| GraphSeries[]` | - |
| `title` | `string` | - |
| `subtitle` | `string` | - |
| `xLabel` | `string` | - |
| `yLabel` | `string` | - |
| `width` | `number` | `420` |
| `height` | `number` | `260` |
| `fullWidth` | `boolean` | `false` |
| `colors` | `string[]` | theme |
| `showValues` | `boolean` | `false` |
| `showGrid` | `boolean` | `true` |
| `legend` | `'bottom' \| 'right' \| 'none'` | `'bottom'` |
| `centerLabel` | `string` | - |
| `showDots` | `boolean` | `true` |
| `smooth` | `boolean` | `false` |
| `yTicks` | `number` | `5` |
| `noWrap` | `boolean` | `true` |
| `style` | `Style` | - |
# Heading
Document headings with typographic scale.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/heading
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Heading } from "@/components/pdf/heading";
```
```tsx
Heading
```
## API Reference [#api-reference]
### Heading [#heading]
| Prop | Type | Default |
| -------------- | ------------------------------------------------------- | ---------- |
| `level` | `1 \| 2 \| 3 \| 4 \| 5 \| 6` | `1` |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `color` | `string` | - |
| `transform` | `'uppercase' \| 'lowercase' \| 'capitalize'` | - |
| `weight` | `'normal' \| 'medium' \| 'semibold' \| 'bold'` | `'bold'` |
| `tracking` | `'tighter' \| 'tight' \| 'normal' \| 'wide' \| 'wider'` | `'normal'` |
| `noMargin` | `boolean` | `false` |
| `keepWithNext` | `boolean` | - |
# Forme
PDF UI primitives for the Forme base.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Keep Together
Keeps children on the same PDF page.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/keep-together
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { KeepTogether } from "@/components/pdf/keep-together";
import { Text } from "@/components/pdf/text";
```
```tsx
Keep these lines together.
```
## API Reference [#api-reference]
### KeepTogether [#keeptogether]
| Prop | Type | Default |
| ------------------ | ----------- | ------- |
| `children` | `ReactNode` | - |
| `minPresenceAhead` | `number` | - |
| `style` | `Style` | - |
# Key Value
Definition list of keys and values.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/key-value
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { KeyValue } from "@/components/pdf/key-value";
```
```tsx
```
## API Reference [#api-reference]
### KeyValue [#keyvalue]
| Prop | Type | Default |
| ------------------ | ---------------------------- | ------------ |
| `items` | `KeyValueEntry[]` | - |
| `direction` | `'horizontal' \| 'vertical'` | 'horizontal' |
| `divided` | `boolean` | false |
| `size` | `'sm' \| 'md' \| 'lg'` | 'md' |
| `labelFlex` | `number` | 1 |
| `labelColor` | `string` | - |
| `valueColor` | `string` | - |
| `boldValue` | `boolean` | false |
| `noWrap` | `boolean` | false |
| `dividerColor` | `string` | - |
| `dividerThickness` | `number` | - |
| `dividerMargin` | `number` | - |
# Link
Clickable link styled for PDF documents.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/link
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Link } from "@/components/pdf/link";
```
```tsx
Example
```
## API Reference [#api-reference]
### Link [#link]
| Prop | Type | Default |
| ----------- | ----------------------------------- | ----------- |
| `href` | `string` | - |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `color` | `string` | - |
| `variant` | `'default' \| 'muted' \| 'primary'` | `'default'` |
| `underline` | `'always' \| 'none'` | `'always'` |
# List
Ordered and unordered lists.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/list
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfList } from "@/components/pdf/list";
```
```tsx
```
### Variants [#variants]
```tsx
```
## API Reference [#api-reference]
### PdfList [#pdflist]
| Prop | Type | Default |
| --------- | ----------------------------------------------------------------------------------- | ---------- |
| `items` | `ListItem[]` | - |
| `variant` | `'bullet' \| 'numbered' \| 'checklist' \| 'icon' \| 'multi-level' \| 'descriptive'` | `'bullet'` |
| `gap` | `'xs' \| 'sm' \| 'md'` | `'sm'` |
| `noWrap` | `boolean` | `false` |
| `style` | `Style` | - |
# Page Break
Forces a page break in the document.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/page-break
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PageBreak } from "@/components/pdf/page-break";
```
```tsx
```
## API Reference [#api-reference]
### PageBreak [#pagebreak]
| Prop | Type | Default |
| ---------- | ------- | ------- |
| `children` | `never` | - |
# Page Footer
Repeating page footer.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/page-footer
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PageFooter } from "@/components/pdf/page-footer";
```
```tsx
```
## API Reference [#api-reference]
### PageFooter [#pagefooter]
| Prop | Type | Default |
| ------------- | ---------------------------------------------------------------------------------- | -------- |
| `leftText` | `string` | - |
| `rightText` | `string` | - |
| `centerText` | `string` | - |
| `variant` | `'simple' \| 'centered' \| 'branded' \| 'minimal' \| 'three-column' \| 'detailed'` | 'simple' |
| `background` | `string` | - |
| `textColor` | `string` | - |
| `marginTop` | `number` | - |
| `address` | `string` | - |
| `phone` | `string` | - |
| `email` | `string` | - |
| `website` | `string` | - |
| `fixed` | `boolean` | false |
| `sticky` | `boolean` | false |
| `pagePadding` | `number` | 0 |
| `noWrap` | `boolean` | true |
# Page Header
Repeating page header.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/page-header
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PageHeader } from "@/components/pdf/page-header";
```
```tsx
```
## API Reference [#api-reference]
### PageHeader [#pageheader]
| Prop | Type | Default |
| -------------- | ------------------------------------------------------------------------------------------------- | -------- |
| `title` | `string` | - |
| `subtitle` | `string` | - |
| `rightText` | `string` | - |
| `rightSubText` | `string` | - |
| `variant` | `'simple' \| 'centered' \| 'minimal' \| 'branded' \| 'logo-left' \| 'logo-right' \| 'two-column'` | 'simple' |
| `background` | `string` | - |
| `titleColor` | `string` | - |
| `marginBottom` | `number` | - |
| `address` | `string` | - |
| `phone` | `string` | - |
| `email` | `string` | - |
| `logo` | `ReactNode` | - |
| `fixed` | `boolean` | false |
| `noWrap` | `boolean` | true |
# Page Number
Current page number marker.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/page-number
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfPageNumber } from "@/components/pdf/page-number";
```
```tsx
```
## API Reference [#api-reference]
### PdfPageNumber [#pdfpagenumber]
| Prop | Type | Default |
| ---------- | ------------------------------- | -------------------------- |
| `format` | `string` | 'Page \{page} of \{total}' |
| `align` | `'left' \| 'center' \| 'right'` | 'center' |
| `size` | `'xs' \| 'sm' \| 'md'` | 'sm' |
| `fixed` | `boolean` | false |
| `muted` | `boolean` | true |
| `children` | `never` | - |
# PDF Image
Embedded image with fit options.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/pdf-image
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfImage } from "@/components/pdf/pdf-image";
```
```tsx
```
## API Reference [#api-reference]
### PdfImage [#pdfimage]
| Prop | Type | Default |
| -------------- | ------------------------------------------------------------------------------------------------------- | ----------- |
| `src` | `string \| { uri: string; method?: string; headers?: Record; body?: string }` | - |
| `variant` | `'default' \| 'full-width' \| 'thumbnail' \| 'avatar' \| 'cover' \| 'bordered' \| 'rounded'` | `'default'` |
| `width` | `number \| string` | - |
| `height` | `number \| string` | - |
| `fit` | `'cover' \| 'contain' \| 'fill' \| 'none'` | - |
| `position` | `string` | `'50% 50%'` |
| `caption` | `string` | - |
| `aspectRatio` | `number` | - |
| `borderRadius` | `number` | - |
| `noWrap` | `boolean` | `true` |
| `style` | `Style` | - |
# QR Code
QR code generated from a string value.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/qrcode
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfQRCode } from "@/components/pdf/qrcode";
```
```tsx
```
## API Reference [#api-reference]
### PdfQRCode [#pdfqrcode]
| Prop | Type | Default |
| ----------------- | -------------------------- | ------- |
| `value` | `string` | - |
| `size` | `number` | - |
| `color` | `string` | - |
| `backgroundColor` | `string` | - |
| `errorLevel` | `'L' \| 'M' \| 'Q' \| 'H'` | - |
| `margin` | `number` | - |
| `caption` | `string` | - |
| `children` | `never` | - |
# Section
Section wrapper with optional title.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/section
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Section } from "@/components/pdf/section";
import { Text } from "@/components/pdf/text";
```
```tsx
Section body
```
## API Reference [#api-reference]
### Section [#section]
| Prop | Type | Default |
| ------------- | ------------------------------------------------- | --------- |
| `spacing` | `'none' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | 'md' |
| `padding` | `'none' \| 'sm' \| 'md' \| 'lg'` | - |
| `background` | `string` | - |
| `border` | `boolean` | false |
| `variant` | `'default' \| 'callout' \| 'highlight' \| 'card'` | 'default' |
| `accentColor` | `string` | - |
| `noWrap` | `boolean` | false |
# Signature
Signature block with name and label.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/signature
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfSignatureBlock } from "@/components/pdf/signature";
```
```tsx
```
## API Reference [#api-reference]
### PdfSignatureBlock [#pdfsignatureblock]
| Prop | Type | Default |
| --------- | ------------------------------------ | -------- |
| `variant` | `'single' \| 'double' \| 'inline'` | 'single' |
| `label` | `string` | - |
| `name` | `string` | - |
| `title` | `string` | - |
| `date` | `string` | - |
| `signers` | `[SignatureSigner, SignatureSigner]` | - |
| `style` | `Style` | - |
# Stack
Vertical stack with spacing.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/stack
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Stack } from "@/components/pdf/stack";
import { Text } from "@/components/pdf/text";
```
```tsx
OneTwo
```
## API Reference [#api-reference]
### Stack [#stack]
| Prop | Type | Default |
| ----------- | ------------------------------------------------------- | ---------- |
| `gap` | `'none' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | 'md' |
| `direction` | `'vertical' \| 'horizontal'` | 'vertical' |
| `align` | `'start' \| 'center' \| 'end' \| 'stretch'` | 'start' |
| `justify` | `'start' \| 'center' \| 'end' \| 'between' \| 'around'` | 'start' |
| `wrap` | `boolean` | false |
| `noWrap` | `boolean` | false |
# Table
Low-level table primitives.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/table
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import {
Table,
TableBody,
TableCell,
TableHeader,
TableRow,
Text,
} from "@/components/pdf/table";
```
```tsx
Item
```
### Variants [#variants]
```tsx
{/* header, body, rows, and cells */}
```
## API Reference [#api-reference]
### Table [#table]
| Prop | Type | Default |
| ------------- | ------------------------------------------------------------------------------------------- | -------- |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | `'line'` |
| `zebraStripe` | `boolean` | `false` |
| `noWrap` | `boolean` | `false` |
| `children` | `ReactNode` | - |
| `style` | `Style` | - |
### TableRow [#tablerow]
| Prop | Type | Default |
| --------- | ------------------------------------------------------------------------------------------- | --------- |
| `header` | `boolean` | `false` |
| `footer` | `boolean` | `false` |
| `stripe` | `boolean` | `false` |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | inherited |
### TableCell [#tablecell]
| Prop | Type | Default |
| --------- | ------------------------------------------------------------------------------------------- | --------- |
| `header` | `boolean` | `false` |
| `footer` | `boolean` | `false` |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `width` | `string \| number` | - |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | inherited |
# Text
Body text with typography variants.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/text
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Text } from "@/components/pdf/text";
```
```tsx
Hello from pdfcn
```
## API Reference [#api-reference]
### Text [#text]
| Prop | Type | Default |
| ------------ | ---------------------------------------------------------- | ---------- |
| `variant` | `'xs' \| 'sm' \| 'base' \| 'lg' \| 'xl' \| '2xl' \| '3xl'` | `'base'` |
| `align` | `'left' \| 'center' \| 'right' \| 'justify'` | `'left'` |
| `color` | `string` | - |
| `weight` | `'normal' \| 'medium' \| 'semibold' \| 'bold'` | `'normal'` |
| `italic` | `boolean` | `false` |
| `decoration` | `'underline' \| 'line-through' \| 'none'` | `'none'` |
| `transform` | `'uppercase' \| 'lowercase' \| 'capitalize'` | - |
| `noMargin` | `boolean` | `false` |
# Watermark
Diagonal or centered watermark overlay.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/watermark
```
Install the following dependencies:
```bash
npm install @formepdf/react @formepdf/core
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfWatermark } from "@/components/pdf/watermark";
import { Text } from "@/components/pdf/text";
```
```tsx
```
## API Reference [#api-reference]
### PdfWatermark [#pdfwatermark]
| Prop | Type | Default |
| ---------- | -------------------------------------------------------------------------- | ------- |
| `text` | `string` | - |
| `opacity` | `number` | - |
| `fontSize` | `number` | - |
| `color` | `string` | - |
| `angle` | `number` | - |
| `position` | `'center' \| 'top-left' \| 'top-right' \| 'bottom-left' \| 'bottom-right'` | - |
| `fixed` | `boolean` | true |
| `children` | `never` | - |
# Alert
Alert box with info, success, warning, and error variants.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/alert
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfAlert } from "@/components/pdf/alert";
```
```tsx
Alert body
```
## API Reference [#api-reference]
### PdfAlert [#pdfalert]
| Prop | Type | Default |
| ------------ | --------------------------------------------- | -------- |
| `variant` | `'info' \| 'success' \| 'warning' \| 'error'` | `'info'` |
| `title` | `string` | - |
| `children` | `ReactNode` | - |
| `showIcon` | `boolean` | `true` |
| `showBorder` | `boolean` | `true` |
# Badge
Compact status badge for labels and tags.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/badge
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Badge } from "@/components/pdf/badge";
```
```tsx
Badge
```
## API Reference [#api-reference]
### Badge [#badge]
| Prop | Type | Default |
| ------------ | ------------------------------------------------------------------------------------------ | ----------- |
| `label` | `string` | - |
| `children` | `string` | - |
| `variant` | `'default' \| 'primary' \| 'success' \| 'warning' \| 'destructive' \| 'info' \| 'outline'` | `'default'` |
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` |
| `background` | `string` | - |
| `color` | `string` | - |
# Card
Bordered content card with title and body.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/card
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfCard } from "@/components/pdf/card";
```
```tsx
Card body
```
## API Reference [#api-reference]
### PdfCard [#pdfcard]
| Prop | Type | Default |
| ---------- | ------------------------------------ | ----------- |
| `title` | `string` | - |
| `children` | `ReactNode` | - |
| `variant` | `'default' \| 'bordered' \| 'muted'` | `'default'` |
| `padding` | `'sm' \| 'md' \| 'lg'` | `'md'` |
| `wrap` | `boolean` | `false` |
# Data Table
Tabular data with columns and rows.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/data-table
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { DataTable } from "@/components/pdf/data-table";
```
```tsx
```
### Variants [#variants]
Use any `TableVariant` for the table treatment and `size="compact"` for denser reports.
```tsx
```
## API Reference [#api-reference]
### DataTable [#datatable]
| Prop | Type | Default |
| --------- | ------------------------------------------------------------------------------------------- | ----------- |
| `columns` | `DataTableColumn[]` | - |
| `data` | `T[]` | - |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | `'grid'` |
| `footer` | `Partial>` | - |
| `stripe` | `boolean` | `false` |
| `size` | `'default' \| 'compact'` | `'default'` |
| `noWrap` | `boolean` | `false` |
| `style` | `Style` | - |
### DataTableColumn [#datatablecolumn]
`key` is the row-field accessor—for example, `key: "name"` reads `row.name`. It is not React's reserved `key` prop.
| Prop | Type | Default |
| -------------- | ------------------------------- | -------- |
| `key` | `keyof T & string` | - |
| `header` | `string` | - |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `width` | `string \| number` | - |
| `render` | `(value, row) => ReactNode` | - |
| `renderFooter` | `(value) => ReactNode` | - |
# Divider
Horizontal rule to separate sections.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/divider
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Divider } from "@/components/pdf/divider";
```
```tsx
```
## API Reference [#api-reference]
### Divider [#divider]
| Prop | Type | Default |
| ----------- | --------------------------------- | --------- |
| `spacing` | `'none' \| 'sm' \| 'md' \| 'lg'` | `'md'` |
| `variant` | `'solid' \| 'dashed' \| 'dotted'` | `'solid'` |
| `color` | `string` | - |
| `thickness` | `'thin' \| 'medium' \| 'thick'` | `'thin'` |
| `label` | `string` | - |
| `width` | `string \| number` | - |
# Form
Labeled form groups for PDF inputs.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/form
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfForm } from "@/components/pdf/form";
```
```tsx
```
### Variants [#variants]
```tsx
```
## API Reference [#api-reference]
### PdfForm [#pdfform]
| Prop | Type | Default |
| --------------- | ----------------------------------------------- | ------------- |
| `title` | `string` | - |
| `subtitle` | `string` | - |
| `groups` | `PdfFormGroup[]` | - |
| `variant` | `'underline' \| 'box' \| 'outlined' \| 'ghost'` | `'underline'` |
| `labelPosition` | `'above' \| 'left'` | `'above'` |
| `noWrap` | `boolean` | `false` |
| `style` | `Style` | - |
Groups support `single`, `two-column`, and `three-column` layouts.
# Graph
Bar, line, and area charts drawn with SVG.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/graph
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfGraph } from "@/components/pdf/graph";
```
```tsx
```
### Variants [#variants]
```tsx
```
## API Reference [#api-reference]
### PdfGraph [#pdfgraph]
| Prop | Type | Default |
| ------------- | ------------------------------------------------------------------- | ---------- |
| `variant` | `'bar' \| 'horizontal-bar' \| 'line' \| 'area' \| 'pie' \| 'donut'` | `'bar'` |
| `data` | `GraphDataPoint[] \| GraphSeries[]` | - |
| `title` | `string` | - |
| `subtitle` | `string` | - |
| `xLabel` | `string` | - |
| `yLabel` | `string` | - |
| `width` | `number` | `420` |
| `height` | `number` | `260` |
| `fullWidth` | `boolean` | `false` |
| `colors` | `string[]` | theme |
| `showValues` | `boolean` | `false` |
| `showGrid` | `boolean` | `true` |
| `legend` | `'bottom' \| 'right' \| 'none'` | `'bottom'` |
| `centerLabel` | `string` | - |
| `showDots` | `boolean` | `true` |
| `smooth` | `boolean` | `false` |
| `yTicks` | `number` | `5` |
| `noWrap` | `boolean` | `true` |
| `style` | `Style` | - |
# Heading
Document headings with typographic scale.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/heading
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Heading } from "@/components/pdf/heading";
```
```tsx
Heading
```
## API Reference [#api-reference]
### Heading [#heading]
| Prop | Type | Default |
| -------------- | ------------------------------------------------------- | ---------- |
| `level` | `1 \| 2 \| 3 \| 4 \| 5 \| 6` | `1` |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `color` | `string` | - |
| `transform` | `'uppercase' \| 'lowercase' \| 'capitalize'` | - |
| `weight` | `'normal' \| 'medium' \| 'semibold' \| 'bold'` | `'bold'` |
| `tracking` | `'tighter' \| 'tight' \| 'normal' \| 'wide' \| 'wider'` | `'normal'` |
| `noMargin` | `boolean` | `false` |
| `keepWithNext` | `boolean` | - |
# Takumi
PDF UI primitives for the Takumi base.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
# Keep Together
Keeps children on the same PDF page.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/keep-together
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { KeepTogether } from "@/components/pdf/keep-together";
import { Text } from "@/components/pdf/text";
```
```tsx
Keep these lines together.
```
## API Reference [#api-reference]
### KeepTogether [#keeptogether]
| Prop | Type | Default |
| ------------------ | ----------- | ------- |
| `children` | `ReactNode` | - |
| `minPresenceAhead` | `number` | - |
| `style` | `Style` | - |
# Key Value
Definition list of keys and values.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/key-value
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { KeyValue } from "@/components/pdf/key-value";
```
```tsx
```
## API Reference [#api-reference]
### KeyValue [#keyvalue]
| Prop | Type | Default |
| ------------------ | ---------------------------- | -------------- |
| `items` | `KeyValueEntry[]` | - |
| `direction` | `'horizontal' \| 'vertical'` | `'horizontal'` |
| `divided` | `boolean` | `false` |
| `size` | `'sm' \| 'md' \| 'lg'` | `'md'` |
| `labelFlex` | `number` | `1` |
| `labelColor` | `string` | - |
| `valueColor` | `string` | - |
| `boldValue` | `boolean` | `false` |
| `noWrap` | `boolean` | `false` |
| `dividerColor` | `string` | - |
| `dividerThickness` | `number` | - |
| `dividerMargin` | `number` | - |
# Link
Clickable link styled for PDF documents.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/link
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Link } from "@/components/pdf/link";
```
```tsx
Example
```
## API Reference [#api-reference]
### Link [#link]
| Prop | Type | Default |
| ----------- | ----------------------------------- | ----------- |
| `href` | `string` | - |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `color` | `string` | - |
| `variant` | `'default' \| 'muted' \| 'primary'` | `'default'` |
| `underline` | `'always' \| 'none'` | `'always'` |
# List
Ordered and unordered lists.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/list
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfList } from "@/components/pdf/list";
```
```tsx
```
### Variants [#variants]
```tsx
```
## API Reference [#api-reference]
### PdfList [#pdflist]
| Prop | Type | Default |
| --------- | ----------------------------------------------------------------------------------- | ---------- |
| `items` | `ListItem[]` | - |
| `variant` | `'bullet' \| 'numbered' \| 'checklist' \| 'icon' \| 'multi-level' \| 'descriptive'` | `'bullet'` |
| `gap` | `'xs' \| 'sm' \| 'md'` | `'sm'` |
| `noWrap` | `boolean` | `false` |
| `style` | `Style` | - |
# Page Break
Forces a page break in the document.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/page-break
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PageBreak } from "@/components/pdf/page-break";
```
```tsx
```
## API Reference [#api-reference]
### PageBreak [#pagebreak]
| Prop | Type | Default |
| ---------- | ------- | ------- |
| `children` | `never` | - |
# Page Footer
Repeating page footer.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/page-footer
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PageFooter } from "@/components/pdf/page-footer";
```
```tsx
```
## API Reference [#api-reference]
### PageFooter [#pagefooter]
| Prop | Type | Default |
| ------------- | ---------------------------------------------------------------------------------- | ---------- |
| `leftText` | `string` | - |
| `rightText` | `string` | - |
| `centerText` | `string` | - |
| `variant` | `'simple' \| 'centered' \| 'branded' \| 'minimal' \| 'three-column' \| 'detailed'` | `'simple'` |
| `background` | `string` | - |
| `textColor` | `string` | - |
| `marginTop` | `number` | - |
| `address` | `string` | - |
| `phone` | `string` | - |
| `email` | `string` | - |
| `website` | `string` | - |
| `fixed` | `boolean` | `false` |
| `sticky` | `boolean` | `false` |
| `pagePadding` | `number` | `0` |
| `noWrap` | `boolean` | `true` |
# Page Header
Repeating page header.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/page-header
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PageHeader } from "@/components/pdf/page-header";
```
```tsx
```
## API Reference [#api-reference]
### PageHeader [#pageheader]
| Prop | Type | Default |
| -------------- | ------------------------------------------------------------------------------------------------- | ---------- |
| `title` | `string` | - |
| `subtitle` | `string` | - |
| `rightText` | `string` | - |
| `rightSubText` | `string` | - |
| `variant` | `'simple' \| 'centered' \| 'minimal' \| 'branded' \| 'logo-left' \| 'logo-right' \| 'two-column'` | `'simple'` |
| `background` | `string` | - |
| `titleColor` | `string` | - |
| `marginBottom` | `number` | - |
| `address` | `string` | - |
| `phone` | `string` | - |
| `email` | `string` | - |
| `logo` | `ReactNode` | - |
| `fixed` | `boolean` | `false` |
| `noWrap` | `boolean` | `true` |
# Page Number
Current page number marker.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/page-number
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfPageNumber } from "@/components/pdf/page-number";
```
```tsx
```
## API Reference [#api-reference]
### PdfPageNumber [#pdfpagenumber]
| Prop | Type | Default |
| ---------- | ------------------------------- | -------------------------- |
| `format` | `string` | `'Page {page} of {total}'` |
| `align` | `'left' \| 'center' \| 'right'` | `'center'` |
| `size` | `'xs' \| 'sm' \| 'md'` | `'sm'` |
| `fixed` | `boolean` | `false` |
| `muted` | `boolean` | `true` |
| `children` | `never` | - |
# PDF Image
Embedded image with fit options.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/pdf-image
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfImage } from "@/components/pdf/pdf-image";
```
```tsx
```
## API Reference [#api-reference]
### PdfImage [#pdfimage]
| Prop | Type | Default |
| -------------- | ------------------------------------------------------------------------------------------------------- | ----------- |
| `src` | `string \| { uri: string; method?: string; headers?: Record; body?: string }` | - |
| `variant` | `'default' \| 'full-width' \| 'thumbnail' \| 'avatar' \| 'cover' \| 'bordered' \| 'rounded'` | `'default'` |
| `width` | `number \| string` | - |
| `height` | `number \| string` | - |
| `fit` | `'cover' \| 'contain' \| 'fill' \| 'none'` | - |
| `position` | `string` | `'50% 50%'` |
| `caption` | `string` | - |
| `aspectRatio` | `number` | - |
| `borderRadius` | `number` | - |
| `noWrap` | `boolean` | `true` |
| `style` | `Style` | - |
# QR Code
QR code generated from a string value.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/qrcode
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfQRCode } from "@/components/pdf/qrcode";
```
```tsx
```
## API Reference [#api-reference]
### PdfQRCode [#pdfqrcode]
| Prop | Type | Default |
| ----------------- | -------------------------- | ------- |
| `value` | `string` | - |
| `size` | `number` | - |
| `color` | `string` | - |
| `backgroundColor` | `string` | - |
| `errorLevel` | `'L' \| 'M' \| 'Q' \| 'H'` | - |
| `margin` | `number` | - |
| `caption` | `string` | - |
| `children` | `never` | - |
# Section
Section wrapper with optional title.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/section
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Section } from "@/components/pdf/section";
import { Text } from "@/components/pdf/text";
```
```tsx
Section body
```
## API Reference [#api-reference]
### Section [#section]
| Prop | Type | Default |
| ------------- | ------------------------------------------------- | ----------- |
| `spacing` | `'none' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` |
| `padding` | `'none' \| 'sm' \| 'md' \| 'lg'` | - |
| `background` | `string` | - |
| `border` | `boolean` | `false` |
| `variant` | `'default' \| 'callout' \| 'highlight' \| 'card'` | `'default'` |
| `accentColor` | `string` | - |
| `noWrap` | `boolean` | `false` |
# Signature
Signature block with name and label.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/signature
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfSignatureBlock } from "@/components/pdf/signature";
```
```tsx
```
## API Reference [#api-reference]
### PdfSignatureBlock [#pdfsignatureblock]
| Prop | Type | Default |
| --------- | ------------------------------------ | ---------- |
| `variant` | `'single' \| 'double' \| 'inline'` | `'single'` |
| `label` | `string` | - |
| `name` | `string` | - |
| `title` | `string` | - |
| `date` | `string` | - |
| `signers` | `[SignatureSigner, SignatureSigner]` | - |
| `style` | `Style` | - |
# Stack
Vertical stack with spacing.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/stack
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Stack } from "@/components/pdf/stack";
import { Text } from "@/components/pdf/text";
```
```tsx
OneTwo
```
## API Reference [#api-reference]
### Stack [#stack]
| Prop | Type | Default |
| ----------- | ------------------------------------------------------- | ------------ |
| `gap` | `'none' \| 'sm' \| 'md' \| 'lg' \| 'xl'` | `'md'` |
| `direction` | `'vertical' \| 'horizontal'` | `'vertical'` |
| `align` | `'start' \| 'center' \| 'end' \| 'stretch'` | `'start'` |
| `justify` | `'start' \| 'center' \| 'end' \| 'between' \| 'around'` | `'start'` |
| `wrap` | `boolean` | `false` |
| `noWrap` | `boolean` | `false` |
# Table
Low-level table primitives.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/table
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import {
Table,
TableBody,
TableCell,
TableHeader,
TableRow,
Text,
} from "@/components/pdf/table";
```
```tsx
Item
```
### Variants [#variants]
```tsx
{/* header, body, rows, and cells */}
```
## API Reference [#api-reference]
### Table [#table]
| Prop | Type | Default |
| ------------- | ------------------------------------------------------------------------------------------- | -------- |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | `'line'` |
| `zebraStripe` | `boolean` | `false` |
| `noWrap` | `boolean` | `false` |
| `children` | `ReactNode` | - |
| `style` | `Style` | - |
### TableRow [#tablerow]
| Prop | Type | Default |
| --------- | ------------------------------------------------------------------------------------------- | --------- |
| `header` | `boolean` | `false` |
| `footer` | `boolean` | `false` |
| `stripe` | `boolean` | `false` |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | inherited |
### TableCell [#tablecell]
| Prop | Type | Default |
| --------- | ------------------------------------------------------------------------------------------- | --------- |
| `header` | `boolean` | `false` |
| `footer` | `boolean` | `false` |
| `align` | `'left' \| 'center' \| 'right'` | `'left'` |
| `width` | `string \| number` | - |
| `variant` | `'line' \| 'grid' \| 'minimal' \| 'striped' \| 'compact' \| 'bordered' \| 'primary-header'` | inherited |
# Text
Body text with typography variants.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/text
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { Text } from "@/components/pdf/text";
```
```tsx
Hello from pdfcn
```
## API Reference [#api-reference]
### Text [#text]
| Prop | Type | Default |
| ------------ | ---------------------------------------------------------- | ---------- |
| `variant` | `'xs' \| 'sm' \| 'base' \| 'lg' \| 'xl' \| '2xl' \| '3xl'` | `'base'` |
| `align` | `'left' \| 'center' \| 'right' \| 'justify'` | `'left'` |
| `color` | `string` | - |
| `weight` | `'normal' \| 'medium' \| 'semibold' \| 'bold'` | `'normal'` |
| `italic` | `boolean` | `false` |
| `decoration` | `'underline' \| 'line-through' \| 'none'` | `'none'` |
| `transform` | `'uppercase' \| 'lowercase' \| 'capitalize'` | - |
| `noMargin` | `boolean` | `false` |
# Watermark
Diagonal or centered watermark overlay.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/watermark
```
Install the following dependencies:
```bash
npm install takumi-pdf @takumi-rs/helpers
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfWatermark } from "@/components/pdf/watermark";
import { Text } from "@/components/pdf/text";
```
```tsx
```
## API Reference [#api-reference]
### PdfWatermark [#pdfwatermark]
| Prop | Type | Default |
| ---------- | -------------------------------------------------------------------------- | ------- |
| `text` | `string` | - |
| `opacity` | `number` | - |
| `fontSize` | `number` | - |
| `color` | `string` | - |
| `angle` | `number` | - |
| `position` | `'center' \| 'top-left' \| 'top-right' \| 'bottom-left' \| 'bottom-right'` | - |
| `fixed` | `boolean` | `true` |
| `children` | `never` | - |
# Theming
Configure PDF themes, colors, typography, and spacing for Forme.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/forme/theme-provider
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { professionalTheme } from "@/lib/pdf-themes/professional";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
## Color Tokens [#color-tokens]
All color values must be hex strings (e.g., `#1a1a1a`). React PDF supports hex, `rgb()`, and `hsl()` — but NOT `oklch`.
| Token | Purpose |
| ------------------- | --------------------------- |
| `foreground` | Primary text color |
| `background` | Page background |
| `muted` | Secondary backgrounds |
| `mutedForeground` | Captions, footnotes |
| `primary` | Brand/accent color |
| `primaryForeground` | Text on primary backgrounds |
| `border` | Table borders, dividers |
| `accent` | Call-to-action elements |
| `destructive` | Error states |
| `success` | Success states |
| `warning` | Warning states |
| `info` | Informational states |
## Primitive Tokens [#primitive-tokens]
Primitives define the raw design scales available to themes:
* **Typography Scale** — Major Third (1.25) ratio with 12pt base
* **Spacing Scale** — 4pt grid system
* **Font Weights** — 400–700
* **Line Heights** — 1.2–1.6
* **Border Radius** — 0–8pt
## Custom Themes [#custom-themes]
Use the `PdfcnTheme` interface to create custom themes while preserving the complete theme shape.
```tsx
import type { PdfcnTheme } from "@/registry/themes";
import { defaultPrimitives } from "@/registry/themes";
export const oceanTheme: PdfcnTheme = {
name: "ocean",
primitives: defaultPrimitives,
colors: {
foreground: "#0f172a",
background: "#ffffff",
primary: "#0369a1",
accent: "#0ea5e9",
muted: "#f1f5f9",
border: "#e2e8f0",
mutedForeground: "#64748b",
primaryForeground: "#ffffff",
destructive: "#dc2626",
success: "#16a34a",
warning: "#d97706",
info: "#0ea5e9",
},
typography: {
body: { fontFamily: "Helvetica", fontSize: 11, lineHeight: 1.6 },
heading: {
fontFamily: "Times-Roman",
fontWeight: 700,
lineHeight: 1.25,
fontSize: { h1: 32, h2: 24, h3: 20, h4: 16, h5: 14, h6: 12 },
},
},
spacing: {
page: { marginTop: 56, marginRight: 48, marginBottom: 56, marginLeft: 48 },
sectionGap: 28,
paragraphGap: 10,
componentGap: 14,
},
page: { size: "A4", orientation: "portrait" },
};
```
## Available Themes [#available-themes]
# Theming
Configure PDF themes, colors, typography, and spacing for Takumi.
> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any URL or sending an `Accept: text/markdown` header. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).
## Installation [#installation]
Command
Manual
```bash
npx shadcn@latest add @pdfcn/takumi/theme-provider
```
Copy and paste the following code into your project.
Update the import paths to match your project setup.
## Usage [#usage]
```tsx
import { PdfcnThemeProvider } from "@/components/pdf/theme-provider";
import { professionalTheme } from "@/lib/pdf-themes/professional";
export function Invoice() {
return (
{/* Your PDF content */}
);
}
```
## Color Tokens [#color-tokens]
All color values must be hex strings (e.g., `#1a1a1a`). React PDF supports hex, `rgb()`, and `hsl()` — but NOT `oklch`.
| Token | Purpose |
| ------------------- | --------------------------- |
| `foreground` | Primary text color |
| `background` | Page background |
| `muted` | Secondary backgrounds |
| `mutedForeground` | Captions, footnotes |
| `primary` | Brand/accent color |
| `primaryForeground` | Text on primary backgrounds |
| `border` | Table borders, dividers |
| `accent` | Call-to-action elements |
| `destructive` | Error states |
| `success` | Success states |
| `warning` | Warning states |
| `info` | Informational states |
## Primitive Tokens [#primitive-tokens]
Primitives define the raw design scales available to themes:
* **Typography Scale** — Major Third (1.25) ratio with 12pt base
* **Spacing Scale** — 4pt grid system
* **Font Weights** — 400–700
* **Line Heights** — 1.2–1.6
* **Border Radius** — 0–8pt
## Custom Themes [#custom-themes]
Use the `PdfcnTheme` interface to create custom themes while preserving the complete theme shape.
```tsx
import type { PdfcnTheme } from "@/registry/themes";
import { defaultPrimitives } from "@/registry/themes";
export const oceanTheme: PdfcnTheme = {
name: "ocean",
primitives: defaultPrimitives,
colors: {
foreground: "#0f172a",
background: "#ffffff",
primary: "#0369a1",
accent: "#0ea5e9",
muted: "#f1f5f9",
border: "#e2e8f0",
mutedForeground: "#64748b",
primaryForeground: "#ffffff",
destructive: "#dc2626",
success: "#16a34a",
warning: "#d97706",
info: "#0ea5e9",
},
typography: {
body: { fontFamily: "Helvetica", fontSize: 11, lineHeight: 1.6 },
heading: {
fontFamily: "Times-Roman",
fontWeight: 700,
lineHeight: 1.25,
fontSize: { h1: 32, h2: 24, h3: 20, h4: 16, h5: 14, h6: 12 },
},
},
spacing: {
page: { marginTop: 56, marginRight: 48, marginBottom: 56, marginLeft: 48 },
sectionGap: 28,
paragraphGap: 10,
componentGap: 14,
},
page: { size: "A4", orientation: "portrait" },
};
```
## Available Themes [#available-themes]