Email template pack
An email template pack ships transactional + marketing email designs that honor the active brand fingerprint. Pack-shipped emails are how a build keeps a consistent voice across receipts, magic links, drip campaigns, and announcements.
What you ship
my-emails/
├── manifest.json
├── templates/
│ ├── receipt.mjml
│ ├── magic-link.mjml
│ ├── welcome-drip-1.mjml
│ ├── welcome-drip-2.mjml
│ └── …
├── partials/ # shared header/footer fragments
│ ├── header.mjml
│ └── footer.mjml
├── preview/
│ └── covers.png # 1200x630 multi-template preview
└── README.md
Key contracts
- MJML. Source files are MJML; the runtime renders to inline-CSS HTML + plain-text alternates.
- Token-driven. Colors, fonts, and spacing reference theme tokens — no hex literals.
- Required placeholders. Each transactional template declares the variables the runtime fills (
{{recipient_name}},{{action_url}}, …). - Plain-text fallback. Every template ships a plain-text version. The marketplace gate fails if it's missing.
Scaffold
vincia create email-template-pack my-emails
cd my-emails
vincia preview
vincia publish --dry-run
Approval gates
1. MJML parse — every template compiles. 2. Plain-text alternate — present for every transactional template. 3. Token references — gate fails on hex literals in palette properties. 4. Anti-spam smell — no font-size: 0, no off-screen white-on-white text.
Where to learn more
- /foundations —
KitPreset.voice(microcopy) intersects email templates. - Examples — the Editorial-warm theme ships matching email templates.