Carries each site style into email, so a digest looks like the site its reader chose and the other emails like the instance's style. A mail client takes no stylesheet of ours, so each style is resolved here into plain values, which layout.ts inlines.

What a theme defines is read from it through theme-tokens.ts, never copied: the colors, the gradient, the font and the corner radii. What is the email's own is stated here: how large it sets its type, how its card stands out, which divider it draws, and which of the theme's own tokens carry the touches that make it recognisable (Kanagawa's syntax hues, GeoCities' rainbow, Melange's spice and warm shadow).

Interfaces

I
EmailPalette

The colors of one style in one scheme, by role, each read from a token of its theme. The optional ones carry a style's particular touches.

I
EmailStyle

How a style draws an email. layout.ts builds every block from it, so adding a style to shared/theme.ts means adding its Recipe here.

Variables

v
EMAIL_STYLES: Record<StyleName, EmailStyle>

Every style's email look, keyed by its name, read once at load.