Build the PDF viewer, don't install one
PDF viewer components that you can copy and paste into your apps. Built on embedpdf and shadcn/ui. Composable. Customizable. Open Source.
See it running
The whole library assembled into one reader — a resizable sidebar switching between thumbnails, outline, and attachments, a full toolbar, search, and annotation, all on embedpdf's Worker and WASM engine. Every piece is a component you'll find in the Code tab, and yours to keep.
Batteries included, source wide open
You own the code
Every component installs as source in your repo — plain TypeScript and Tailwind. Restyle it, strip it back, or fork it. Nothing hides behind a dependency.
Built on embedpdf
PDFium compiled to WASM, rendering off the main thread in a Web Worker. Real document fidelity, not a canvas approximation.
Composed from shadcn/ui
The bookmark sidebar is a ScrollArea of ghost Buttons. The chrome is primitives you already know, not a bespoke widget system.
Twelve components, one viewer
A provider plus eleven pieces of chrome. Take the parts your product needs and leave the rest.
PDF Viewer
Provider that bootstraps the PDF engine and registers the required and light-tier plugins.
PDF Toolbar
Page navigation, zoom, rotate, pan, layout, print, download, fullscreen, and undo/redo controls.
PDF Page Navigation
Previous and next page buttons around an editable page number field.
PDF Zoom Controls
Zoom out and in around a dropdown of zoom presets and fixed steps.
PDF Undo/Redo Buttons
Undo and redo buttons wired to a document's edit history.
PDF Bookmark Sidebar
Renders a document's outline and bookmarks and navigates the viewer on click.
PDF Thumbnail Sidebar
Virtualized page thumbnails that track and drive the viewer's current page.
PDF Search Panel
Full-text search across a document, with match navigation and highlighted snippets.
PDF Attachment List
Lists a document's embedded file attachments and downloads them on click.
PDF Annotation Toolbar
Opt-in chrome for selecting the active annotation tool on a document.
PDF Redaction Toolbar
Opt-in chrome for marking text or areas and permanently redacting them.
PDF Capture Button
Opt-in chrome for capturing a region of a page as an image.