Email brand pass: drop gradient header, use new palette#277
Merged
Conversation
…alette (Group B.1)
Migrates the shared wrapEmail() and lead-notification templates off the
legacy aesthetic (pastel gradient header band + zinc-200/400 palette)
to the Statusbrew-shaped tokens used by the marketing site:
- email-wrapper.ts: drops the 4-stop pastel linear-gradient header band
for a white header with a hairline #e6e8ee bottom border. Body
background switches from #e8eaf0 to #f4f6fb (surfaceTinted). Card
drops the box-shadow in favor of a 1px #e6e8ee border with
border-radius bumped 12px → 14px. Footer divider + text colors
unified to #e6e8ee + #8b8fa3.
- lead-notification.ts: same palette swap (3 references).
- /api/email-preview dev route: matching swap so the preview wrapper
doesn't read like two different brands.
All 7 dev preview endpoints (whitepaper-download, newsletter-welcome,
lead-notification, drip-day-{2,5,10,20}) return HTTP 200 and a grep
of the rendered HTML for the legacy palette returns zero matches.
Per-library accent colors (#004090 LangGraph blue, #5a00c8 chat purple,
#1a7a40 render green, #DD0031 angular red) intentionally preserved in
template bodies — those are brand signals, not chrome.
Whitepaper-PDF covers are Group B.2 (separate PR — requires figuring
out the PDF build pipeline).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Updates apps/website/scripts/generate-whitepaper.ts so the next regen of the 4 whitepapers produces covers matching the Statusbrew-shaped marketing aesthetic. - coverGradient per paper: 4-stop pastel rainbows replaced with subtle two-stop gradients in the new palette. Each paper carries a light hint of its library's brand accent: - whitepaper.pdf (agent): #fafbfc → #eaf3ff (LangGraph blue) - angular.pdf: #fafbfc → #eaf3ff (LangGraph blue) - render.pdf: #fafbfc → #e8f5e9 (render green) - chat.pdf: #fafbfc → #f3e8ff (chat purple) - Cover footer cacheplane.ai text: #888 → #8b8fa3 (textMuted) - TOC row border + meta color: rgba(0,0,0,.06)/#444 → #e6e8ee/#555770 (border + textSecondary) The committed PDF artifacts under apps/website/public/whitepaper*.pdf and public/whitepapers/*.pdf are unchanged — they regenerate next time someone runs the whitepaper script (requires ANTHROPIC_API_KEY). Until then the deployed PDFs continue to use the legacy cover; the source of truth for the new cover lives in this script. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Contributor
Author
Group B.2 added: whitepaper PDF coversUpdates The 4 committed PDF artifacts ( This PR is the source-of-truth change. The artifact refresh is a separate, run-once action. |
blove
added a commit
that referenced
this pull request
May 13, 2026
…ow-up) Refreshes the 4 deployed whitepaper artifacts to match the new Statusbrew cover aesthetic shipped in PR #277. The PR #277 fix updated the generator script's coverGradient configs, but the actual on-disk PDFs and preview HTMLs were never regenerated (would have required ANTHROPIC_API_KEY). Approach taken here (no LLM calls needed): - Find/replace the legacy 4-stop pastel gradient in each *-preview.html with its per-paper subtle 2-stop tint matching PR #277's source change. - Update cover footer color (#888 → #8b8fa3 / textMuted) and TOC row styles (rgba(0,0,0,.06)/#444 → #e6e8ee/#555770) to match. - Re-render each updated HTML to PDF via Puppeteer. The LLM-generated chapter prose is unchanged — it remains correct against the current API surface (the generator script's CURRENT_API_CONTEXT + BANNED_TERMS filter has been guarding that). New reproducible script: apps/website/scripts/refresh-whitepaper-covers.ts Re-run with: pnpm tsx apps/website/scripts/refresh-whitepaper-covers.ts Files refreshed: - whitepaper-preview.html + whitepaper.pdf (overview / agent) - whitepapers/angular-preview.html + angular.pdf - whitepapers/render-preview.html + render.pdf - whitepapers/chat-preview.html + chat.pdf Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
4 tasks
blove
added a commit
that referenced
this pull request
May 13, 2026
#292) * feat(website): EB Garamond headline on OG card (item 2 follow-up) Bundles a static-weight EB Garamond Bold TTF next to opengraph-image.tsx so the share card headline renders in the marketing-site h1 typeface instead of falling back to Inter Bold. Why the TTF lives in the repo: - Google Fonts only serves Garamond as woff2, which Satori (next/og's underlying renderer) cannot decode. - The upstream variable-weight TTF trips Satori's parser with "Cannot read properties of undefined (reading '256')" on the variable font tables (fvar/STAT/MVAR/HVAR). Solution: instance the upstream variable font to wght=700 using fontTools' instancer, then drop the unused variable-font tables. Output is a clean static-weight TTF (~500KB) that Satori parses without issue. New apps/website/scripts/instance-garamond.py reproduces the TTF from upstream — re-run after any upstream font update. Also flips the route's runtime from 'edge' to 'nodejs' so the font file can be read off disk via fileURLToPath(import.meta.url). All 35 website e2e tests pass. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * chore(website): refresh whitepaper PDF covers + previews (item 1 follow-up) Refreshes the 4 deployed whitepaper artifacts to match the new Statusbrew cover aesthetic shipped in PR #277. The PR #277 fix updated the generator script's coverGradient configs, but the actual on-disk PDFs and preview HTMLs were never regenerated (would have required ANTHROPIC_API_KEY). Approach taken here (no LLM calls needed): - Find/replace the legacy 4-stop pastel gradient in each *-preview.html with its per-paper subtle 2-stop tint matching PR #277's source change. - Update cover footer color (#888 → #8b8fa3 / textMuted) and TOC row styles (rgba(0,0,0,.06)/#444 → #e6e8ee/#555770) to match. - Re-render each updated HTML to PDF via Puppeteer. The LLM-generated chapter prose is unchanged — it remains correct against the current API surface (the generator script's CURRENT_API_CONTEXT + BANNED_TERMS filter has been guarding that). New reproducible script: apps/website/scripts/refresh-whitepaper-covers.ts Re-run with: pnpm tsx apps/website/scripts/refresh-whitepaper-covers.ts Files refreshed: - whitepaper-preview.html + whitepaper.pdf (overview / agent) - whitepapers/angular-preview.html + angular.pdf - whitepapers/render-preview.html + render.pdf - whitepapers/chat-preview.html + chat.pdf Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Group B.1 of the post-merge brand sweep. Migrates the shared `wrapEmail()` and `lead-notification` email templates off the legacy aesthetic (pastel-gradient header band + zinc-200/400 palette) to the Statusbrew-shaped tokens used by the marketing site.
Customer-touching impact: every drip campaign, whitepaper-download confirmation, newsletter welcome, and lead notification email now renders with a clean white card on a slightly tinted body — no more 4-stop pastel gradient at the top. Aligns with what they'll see when they land on the marketing site after clicking through.
Changes
Per-library accent colors (`#004090` LangGraph blue, `#5a00c8` chat purple, `#1a7a40` render green, `#DD0031` angular red) preserved in template bodies — those are intentional library/brand signals, not chrome.
Test plan
Follow-up
Group B.2 — whitepaper PDF covers — still pending; will be a separate PR once the PDF build pipeline is confirmed.
🤖 Generated with Claude Code