📈 GH Trending Explorer 🎲 Surprise me

← all repos

antfu / furifont

git clone https://github.com/antfu/furifont.git v0.6.1 · 3d ago

A Japanese font that shows furigana by itself.

+9
stars, 24h · #3,679
+~68
stars, 7 days · #3,038
+394
stars, 30 days · #2,078
394
★ total · +21% this week
3
forks · 4 open issues

Star history (as recorded here)

2026-10-20 · 365 ★ 2026-10-23 · 394 ★
LanguageTypeScript
LicenseMIT
Created2026-10-12 (11d ago)
Last push2d ago
Watchers0
OwnerUser

GitHub topics

Links

README excerpt
# Furifont
**Furigana, set by the font.** A Japanese font that shows furigana by itself. The text stays plain: no ` ` markup, no JavaScript, no plugin. It works everywhere that supports custom fonts.
Check out the demo and playground on **furifont.antfu.me**
 [code] 
## How it works
Furifont is compiled from Source Han Sans JP or Source Han Serif JP. A build step reads a dictionary of thousands of words and draws the furigana into new glyphs. For each word, the font holds a ligature: 今日 becomes one glyph with きょう above it. Longer words win (日本語 before 日本), and a kanji with no clear reading stays bare. Details on the website and in docs/design.md.
> [!WARNING]
> Furigana might be incorrect, due to the limits of fonts: a font sees one run of kanji at a time, not the sentence around it. Keep that in mind when you read.
## Download
Each release has Sans and Serif, in Hiragana and Romaji, Regular as OpenType and WOFF2, and a variable font of every weight from ExtraLight to Heavy (`Furifont Sans VF`), as TrueType and WOFF2, whose furigana follows the weight of the text. Set `line-height` to 1.6 or more so the furigana is not clipped.
## Use on websites
The website has a bookmarklet and a userscript that set any page in Furifont, with optional okurigana readings.
## Build your own
Choose another base font, word list, furigana letters or sizes. Needs Node 22.18 or later.
 [code] 
Settings live in `furifont.config.json`; their defaults are in `packages/core/src/defaults.ts`.
| Package | |
| --- | --- |
| `furifont` | The CLI and the server behind Customize |
| `@furifont/core` | Plans glyphs and OpenType rules from a dictionary |
| `@furifont/compiler` | Draws the planned glyphs into a base font |
| `@furifont/dictionary` | The compiled dictionary |
| `@furifont/helper-web` | Sets the Japanese text of any web page in Furifont: the bookmarklet's and the userscript's engine |
| `packages/app` | The website and Customize (Nuxt) |
See CONTRIBUTING.md to work on it.
## Credits
Furifont is inspired by:
- Mengshen-pinyin-font, which puts pinyin on Chinese characters inside the font.
- Fira Code, which uses OpenType ligatures to change how text looks.
## License
- **Code:** MIT.
- **Fonts:** SIL OFL 1.1, derived from Source Han Sans and Serif by Adobe.
- **Dictionary data and reading rules:** CC BY-SA 4.0, from JMdict, JMnedict, KANJIDIC2 (EDRDG), JmdictFurigana, yomitan-jlpt-vocab and Tatoeba (CC BY 2.0 FR), with place names from Japan Post's postal code data and JR station names from Desktop Tetsu.