Integrated Code 火 is a code-centric font combining Fira Code and Source Han Mono. The duospaced Source™ Han Mono glyphs are twice the width of the monospaced Fira Code glyphs, so you can have consistent alignment.
(机器翻译) Integrated Code 火是一款以代码为核心设计的字体,融合了Fira Code与Source Han Mono的特性。其双倍间距的Source™ Han Mono字符宽度是等宽Fira Code字符的两倍,从而实现统一的代码对齐效果。
Download the compiled fonts from the latest release. The compiled fonts are not in the repository source code.
从最新版本下载编译后的字体。编译后的字体不在仓库源代码中。
You want a Western and Han mono-/duospaced programming font with ligatures and consistent alignment.
The website "Programming Fonts" has previews of hundreds of fonts.
- Fira Code is my favorite code-centric font.
- As of 2026 February 13, the last compiled version was released on 2021 December 6, and I have more recently compiled versions in my fork of Fira Code.
| "Fira" | "Source" | "Source Han" | "Noto" | ||
|---|---|---|---|---|---|
| Fira Mono | Source Sans | Source Han Sans | Noto Sans CJK | ||
| ⬇️ | ⬇️ | ⬇️ | ⬇️ | ||
| Fira Code | Source Code Pro | ➡️ | Source Han Code JP | Noto Sans Mono CJK | |
| ⬇️ | ⬇️ | ||||
| Fira Code HH | Source Han Mono |
↘️ ↙️
Integrated Code 火
The repository is optimized to work with Visual Studio Code, but that is not required.
-
Clone or fork the repository. (Visual Studio Code instructions.)
-
Install the Python packages in a virtual environment with "uv"; from the folder with the repository, run:
uv sync
- In the names of files and fonts, to avoid confusion, don't use these characters as separators: - (hyphen), – (en dash), — (em dash), or similar characters. For some readers, they can be ambiguous due to 一, which is an ideograph representing "1".
- When preparing files, only make changes in the "workbench" directory. Never change files in directories with glyph and metadata information unless you intend the change to be permanent and universal.
| Integrated Code 火 | Fira Code | Source Han Mono |
|---|---|---|
| - | - | ExtraLight |
| Light | Light | Light |
| Regular | Regular | Regular |
| Retina | Retina | Normal |
| Medium | Medium | Medium |
| SemiBold | SemiBold | Bold |
| Bold | Bold | Heavy |
Run go.py.
I followed the instructions seven-year-old instructions in the Source Han Mono repository as closely as possible, which should hypothetically produce the same file in their Release. My file is larger than the release file, and I can't figure out if my is fully functional or in what other ways it differs from the official release. I created this unnecessary process to learn how to make TTC files.
- Run
foundry.smithyCastsFontFamily('SourceHanMono'). - Run makeTTCSuper.cmd.
Based on the out-of-date instructions in the Source Han Mono repository, this process produces one TTC file for each of the five locales in Source Han Mono. The files seem to work, and they are far smaller than the comprehensive TTC file.
- Run
foundry.smithyCastsFontFamily('SourceHanMono'). - Run makeTTCLocale.cmd.
- You contribute to the project?
- Improve configuration management.
- Improve and generalize flow.
- Weights:
- Fira Code has six different weights.
- Source Han Mono has seven different weights.
- Monospaced Noto Sans CJK has two different weights.
- Replace English-language weight names with weight values. "Regular", for example, may become "400".
- Investigate: some monospaced glyphs in Noto Sans CJK are updated replacements for the glyphs in Source Han Mono.
- Investigate: some monospaced glyphs in Source Han Code JP are updated replacements for the glyphs in Source Han Mono.
- Improve font file "packaging", such as:
- One file instead of six.
- Smaller total size.
- Create versions for other languages and writing systems.
- If this project were to have a well-designed process for compiling a code-centric font with Latin and simplified Chinese glyphs, it would be relatively easy to expand the process to some other languages and writing systems.
- There seem to be tens of thousands of compatible glyphs in Source Han Mono, Source Han Code JP, and Noto Sans CJK.
- I strongly oppose forcing all writing systems to use Latin characters as the name of the writing system.
- Create one file: updated pan-CJK with Fira Code.
A tentative list of font collections and names:
| Font name | Language | Writing system(s) |
|---|---|---|
| Integrated Code 火 日本 | Japanese | 漢字, ひらがな, カタカナ Kanji, Hiragana, Katakana |
| Integrated Code 火 한국인 | Hangugeo Korean | 한글, 漢字 Hangul, Hanja |
| Integrated Code 火 简化字 | Mandarin and "爱国文" | 简化字 Simplified Chinese characters |
| Integrated Code 火 台灣 | Mandarin | 正體字 Straight Traditional Chinese characters |
| Integrated Code 火 香港 | Yue/Cantonese | 繁體字 Complicated Traditional Chinese characters |
- Source is a trademark of Adobe in the United States and/or other countries.
- Fira Mono is a trademark of The Mozilla Corporation.
- You may license the font, Integrated Code 火, with Reserved Font Name "Integrated", under the terms of the SIL Open Font License, Version 1.1.
- You may license the files, other than the font files, in this repository of which I am the copyright holder under the terms of the Creative Commons Attribution-NonCommercial 4.0 International Public License.
- Adobe writing "and/or" in their trademark notice is stupid.
- The Mozilla Corporation has probably abandoned the Fira Mono trademark.
