NL-UI-02: Bring the sent email HTML into visual parity with the live archive page
October 12, 2026·Andre Bon Cipriano·6058ea0
Classic theme already used the brand palette; the gaps were structural.
- Declare a font. The email had no font-family at all, so Outlook rendered
Times New Roman while the live page is Geist. Geist via <link> where
honoured, system sans fallback, MSO conditional pins Outlook to Arial.
Applied inline on wrapper cells and every <a>/button.
- Render the subject as a heading under the logo, mirroring the live h1.
- Rebuild the footer as a band matching SiteFooter: newsletter.org logo,
tagline, opt-out line, © legal. Footer text contrast raised from 2.6:1
to 5.2:1 on classic/cards.
- Admin /admin/issues/{slug} preview now shows the HTML as sent instead
of whitewashing the canvas; removed adminPreviewHtml (sole caller).
{{unsubscribe_url}} stays the literal placeholder in the footer href.
No changes to lib/ses.ts, cron/send, or the table layout.