WO-TF-024. Re-skin from frozen Wave-0 builtins into blueprint/HUD/mono chrome (AI/robotics product persona), preserving every content field, provider field, custom tag, and JS block; button/card legacy field reads reconciled per §4. - 49 mandatory template_overrides + 7 page templates (default, full-width, landing, article, blog-index, contact, auth) with MID-tier motion (JS scroll-reveal + ticking counters + CSS line-draw; reduced-motion + no-JS static fallback). - 4 persona blocks: tech_spec, benchmark_table, telemetry_grid, changelog_console. Deleted 5 builtin-duplicating theme blocks (now overrides). - 4 dual-mode presets (19 tokens, light + dark tuned). - Bundled OFL fonts (Space Grotesk / Inter / JetBrains Mono) + LICENSES. - Email-safe wrapper retuned; master pages + seed demo site (Halcyon Robotics: home, about, blog x3, contact with data-table + row_inserted email workflow, login). - required_icon_packs (lucide, simple-icons) + RECOMMENDED docs. make build exit 0 (codeless .bnp); check-safety exit 0. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
64 lines
4.8 KiB
Plaintext
64 lines
4.8 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">
|
|
<title>{{ site_name }}</title>
|
|
<style type="text/css">
|
|
:root {
|
|
--sc-email-bg: hsl(210 16% 95%);
|
|
--sc-email-surface: hsl(0 0% 100%);
|
|
--sc-email-fg: hsl(215 30% 12%);
|
|
--sc-email-muted-fg: hsl(215 12% 42%);
|
|
--sc-email-border: hsl(215 14% 88%);
|
|
--sc-email-accent: hsl(215 90% 45%);
|
|
--sc-email-signal: hsl(18 95% 52%);
|
|
}
|
|
body, table, td, p, a, li, blockquote { -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%; }
|
|
table, td { mso-table-lspace: 0pt; mso-table-rspace: 0pt; }
|
|
img { -ms-interpolation-mode: bicubic; border: 0; height: auto; line-height: 100%; outline: none; text-decoration: none; }
|
|
body { margin: 0 !important; padding: 0 !important; width: 100% !important; }
|
|
a[x-apple-data-detectors] { color: inherit !important; text-decoration: none !important; }
|
|
h1, h2, h3, h4, h5, h6 { font-family: 'Space Grotesk', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; font-weight: 600; letter-spacing: -0.02em; }
|
|
@media only screen and (max-width: 620px) {
|
|
.sc-email-container { width: 100% !important; max-width: 100% !important; }
|
|
.sc-email-padding { padding-left: 24px !important; padding-right: 24px !important; }
|
|
}
|
|
</style>
|
|
</head>
|
|
<body style="background-color: var(--sc-email-bg, hsl(210 16% 95%)); margin: 0; padding: 0; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;">
|
|
{% 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">
|
|
<tr>
|
|
<td align="center" style="padding: 32px 12px; background-color: var(--sc-email-bg, hsl(210 16% 95%));">
|
|
<table role="presentation" class="sc-email-container" width="600" cellspacing="0" cellpadding="0" border="0" style="max-width: 600px; width: 600px; background-color: var(--sc-email-surface, hsl(0 0% 100%)); border: 1px solid var(--sc-email-border, hsl(215 14% 88%)); border-collapse: separate;">
|
|
<!-- Header: title + single accent rule -->
|
|
<tr>
|
|
<td class="sc-email-padding" style="padding: 32px 48px 16px 48px; background-color: var(--sc-email-surface, hsl(0 0% 100%));">{% if logo_url %}<img src="{{ logo_url }}" alt="{{ site_name }}" style="max-height: 36px; width: auto; display: block;">{% elif site_name %}<h1 style="margin: 0; font-size: 20px; font-weight: 600; color: var(--sc-email-fg, hsl(215 30% 12%)); letter-spacing: -0.02em; font-family: 'Space Grotesk', 'Inter', sans-serif;">{{ site_name }}</h1>{% endif %}</td>
|
|
</tr>
|
|
<tr>
|
|
<td style="padding: 0 48px;"><div style="height: 2px; background-color: var(--sc-email-accent, hsl(215 90% 45%)); line-height: 2px; font-size: 0;"> </div><div style="height: 2px; width: 48px; background-color: var(--sc-email-signal, hsl(18 95% 52%)); line-height: 2px; font-size: 0; margin-top: 2px;"> </div></td>
|
|
</tr>
|
|
<!-- Body -->
|
|
<tr>
|
|
<td class="sc-email-padding" style="padding: 32px 48px; color: var(--sc-email-fg, hsl(215 30% 12%)); font-size: 16px; line-height: 1.6; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;">{{ body|safe }}</td>
|
|
</tr>
|
|
<!-- Footer: legal line + unsubscribe -->
|
|
<tr>
|
|
<td class="sc-email-padding" style="padding: 24px 48px 32px 48px; border-top: 1px solid var(--sc-email-border, hsl(215 14% 88%));">
|
|
<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0">
|
|
<tr>
|
|
<td align="left">{% if site_name %}<p style="margin: 0 0 6px 0; font-size: 13px; color: var(--sc-email-fg, hsl(215 30% 12%)); font-family: 'Space Grotesk', 'Inter', sans-serif; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;">{{ site_name }}</p>{% endif %}<p style="margin: 0 0 12px 0; font-size: 12px; color: var(--sc-email-muted-fg, hsl(215 12% 42%)); font-family: 'Inter', sans-serif;">You are receiving this email because you subscribed to updates.</p>{% if site_url %}<p style="margin: 0 0 8px 0; font-size: 12px;"><a href="{{ site_url }}" style="color: var(--sc-email-accent, hsl(215 90% 45%)); text-decoration: none;">{{ site_url }}</a></p>{% endif %}{% if unsubscribe_url %}<p style="margin: 0; font-size: 11px;"><a href="{{ unsubscribe_url }}" style="color: var(--sc-email-muted-fg, hsl(215 12% 42%)); text-decoration: underline;">Unsubscribe</a></p>{% endif %}</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|