Real CSS-3D, not canvas hacks
Each page is a real DOM node. Rotation, perspective and depth are CSS transforms — the GPU already knows how to draw them.
Real CSS-3D page-flip animation. Renders entirely in your browser — files never touch a server. Drops into any web page, ships with a WordPress plugin, MIT licensed.
One class. One container. The rest is the browser doing what it already knows how to do — only better than you'd expect.
Each page is a real DOM node. Rotation, perspective and depth are CSS transforms — the GPU already knows how to draw them.
Spread mode flips automatically at 768px. Resize the window, the book follows. Touch swipe and click-zone navigation built in.
Documents are read with the Web File API and rendered locally by PDF.js. No upload, no cloud round-trip, no analytics pixel.
One JavaScript class, one stylesheet. Drop the script tag in, point it at a container, point it at a PDF, you're done.
Install once, embed PDFs anywhere with [flippdf]. Gutenberg block hooks straight into the media library.
Fork it. Ship it inside your own product. Bundle PDF.js however suits you. Attribution appreciated, never required.
Whatever you drop here is read by your browser, not our server. Refresh the page when you're done — it disappears.
← → flip · Home/End jump · Click edges · Swipe on touch
Pick whichever matches the stack you're already in. The library underneath is the same — only the hosting story changes.
Upload the zip in Plugins → Add New → Upload. Then embed any PDF anywhere with a shortcode or the Gutenberg block — files come from your media library or any URL.
[flippdf] shortcode — works in posts, pages, widgetsflippdf_pdfjs_url filterNo build step, no package manager, no install. Paste the snippet, give the container a height, point at a PDF — done. The assets are served from flippablepdf.com over HTTPS with caching.
Drop-dead simplest path. If you'd rather own the bytes — for an offline build, an intranet, or a vendor-locked deploy — see method 03 below.
Download the library bundle, drop it into /lib/, ship it with your app. Works offline, works on intranets, works in vendor-locked environments where outbound HTTPS is filtered. No runtime callbacks to flippablepdf.com — once you have the files, you own them.
flippable-pdf.js, flippable-pdf.css, vendored PDF.js, an example.html, and a READMEdata-flippdf-pdf attributes, or call the JS API directlyYes. Pages render lazily as you flip. The default preload window is two pages on either side of the current one. Canvases are capped at ~2200 pixels wide so compositing stays smooth. You can lower the renderQuality option for snappier flipping on long documents.
The default browser PDF viewer is a scroll-and-zoom UI. Useful, but it's not a book. FlippablePDF presents your document as a real spread, page-by-page, with the GPU-accelerated turn animation that makes it actually feel like reading something rather than scrolling.
No. The library is fully client-side. The only network requests this page makes are to load itself — open your browser's DevTools network tab and verify. The WordPress plugin loads PDF.js from a CDN by default, but you can self-host it via the flippdf_pdfjs_url filter.
A [flippdf] shortcode and a Gutenberg block called "PDF Flipbook". Both let you pick a PDF from your media library or paste a URL. The plugin only loads its CSS / JS on pages that actually use the shortcode or block — no global bloat.
Yes. The library is MIT licensed. Fork it, vendor it, rebrand it, ship it inside whatever you're building. Attribution is appreciated but not required.
Any modern Chromium-based browser, Firefox, and Safari from the last few major versions. The library uses standard CSS 3D transforms, ResizeObserver, and the File API — all widely supported since 2020.