Introduction
Open source React components for building document processing products with viewers, review surfaces, and validation workflows.
Extend UI is an open source React component library for building document processing interfaces. It gives teams the front-end primitives they need to preview, navigate, search, compare, and review the files that power real document workflows.
Extend is built around the work of turning raw PDFs, spreadsheets, scans, and text files into structured, production-ready data. Extend UI brings that same workflow mindset to product surfaces: start with reliable React components for PDF, DOCX, and Excel viewers, then add the shared controls that help users inspect extracted content, validate outputs, resolve low-confidence fields, and move documents through review.
What belongs here
- Viewers for the file types document-heavy products need every day.
- Navigation primitives for pages, sheets, sections, images, and extracted text.
- Review surfaces for annotations, e-signature, and human-in-the-loop checks.
- Utility panels for layout blocks, extraction status, and validation context.
Component set
The document-specific React components are maintained in Extend UI. This site uses Coss UI. Installed document components use your project's Base UI or Radix primitives, selected by the style in components.json. Icons follow your iconLibrary: Lucide, Tabler, Hugeicons, Phosphor, or Remix Icon. This site renders Hugeicons.
Installation
Configure the style-aware registry in components.json:
If your existing @extend URL ends in /r/{name}.json, replace it with the
URL below. That older endpoint always serves Base UI components, even when
your project's style is Radix.
{
"registries": {
"@extend": "https://www.extend.ai/ui/r/styles/{style}/{name}.json"
}
}Then install the component you need:
pnpm dlx shadcn@latest add @extend/pdf-editor
The CLI installs missing dependencies and respects your component aliases.
Keep your existing primitives when prompted; no overwrite flag is required.
Your primitives should use current shadcn APIs. Projects using the
deprecated default style
must migrate before installing.
Start with Components for the full list, or jump into Blocks for composed examples.