improvement(emails): size the header wordmark to the landing navbar's rule - #6648
Conversation
… rule The email header rendered the wordmark at 34px of ink against 16px body copy, and inked it #1a1a1a while every other line of the email uses #434343. Size it by the rule the landing navbar states: the mark stands 2px above and below its neighbouring text (18px against 14px chip labels), so 20px against the email's 16px body copy. Rasterize it from the same brand outlines the navbar renders, filled with the email's own textBody token, so the two surfaces cannot drift.
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
PR SummaryLow Risk Overview
Adds Reviewed by Cursor Bugbot for commit d32b860. Configure here. |
Greptile SummaryThe PR aligns email wordmark sizing and color with the landing navbar while centralizing the shared vector outlines.
Confidence Score: 5/5The PR appears safe to merge. No blocking failure remains.
|
| Filename | Overview |
|---|---|
| apps/sim/app/(landing)/components/navbar/components/sim-wordmark/sim-wordmark.tsx | Replaces duplicated inline wordmark geometry with shared branding constants while preserving the navbar’s dimensions and styling. |
| apps/sim/components/emails/components/email-layout.tsx | Derives built-in and custom email logo dimensions from the shared 20px wordmark display size. |
| apps/sim/lib/branding/index.ts | Re-exports branding modules through absolute aliases, fully resolving the prior import-style finding without introducing a resolution failure or cycle. |
| apps/sim/lib/branding/wordmark.test.ts | Adds guards for raster density, display and outline aspect ratios, and expected glyph count. |
| apps/sim/lib/branding/wordmark.ts | Centralizes the wordmark geometry and email display dimensions used across web and email surfaces. |
| apps/sim/public/brand/color/email/wordmark.png | Regenerates the email-compatible raster wordmark for the new dimensions and color. |
Reviews (3): Last reviewed commit: "docs(branding): correct the wordmark com..." | Re-trigger Greptile
The raster is committed at 4x, so the display box can be retuned without re-exporting it — the script only ever ran by hand, and the test pinning the asset to an exact multiple of the box would have forced a pointless regeneration on any size tweak. Keep the shared outlines the navbar and 8 other surfaces already render, record how the asset was produced on the size constant, and assert the property that actually matters: the asset out-resolves its display box.
…lias Matches the repo's absolute-import rule and the majority of lib barrels (billing, table, uploads and five others), instead of leaving this file split between relative and absolute re-exports.
|
@cursor review |
…script Two TSDoc blocks still pointed at scripts/generate-email-wordmark.ts as how the email raster is produced. Point them at the committed export and the size constant that records its fill and scale instead.
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit d32b860. Configure here.
#6648 shrank the header wordmark by re-exporting the raster edge-to-edge at 168x80, replacing a 272x164 file whose mark was inset. Same URL, new proportions — so every email already delivered, which keeps the width=68 height=41 it was sent with and refetches that URL forever, now stretches the mark ~20%, and a client still holding the old bytes squashes it ~22% into the new box. That is the squished logo on staging. Re-export onto the original 272x164 canvas instead, with the outlines at their own aspect (the previous asset was itself 3.9% squashed) and the textBody fill. Old mail renders against its own numbers as before; the header takes a 43x26 box for 20.7px of ink. A test pins the canvas, since that shape — not the display size — is what old mail depends on.
#6648 shrank the header wordmark by re-exporting the raster edge-to-edge at 168x80, replacing a 272x164 file whose mark was inset. Same URL, new proportions — so every email already delivered, which keeps the width=68 height=41 it was sent with and refetches that URL forever, now stretches the mark ~20%, and a client still holding the old bytes squashes it ~22% into the new box. That is the squished logo on staging. Re-export onto the original 272x164 canvas instead, with the outlines at their own aspect (the previous asset was itself 3.9% squashed) and the textBody fill. Old mail renders against its own numbers as before; the header takes a 43x26 box for 20.7px of ink. A test pins the canvas, since that shape — not the display size — is what old mail depends on.
Summary
#434343(textBody) instead of#1a1a1a— the landing fills the mark with--text-bodyso it "reads as one solid ink that matches the surrounding nav text", and every other line in the email already uses that value.lib/branding/wordmark.ts. The navbar renders them inline;scripts/generate-email-wordmark.tsrasterizes the same outlines into the PNG email clients require (they strip inline SVG). One source, so the two surfaces can't drift.Type of Change
Testing
vitest run lib/branding components/emails— 36 passing, including a new guard that fails if the display size changes without regenerating the asset (verified it goes red).tsgo --noEmit -p apps/sim/tsconfig.jsonclean; biome clean.Checklist