Deliver the full conservation-nonprofit theme per OVERRIDE-CONTRACT (Wave A).
- 49 mandatory builtin overrides in templates/overrides/earthen/ (chrome,
marketing, primitives, commerce, blog family, auth surface, page-suggestions),
re-skinned from the frozen builtins into botanical/paper-grain chrome with
all content fields, custom tags, provider vars, HTMX/auth wiring and JS
preserved verbatim. Stale button/card/image/text/heading overrides fixed to
the new field contract (link/style/label, media/text via {% img %}).
- 7 page templates: default, full-width, landing, article, blog-index, contact,
auth.
- Blocks rework: impact_metrics/partner_logos/botanical_divider/footer converted
to builtin overrides (deleted as theme blocks); donation_cta and field_note
kept; impact_report added. Persona blocks now 3.
- 5 presets (all 19 tokens; mossbed/sage-morning/ember-loam are dual-mode).
- Bundled Fraunces + Work Sans woff2 (OFL) in assets/fonts/; fonts.json,
RECOMMENDED_FONTS.md, RECOMMENDED_ICONS.md; required_icon_packs=[lucide].
- Seed: home/about/blog(3 posts)/contact/login as Rootline Trust, contact-form
formConfig.targetTable=contact_submissions + row_inserted email-admins workflow.
- Themed email-safe wrapper; on-theme master pages; CSS-first botanical motion.
Verified: make (build) exit 0, make archive-check exit 0, check-safety exit 0.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
10 lines
3.6 KiB
Plaintext
10 lines
3.6 KiB
Plaintext
<!doctype html><html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="x-apple-disable-message-reformatting"><meta http-equiv="X-UA-Compatible" content="IE=edge"><!--[if mso]>
|
|
<noscript>
|
|
<xml>
|
|
<o:OfficeDocumentSettings>
|
|
<o:PixelsPerInch>96</o:PixelsPerInch>
|
|
</o:OfficeDocumentSettings>
|
|
</xml>
|
|
</noscript>
|
|
<![endif]--><title>{{ site_name }}</title></head><body style="background-color: {{ colors.background|default:"#F6F1E6" }}; margin: 0; padding: 0; font-family: &#39;Work Sans&#39;, ui-sans-serif, system-ui, sans-serif; color: {{ colors.foreground|default:"#2D3A28" }};">{% if preview_text %}<div style="display: none; max-height: 0; overflow: hidden; mso-hide: all;">{{ preview_text }}</div>{% endif %}<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="background-color: {{ colors.background|default:"#F6F1E6" }};"><tr><td align="center" style="padding: 32px 12px;"><table role="presentation" width="600" cellspacing="0" cellpadding="0" border="0" style="max-width: 600px; background-color: {{ colors.card|default:"#FCF9F2" }}; border: 1px solid {{ colors.border|default:"#D6D1C2" }}; border-radius: 12px; overflow: hidden;"><tr><td align="center" style="padding: 28px 32px; background-color: {{ colors.primary|default:"#3A5A36" }}; color: {{ colors.primaryForeground|default:"#F6F1E6" }};">{% if logo_url %}<img src="{{ logo_url }}" alt="{{ site_name }}" style="max-height: 44px; width: auto; display: block;">{% elif site_name %}<h1 style="margin: 0; font-family: &#39;Fraunces&#39;, &#39;Playfair Display&#39;, Georgia, serif; font-size: 26px; font-weight: 600; letter-spacing: -0.01em; color: {{ colors.primaryForeground|default:"#F6F1E6" }};">{{ site_name }}</h1>{% endif %}</td></tr><tr><td style="padding: 36px 40px; font-size: 16px; line-height: 1.7; color: {{ colors.foreground|default:"#2D3A28" }}; font-family: &#39;Work Sans&#39;, ui-sans-serif, system-ui, sans-serif;">{{ body|safe }}</td></tr><tr><td style="padding: 24px 40px; background-color: {{ colors.muted|default:"#EFEBDF" }}; border-top: 1px solid {{ colors.border|default:"#D6D1C2" }};"><table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td align="center"><p style="margin: 0 0 8px; font-family: &#39;Fraunces&#39;, &#39;Playfair Display&#39;, Georgia, serif; font-size: 14px; font-weight: 600; color: {{ colors.foreground|default:"#2D3A28" }};">{{ site_name }}</p><p style="margin: 0 0 6px; font-size: 11px; color: {{ colors.mutedForeground|default:"#6E7560" }};">Registered charity. We respect your inbox.</p>{% if site_url %}<p style="margin: 0 0 12px; font-size: 12px; color: {{ colors.mutedForeground|default:"#6E7560" }};"><a href="{{ site_url }}" style="color: {{ colors.primary|default:"#3A5A36" }}; text-decoration: none; border-bottom: 1px dotted {{ colors.primary|default:"#3A5A36" }};">{{ site_url }}</a></p>{% endif %}{% if unsubscribe_url %}<p style="margin: 0; font-size: 11px; color: {{ colors.mutedForeground|default:"#6E7560" }};"><a href="{{ unsubscribe_url }}" style="color: {{ colors.mutedForeground|default:"#6E7560" }}; text-decoration: underline;">Unsubscribe</a></p>{% else %}<p style="margin: 0; font-size: 11px; color: {{ colors.mutedForeground|default:"#6E7560" }};"><a href="#" style="color: {{ colors.mutedForeground|default:"#6E7560" }}; text-decoration: underline;">Unsubscribe</a></p>{% endif %}</td></tr></table></td></tr></table></td></tr></table></body></html>
|