Skip to main content
Forme 0.14 adds a second front door to the engine: @formepdf/html renders HTML + print CSS to PDF through the same Rust/WASM engine that renders JSX components. No headless browser, no Chromium cold start.

The subset — the constitution

This is a deliberately documented subset of HTML/CSS, in the spirit of Satori — but page-native. Everything supported is listed below and tested. Everything outside the subset lands in the warnings list at render time, named, with a remedy where one exists. Nothing fails silently.

Paged media — the point of the whole thing

Elements

Selectors

Properties

The full property table lives in the package README — margins with CSS margin collapsing, borders (solid/dashed/dotted with Chrome-matched dash metrics), border-collapse emulation, min/max width constraints (the centered-column idiom works), font fallback chains, text-align: justify with real Knuth-Plass distribution, text-transform, letter-spacing, vertical-align on cells, flexbox, and relative/absolute positioning. Notable exclusions, all warned by name: float, CSS Grid, CSS variables, position: fixed/sticky, transforms, gradients, @font-face fetching (use options.fonts / --font — see the web-fonts migration recipe).

The warnings contract

Every warning names the thing it skipped: the property, the selector, the stylesheet href, the @font-face family. If a render is silent, the document used only the subset — and what you got is what the subset defines.

Migrating