Skip to content

Enable IBM Plex Sans stylistic alternates: dotted zero, simple a/g - #5654

Merged
norman-abramovitz merged 1 commit into
cloudfoundry:developfrom
nabramovitz:norm/font/plex-salt
Jul 19, 2026
Merged

Enable IBM Plex Sans stylistic alternates: dotted zero, simple a/g#5654
norman-abramovitz merged 1 commit into
cloudfoundry:developfrom
nabramovitz:norm/font/plex-salt

Conversation

@nabramovitz

Copy link
Copy Markdown
Contributor

The interface now renders Plex's salt alternates: a dotted zero, single-storey a, and simple g. The dotted zero separates 0 from O without colliding with ø/Ø — a slashed zero (the zero feature) reads as the Nordic vowel in Danish/Norwegian text, which is why salt was chosen over zero.

The previously vendored files couldn't render any alternate: they were Google-Fonts-pipeline subsets, which strip the zero/salt/ss features a family ships (verified with fontTools — the old files carried no GSUB substitution features at all). The seven faces are re-vendored from IBM's plex-sans 1.1.0 release, subset to the same latin range with all layout features kept; about 5KB heavier per face. Plex Mono is unchanged.

Verified live: body computes font-feature-settings: "salt", and 0O renders dotted against round, a and g single-storey, and ø stays visibly distinct from the zero. Follows #5641; the operator font-selection work (#5640) measures these same features per family.

Enable IBM Plex Sans's salt feature interface-wide: dotted zero,
single-storey a, simple g. The dotted zero disambiguates 0 from O
without colliding with the Nordic vowel o-slash the way the
slashed-zero `zero` feature would - text like Danish or Norwegian
keeps its slash meaning one thing and the zero's dot meaning another.
That collision is why salt was chosen over zero.

The vendored Plex Sans files could not render any of this: they were
Google Fonts pipeline subsets, which strip the zero, salt and ss
features a family ships. The seven faces are re-vendored from IBM's
own release (plex-sans 1.1.0), subset to the same latin range with
every OpenType layout feature kept (fontTools pyftsubset, about 5KB
more per face). Plex Mono is untouched - salt is an interface-face
decision, and the mono files carry no alternates.

Verified in the running app: body computes font-feature-settings
"salt"; 0O renders dotted against round, a and g single-storey, and
o-slash stays visibly distinct from the zero.

@norman-abramovitz norman-abramovitz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@norman-abramovitz
norman-abramovitz merged commit 38d51e4 into cloudfoundry:develop Jul 19, 2026
22 checks passed
@nabramovitz
nabramovitz deleted the norm/font/plex-salt branch July 19, 2026 13:00
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.

2 participants