Rounded, open-source typefaces for interfaces, code and screens.
Drawn from scratch, in the spirit of Inter and Geist.
Try the type tester.
- Three type families. Sans for interfaces and text, Mono for code with ligatures, and Pixel for displays and game-like moments, all with matching proportions and weights.
- 11 scripts, 656 languages. Multilingual companions for Arabic, Armenian, Georgian, Hebrew, Japanese, Korean, and Simplified Chinese. Armenian and Georgian include italics; Arabic and Hebrew include mark positioning for joined and pointed text.
- Variable and static fonts. 24 variable fonts (wght 100-900, italics where applicable, and ROND 0-100 for Pixel) plus 216 static weights. Available as OTF, TTF, WOFF2, and WOFF.
- Clean-room design. All 19,311 characters drawn from scratch, in the spirit of Inter and Geist. No outlines copied, traced, or derived from any other font.
| Family | For | Axes |
|---|---|---|
| Bloxwap Sans | Interfaces and text | wght 100-900 · italics |
| Bloxwap Mono | Code and terminals, with code ligatures | wght 100-900 · italics |
| Bloxwap Pixel | Displays, tickers, game-like moments | wght 100-900 · ROND 0-100 · italics |
| Sans / Mono Arabic | Arabic, Persian, Urdu, Pashto, Kurdish, Sindhi, Uyghur, Jawi… | wght 100-900 |
| Sans / Mono Armenian | Armenian, proportioned for multilingual text | wght 100-900 · italics |
| Sans / Mono Georgian | Mkhedruli and Mtavruli uppercase | wght 100-900 · italics |
| Sans / Mono Hebrew | Hebrew and full Niqqud | wght 100-900 |
| Sans / Mono JP | Japanese kana and Jōyō kanji | wght 100-900 |
| Sans / Mono KR | Korean (all 11,172 Hangul syllables) | wght 100-900 |
| Sans / Mono SC | Simplified Chinese (3,500 standard characters) | wght 100-900 |
npm install @bloxwap/fontimport { BloxwapSans } from '@bloxwap/font/sans'; // next/font: .className, .variable (--font-bloxwap-sans)
import '@bloxwap/font/css'; // or plain CSS: "Bloxwap Sans", "Bloxwap Mono", "Bloxwap Pixel"Or link the hosted stylesheet:
@import url("https://bloxwap.github.io/font/bloxwap-font.css");
body { font-family: "Bloxwap Sans", system-ui, sans-serif; }
code { font-family: "Bloxwap Mono", ui-monospace, monospace; }One family name covers every script: the stylesheet loads companions with unicode-range only when a page uses them. Downloads: latest release. Self-hosting: Installation.
0.1.2 is an early developer preview; expect breaking changes before 1.0.
Guides, glyph charts, and the type tester: https://bloxwap.github.io/font/
This repository is a workspace: the type design and build tools live in packages/font, the @bloxwap/font npm package in packages/npm, and the documentation site in apps/docs.
bun install
bun run fonts:setup # Python 3.12 toolchain (uv) for the font build
bun run fonts:build # build every family into packages/font/fonts and the website
bun run dev # docs and type tester at http://localhost:3904Requires Bun. Font build requires Python 3.12 or newer and depends on fontmake, fonttools, and uv.
With the docs running, check glyph copy identity, accessible control names, keyboard access, replacement fonts and text-spacing reflow:
DOCS_URL=http://localhost:3904/ bun run docs:accessibilityThe browser suite runs in Chromium, Firefox and WebKit. Its 320 px viewport and 200% root text size checks complement manual browser zoom and screen-reader testing. For font raster previews and Unicode QA, see Readability and text integrity.
SIL Open Font License 1.1. © 2026 Bloxwap, Inc. Clean-room: no outlines were copied, traced or derived from any other font.