Email MJML Components
Reusable MJML building blocks for Logic App email templates and API-generated emails (whitepaper, webinar).
Components live in src/components/email/ (static .mjml fragments).
The API uses the same files at runtime via renderEmailComponent(name, props) with a unified props interface (camelCase props map to {{UPPER_SNAKE}} placeholders).
See also: Email Template API (Wiki).
Components
Footer
Legal text, company address, and logos (light/dark).
CTA Button
Call-to-action button with configurable label and href.
Section Heading
Section title with optional level (h1/h2).
Author / Speaker
Author or speaker block (avatar, name, job title, optional cite).
Teaser Grid
2, 3, or 4 column teaser section for related content.
Download List
Title plus list of download/link items.
Key-Value Table
Section with optional title and key-value rows.
Build & Include
Static templates use XML include comments; the preprocessor replaces them before MJML conversion.
pnpm email:convert— Convert all .mjml templates to HTML (with preprocess).pnpm email:watch— Watch templates and components, convert on change.
Placeholder {{BASE_URL}} in fragments is replaced by SITE_URL (or default) at build time.
API emails (whitepaper/webinar requester) load these components via renderEmailComponent in src/utils/emailTemplates.ts, so edits to the .mjml files affect both static templates and API output.