Skip to content

fix(macos): enable font smoothing so glyphs render at full weight - #446

Open
phall1 wants to merge 1 commit into
vercel-labs:mainfrom
phall1:upstream/font-smoothing
Open

phall1 wants to merge 1 commit into
vercel-labs:mainfrom
phall1:upstream/font-smoothing

Conversation

@phall1

@phall1 phall1 commented Sep 19, 2026

Copy link
Copy Markdown

macOS was drawing unsmoothed glyphs, so text looked thinner than the system UI. Turn font smoothing on for canvas text.

@vercel

vercel Bot commented Sep 19, 2026

Copy link
Copy Markdown

Someone is attempting to deploy a commit to the Vercel Labs Team on Vercel.

A member of the Team first needs to authorize it.

Every glyph the AppKit host draws lands in a CGBitmapContext, and font
smoothing - macOS's stem darkening for text - is off by default on the
transparent backing all three of those contexts use. The result is that
ALL text renders systematically thin, which is what the faint-text
report was about.

Measured with phux-cockpit's scripts/measure-glyph-smoothing.m against
the bundled JetBrains Mono NL, 13pt:

  scale 2   solid stem pixels  2341 -> 3164   (+35.2%)
  scale 1   solid stem pixels   635 ->  940   (+48.0%)

Filling an opaque ground under the cells was also considered and is NOT
included: measured on the same harness it moves solid stem pixels by
-0.3% (2341 -> 2334), so it buys no weight while adding a full-screen
fill to every frame.

The CPU reference renderer never touches CoreText and blends coverage
itself, so it does not share the defect and no reference screenshot can
catch a regression here. Re-measure rather than eyeball.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@phall1
phall1 force-pushed the upstream/font-smoothing branch from 8bed046 to 7fe46cb Compare September 20, 2026 00:01
@phall1
phall1 marked this pull request as ready for review September 20, 2026 05:19

This branch has not been deployed

No deployments
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