Skip to content

improvement(emails): size the header wordmark to the landing navbar's rule - #6648

Merged
waleedlatif1 merged 4 commits into
stagingfrom
worktree-email-logo-size
Aug 12, 2026
Merged

improvement(emails): size the header wordmark to the landing navbar's rule#6648
waleedlatif1 merged 4 commits into
stagingfrom
worktree-email-logo-size

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Size the email header wordmark 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. It was 34px of ink, over 2x the body text.
  • Ink it #434343 (textBody) instead of #1a1a1a — the landing fills the mark with --text-body so it "reads as one solid ink that matches the surrounding nav text", and every other line in the email already uses that value.
  • Move the logotype paths to lib/branding/wordmark.ts. The navbar renders them inline; scripts/generate-email-wordmark.ts rasterizes the same outlines into the PNG email clients require (they strip inline SVG). One source, so the two surfaces can't drift.
  • Whitelabeled logos follow the same height, so a custom mark reads at the same weight.

Type of Change

  • Improvement

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.json clean; biome clean.
  • Rendered every affected template locally against a real render path and compared four sizes side by side.
  • Generator is deterministic — re-running produces a byte-identical PNG.

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

… 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.
@vercel

vercel Bot commented Aug 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Aug 12, 2026 11:29pm

Request Review

@cursor

cursor Bot commented Aug 12, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Branding and email layout sizing only; no auth, data, or business-logic changes.

Overview
Centralizes the Sim logotype in lib/branding/wordmark.ts (WORDMARK_PATHS, WORDMARK_VIEW_BOX, EMAIL_WORDMARK_SIZE) so the landing navbar SVG and the email PNG raster share one source of outlines.

SimWordmark stops embedding path data locally and renders from those shared constants. EmailLayout pins header image dimensions from EMAIL_WORDMARK_SIZE (replacing the previous 68×41 box) and sets whitelabel custom logo height to the same value so both marks match visual weight.

Adds wordmark.test.ts guards on the committed wordmark.png (retina resolution, aspect ratio vs display box and view box, four glyph paths). lib/branding/index.ts re-exports the wordmark module and switches to @/lib/branding/... import paths.

Reviewed by Cursor Bugbot for commit d32b860. Configure here.

@greptile-apps

greptile-apps Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR aligns email wordmark sizing and color with the landing navbar while centralizing the shared vector outlines.

  • Extracts the wordmark view box and glyph paths into a shared branding module.
  • Uses those shared outlines in the landing navbar and a regenerated raster asset in email headers.
  • Applies a consistent 20px height to built-in and whitelabeled email logos.
  • Adds tests covering raster resolution, aspect ratio, and glyph completeness.
  • Converts the branding barrel’s sibling re-exports to the required absolute aliases.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

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

Comment thread apps/sim/lib/branding/index.ts Outdated
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.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

Comment thread apps/sim/lib/branding/wordmark.ts
…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.
@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@greptile

@waleedlatif1

Copy link
Copy Markdown
Collaborator Author

@cursor review

@waleedlatif1
waleedlatif1 merged commit f890c89 into staging Aug 12, 2026
23 checks passed
@waleedlatif1
waleedlatif1 deleted the worktree-email-logo-size branch August 12, 2026 23:30

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ 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.

waleedlatif1 added a commit that referenced this pull request Aug 13, 2026
#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.
waleedlatif1 added a commit that referenced this pull request Aug 13, 2026
#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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant