Fonts
Email typography is limited by client support, so the editor surfaces only the font stacks that render reliably across providers.
Font packs
Define a fonts array when instantiating the editor:
const editor = createEditor({
fonts: [
{
id: "inter",
label: "Inter",
stack: "\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif",
weights: ["400", "600", "700"]
},
{
id: "georgia",
label: "Georgia",
stack: "Georgia, serif",
weights: ["400"]
}
]
});
idtravels with the JSON so the renderer can resolve the same stack.weightslimits the choices offered in the property panel. Unsupported weights are hidden entirely.- To load custom web fonts, pair the editor pack with renderer-level
<style>injections (see the Renderer > Fonts doc).
Default typography
Specify defaultFontId to ensure every new text node starts with a safe stack. Nodes can override by storing fontId in their props.
Fallback behaviors
When users paste rich text, sanitize incoming font declarations and map them back onto registered fontIds. This prevents unexpected inline styles from leaking into the document.