What changed, and what it costs

Every released version, and what it does to text you already have.

Versions here are spec versions, and every runtime publishes the same number: 1.2.0 on npm, PyPI, pkg.go.dev, RubyGems and Packagist is the same spec and the same bytes out. Only released versions appear — what sits unreleased in the repository is not a changelog entry.

Each entry is a behaviour change with its cost stated: a rule that starts firing where it did not before also fires somewhere you may not want it, and both sides are pinned by fixtures. In the tables below, stands for U+00A0 NO-BREAK SPACE and is not in the output itself — showing it is the only way a changelog can say what the nbsp rule actually did.

17 September 2026

1.2.0

Three fixes from production reports: file extensions keep their space, French spacing survives an inline element, and an elision before a quotation mark is set.

LocaleModeInBeforeAfter
en-UStextRequires .NET 8 and a .gitignore file.Requires.NET 8 and a.gitignore file.Requires .NET 8 and a .gitignore file.
frhtml<strong>Label :</strong> oui<strong>Label:</strong> oui<strong>Label⍽:</strong> oui
frtextd'«idée»d'«⍽idée⍽»d’«⍽idée⍽»

9 September 2026

1.1.0

Short quotations convert again, and rock 'n' roll is elided in every locale.

LocaleModeInBeforeAfter
en-UStextHe said 'no' to me.He said 'no' to me.He said “no” to me.
fitextrock 'n' rollrock 'n' rollrock ’n’ roll

7 September 2026

1.0.0

The first frozen spec, and the first published runtime.

Patch releases

Patch releases carry no behaviour change and no spec change. polytypo-js 1.0.1 moved npm publishing to trusted publishing (OIDC) and rewrote its README; 1.0.2, along with polytypo-python 1.0.1, polytypo-go 1.0.1 and polytypo-ruby 1.0.1, dropped the word “microtypography” from the published package description. The spec stayed at 1.0.0 throughout, and output was byte-identical.

Already using polytypo? Add our badge

Two lines, same shape as any other embeddable badge — a script tag and a span. No per-embed network call: the whole render table ships in that one script. Pick a language and a theme, then copy the code into your footer, About page, or credits section. Embedding notes cover what a Content Security Policy has to allow and how to re-render on a theme switch. Sites with the badge are listed on Sites using polytypo.