"Zen Sans" appears nowhere in the binaries — the name table says Zen, zen.css declares Zen, the binding is Zen — so the prose that called it Zen Sans was the only place the name existed. The readme, the package readme, the specimen description and the keyword list now say what the font says. packages/zen/font/ is deleted: five .d.ts files re-exporting the root, in a directory the exports map does not mention and nothing resolves through. It is the layout of the package this was forked from, and it had been shipping. `files` now bounds the tarball to what a consumer resolves — dist, the root types, the licence and the readme. scripts/ is how the package is BUILT, and six build scripts were being downloaded by every install. The types are documented, and documented with facts a caller needs and cannot infer: which family each binding declares and which custom property it sets. The doc that was there before came with the fork — it described a "Zen Sans" family, a ZenSansNonVariable export and a deprecation ladder belonging to another package's history. Every copyright the licence requires is untouched: LICENSE.txt lists both holders, and every one of the 219 faces carries both notices in its own name table, which is what OFL §2 asks of a copy travelling alone.
2.6 KiB
Zen
Zen, Zen Mono & Zen Pixel
Zen is the Hanzo typeface. Sans is a geometric sans-serif in the Swiss line — one variable file across weight 100–900, drawn for headlines, wordmarks and text alike. Mono is its fixed-width companion, cut for code editors, terminals and diagrams. Pixel is a display family of five cuts — Square, Grid, Circle, Triangle, Line — one alphabet drawn five ways.
Installing
Fonts to install on a machine are in fonts/: otf/ and ttf/ for the
static cuts, variable/ for the one-file version of each family, webfonts/ for
.woff2. make build regenerates all of it from sources/.
For a web or app surface, take the package instead — it carries the faces, the stylesheet and the presets:
pnpm add @hanzo/font
import '@hanzo/font/css' // the faces
import '@hanzo/font/presets.css' // the presets
Then name the role rather than the face: var(--font-sans), var(--font-mono).
Full instructions are in the package README, and
font.hanzo.ai is the live specimen.
Building
CI builds the fonts on every push — look under Actions for the latest. To build on your own machine:
make buildproduces the font files.make testruns Fontspector's quality checks.make proofwrites HTML proofs.
crates/zen is the type tooling behind the presets — it reads outlines, measures
optical white between pairs, and fits one setting to a target shape. It compiles to
a native binary and to wasm from the same source, which is what lets the specimen
page run the fitter live.
License
This Font Software is licensed under the SIL Open Font License, Version 1.1, in
LICENSE.txt, which ships beside the binaries. The license is also
available with a FAQ at https://scripts.sil.org/OFL
Repository layout
Structured as Unified Font Repository v0.3, adjusted for the Google Fonts build workflow.