Skip to content

Convert the logo's text to outlines - #13

Merged
laveshparyani merged 1 commit into
mainfrom
fix/outline-logo-text
Oct 1, 2026
Merged

laveshparyani merged 1 commit into
mainfrom
fix/outline-logo-text

Conversation

@laveshparyani

Copy link
Copy Markdown
Collaborator

The mark positioned a live <text>riti</text> in High Tower Text — a font no
visitor's browser has, and which the SVG never embedded. Every visitor has been
seeing that part of the logo in a substitute serif.

It matters more since #8 took the wordmark out of the header and footer: the
mark is now the only branding on the site.

What changed

Both SVGs carry the glyphs as a <path>, generated with fontTools from the
genuine High Tower Text — the same face the file always asked for, confirmed by
PostScript name (HighTowerText-Reg) against both the SVG's own reference and
the subset embedded in brand-source/logo-master.pdf.

The font has no kern or GPOS table, so plain advance widths are exactly what
any renderer would use. A useful sanity check fell out of that: the text's total
advance lands at x = 583.57 against a 583.58-wide viewBox — the artboard
edge the logo was drawn to.

The font-family / font-size declaration is gone from both files. Nothing
references a font now, so there is nothing left to resolve differently on
someone else's machine.

Why not the master PDF

brand-source/README.md records this properly. In short: all ten of its
compressed streams are damaged by line-ending normalisation applied to a binary
file — the same damage that killed the PNGs removed in #11.

Diagnosed from a PNG in the same commit whose correct bytes are known:

expected  89 50 4e 47 0d 0a 1a 0a      PNG signature
observed  89 50 4e 47 0d 0a 1a 0d 0a

A lone 0a became 0d 0a, a lone 0d became 0d 0a, an existing 0d 0a was
left alone — and the file's 0a and 0d counts are exactly equal, confirming
full CRLF normalisation. That is ambiguous, not merely unknown: each
surviving 0d 0a could have been 0d, 0a or 0d 0a. The font stream alone
carries 593 of them. The PDF stays in the repo as a record; it is not shipped.

Verification

Rasterised old and new at 2x and diffed, on a machine that has the font
installed so the old file renders as designed:

differing pixels 2,655 of 1,116,819 (0.24%)
ink area delta 0.057%
diff bounding box x 252.5–577.6, y 247.5–411.1
computed text box x 252.9–577.9, y 247.6–411.1
fully-inked ↔ fully-blank flips 0

Every differing pixel is inside the text's own bounding box — nothing outside
the glyphs changed — and not one is solid in one render and blank in the other.
The difference is antialiasing between text and path rasterisation.

Files grow 2.5kB → 5.1kB each. They are also the favicon, so that is the whole
cost.

The mark positioned a live <text>riti</text> in High Tower Text, a font no
visitor's browser has and which the SVG never embedded. Every visitor has been
seeing that part of the logo in a substitute serif. It mattered more after the
wordmark came out of the header and footer, because the mark became the only
branding on the site.

Both SVGs now carry the glyphs as a path, generated with fontTools from the
genuine High Tower Text — same face the file always asked for, confirmed by
PostScript name against both the SVG reference and the subset embedded in
brand-source/logo-master.pdf. The font has no kern or GPOS table, so plain
advance widths are what any renderer would have used. The text's total advance
lands at x=583.57 against a viewBox 583.58 wide, which is the artboard edge the
logo was drawn to.

The font declaration is gone from both files. Nothing references a font now, so
there is nothing left to resolve differently on someone else's machine.

brand-source/README.md records why the master PDF could not be used: all ten of
its streams are damaged by line-ending normalisation applied to a binary file.
That is ambiguous rather than merely unknown — each surviving CRLF could have
been CR, LF or CRLF — so it is not recoverable, and the font stream alone has
593 of them.

Verified by rasterising old and new at 2x and diffing, on a machine that has
the font so the old file renders as designed: every differing pixel falls
inside the text's own bounding box, and not one is fully inked in one and fully
blank in the other. The difference is antialiasing.
@laveshparyani
laveshparyani merged commit adf401c into main Oct 1, 2026
3 checks passed
@laveshparyani
laveshparyani deleted the fix/outline-logo-text branch October 1, 2026 08:43
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