Skip to content

Components

Top-level container for one logical page (may overflow into multiple physical pages).

Prop Type Default Notes
size 'A4' | 'LETTER' | 'LEGAL' A4 Paper preset
orientation 'portrait' | 'landscape' portrait
padding number | { top, right, bottom, left } 0 PDF points
contentWidth number (derived) Overrides content area width
children nodes Layout children

Generic flex container (display: flex by default).

Prop Notes
style Satori-supported flexbox / box styles
children Nested nodes

Atomic — never split across pages.

Prop Notes
style fontSize, fontFamily, lineHeight, colors, margins, …
children String or nested text

Splittable — overflows split on word boundaries.

Prop Notes
src Path, URL, or data URI
width / height Required PDF points
style Optional Satori styles
alt Reserved for future a11y metadata

Atomic.

Prop Notes
columns ColumnDefinition[]
data Array of row objects
style Outer container styles
headerStyle / rowStyle Table-level header / row styles
options.stripe Alternating row backgrounds
options.stripeColor Stripe color (default #f9f9f9)
options.headerRepeat Repeat header on new pages (default on)
Field Notes
header Header label
key Property key on each data row
width Number (pt) or percentage string
flex Flex weight when width omitted
align 'left' | 'right' | 'center'
style Legacy shared header+cell styles
headerStyle / cellStyle Column-specific overrides

Style merge: table styles → column styleheaderStyle/cellStyle → resolved width.