Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
M

maple-font

> 编程语言
Open source

Maple Mono: Open source monospace font with round corner, ligatures and Nerd-Font icons for IDE and terminal, fine-grained customization options. 带连字和控制台图标的圆角等宽

27.8K stars0 likes0 views
WebsiteGitHub

About

Maple Mono: Open source monospace font with round corner, ligatures and Nerd-Font icons for IDE and terminal, fine-grained customization options. 带连字和控制台图标的圆角等宽

> [!IMPORTANT] > This branch has been frozen as a snapshot of V7. V8 will include the latest features and bug fixes. see it in [`variable` branch](https://github.com/subframe7536/maple-font/tree/variable).

Download | Website | English | 中文 | 日本語

# Maple Mono Maple Mono is an open source monospace font focused on smoothing your coding flow. I created it to enhance my working experience, and hope that it can be useful to others. V7 is a completely remade version, providing variable font format and source files of the font project, redesigning more than half of the glyphs, and offering smarter ligatures. You can checkout V6 [here](https://github.com/subframe7536/maple-font/tree/main) ## Features - ✨ Variable - Infinity font weights with fine-grained italic glyphs. - ☁️ Smooth - Round corner, brand-new glyph of `@ $ % & Q ->` and cursive `f i j k l x y` in italic style. - 💪 Useful - Large amount of smart ligatures, see in [`features/`](./source/features/README.md) - 🎨 Icon - First-Class [Nerd-Font](https://github.com/ryanoasis/nerd-fonts) support, make your terminal more vivid. - 🔨 Customize - Enable or disable font features as you want, just make your own font. ### Simplified Chinese, Traditional Chinese, and Japanese CN version based on [Resource Han Rounded](https://github.com/CyanoHao/Resource-Han-Rounded) provides complete character set support for Chinese development environments, including Simplified Chinese, Traditional Chinese, and Japanese. Meanwhile, the characteristic of perfect 2:1 alignment between Chinese and English allows this font to achieve a neat, uniform, beautiful, and comfortable appearance in scenarios such as multilingual display and Markdown tables. However, the spacing of Chinese characters is larger compared to other popular Chinese fonts. See details in [release notes](https://github.com/subframe7536/maple-font/releases/tag/cn-base) and [this issue](https://github.com/subframe7536/maple-font/issues/211). - No variable format support in CN version ## ScreenShots - Pictured by [CodeImg](https://github.com/subframe7536/vscode-codeimg) - Theme: [Maple](https://github.com/subframe7536/vscode-theme-maple) - Config: font size 16px, line height 1.8, default letter spacing ## Download You can download all the font archives from [Releases](https://github.com/subframe7536/maple-font/releases/tag/v7.9). ### Scoop (Windows) ```sh # Add bucket scoop bucket add nerd-fonts # Maple Mono (ttf format) scoop install Maple-Mono # Maple Mono NF scoop install Maple-Mono-NF # Maple Mono NF CN scoop install Maple-Mono-NF-CN ``` All packages (Click to expand) ```sh # Add bucket scoop bucket add nerd-fonts # Maple Mono (ttf format) scoop install Maple-Mono # Maple Mono (hinted ttf format) scoop install Maple-Mono-autohint # Maple Mono (otf format) scoop install Maple-Mono-otf # Maple Mono NF scoop install Maple-Mono-NF # Maple Mono NF CN scoop install Maple-Mono-NF-CN ``` ### Homebrew (MacOS, Linux) ```sh # Maple Mono brew install --cask font-maple-mono # Maple Mono NF brew install --cask font-maple-mono-nf # Maple Mono NF CN brew install --cask font-maple-mono-nf-cn ``` All packages (Click to expand) ```sh # Maple Mono brew install --cask font-maple-mono # Maple Mono NF brew install --cask font-maple-mono-nf # Maple Mono CN brew install --cask font-maple-mono-cn # Maple Mono NF CN brew install --cask font-maple-mono-nf-cn # Maple Mono Normal brew install --cask font-maple-mono-normal # Maple Mono Normal NF brew install --cask font-maple-mono-normal-nf # Maple Mono Normal CN brew install --cask font-maple-mono-normal-cn # Maple Mono Normal NF CN brew install --cask font-maple-mono-normal-nf-cn ``` ### Arch Linux ArchLinuxCN repository allows downloading a single package zip file without downloading all the package zip files in pkgbase, but AUR does not. (If you have a good solution, please contact Cyberczy([email protected])) #### ArchLinuxCN (Recommended) ```sh # Maple Mono (Ligature TTF unhinted) paru -S ttf-maplemono # Maple Mono NF (Ligature unhinted) paru -S ttf-maplemono-nf-unhinted # Maple Mono NF CN (Ligature unhinted) paru -S ttf-maplemono-nf-cn-unhinted ``` All packages (Click to expand) ``` … ``` #### AUR (Not Recommended) ```sh # Maple Mono (Ligature TTF unhinted) paru -S maplemono-ttf # Maple Mono NF (Ligature unhinted) paru -S maplemono-nf-unhinted # Maple Mono NF CN (Ligature unhinted) paru -S maplemono-nf-cn-unhinted ``` All packages (Click to expand) ``` … ``` ### Nixpkgs (NixOS, Linux, MacOS) ```nix fonts.packages = with pkgs; [ # Maple Mono (Ligature TTF unhinted) maple-mono.truetype # Maple Mono NF (Ligature unhinted) maple-mono.NF-unhinted # Maple Mono NF CN (Ligature unhinted) maple-mono.NF-CN-unhinted ]; ``` All packages (Click to expand) ``` … ``` ## CDN ### Maple Mono - [fontsource](https://fontsource.org/fonts/maple-mono) - [ZeoSeven Fonts](https://fonts.zeoseven.com/items/443/) ### Maple Mono CN - [The Chinese Web Fonts Plan (中文网字计划)](https://chinese-font.netlify.app/zh-cn/fonts/maple-mono-cn/MapleMono-CN-Regular) - [ZeoSeven Fonts](https://fonts.zeoseven.com/items/442/) ## Usage & Feature Configurations See in [document](./source/features/README.md) or try it in [Playground](https://font.subf.dev/en/playground) ## Naming FAQ ### Features - **Ligature**: Default version with ligatures (`Maple Mono`) - **No-Ligature**: Default version without ligatures (`Maple Mono NL`) - **Normal-Ligature**: [`--normal` preset](#preset) with ligatures (`Maple Mono Normal`) - **Normal-No-Ligature**: [`--normal` preset](#preset) without ligatures (`Maple Mono Normal NL`) ### Format and Glyph Set - **Variable**: Minimal version, smoothly change font weight by variable - **TTF**: Minimal version, ttf format [Recommend!] - **OTF**: Minimal version, otf format - **WOFF2**: Minimal version, woff2 format, for small size on web pages - **NF**: Nerd-Font patched version, add icons for terminal (With `-NF` suffix) - **CN**: Chinese version, embed with Chinese and Japanese glyphs (With `-CN` suffix) - **NF-CN**: Full version, embed with icons, Chinese and Japanese glyphs (With `-NF-CN` suffix) ### Font Hint - **Hinted font** is used for low resolution screen to have a better rendering effect. From my experience, if your screen resolution is equal to or lower than 1080P, it is recommended to use "hinted font". Using an "unhinted font" will lead to misalignment or uneven thickness on your text. - In this case, you can choose `MapleMono-TTF-AutoHint` / `MapleMono-NF` / `MapleMono-NF-CN`, etc. - **Unhinted font** is used for high resolution screen (e.g., for MacBook). Using "hinted font" will blur your text or make it look weird. - In this case, you can choose `MapleMono-OTF` / `MapleMono-TTF` / `MapleMono-NF-unhinted` / `MapleMono-NF-CN-unhinted`, etc. - Why are there both `-AutoHint` and `-unhinted` suffixes? - for backward compatibility, I keep the original naming scheme. `-AutoHint` is only used for `TTF` format. ## Custom Build The [`config.json`](./config.json) file is used to configure the build process. Checkout the [schema](./source/schema.json) or [document](./source/features/README.md) for more details. There are also some [command line options](#build-script-usage) for customizing the build process. CLI options have a higher priority than options in `config.json`. ### Build Methods #### 1. Build In Browser Go to [Playground](https://font.subf.dev/en/playground), and click the "Custom Build" button in the bottom left corner - Only supports freezing OpenType features currently. #### 2. Use GitHub Actions You can use [Github Actions](https://github.com/subframe7536/maple-font/actions/workflows/custom.yml) to build the font. 1. Fork the repo. 2. (Optional) Change the content in `config.json`. 3. Go to the Actions tab. 4. Click on the `Custom Build` menu item on the left. 5. Click on the `Run workflow` button with options set. 6. Wait for the build to finish. 7. Download the font archives from Releases. #### 3. Use Docker ```shell git clone https://github.com/subframe7536/maple-font --depth 1 -b variable docker build -t maple-font . docker run -v "$(pwd)/fonts:/app/fonts" -e BUILD_ARGS="--normal" maple-font ``` #### 4. Local Build Clone the repo and run it on your local machine. Make sure you have `python3` and `pip` installed. ```shell git clone https://github.com/subframe7536/maple-font --depth 1 -b variable pip install -r requirements.txt python build.py ``` > [!TIP] > For `Ubuntu` or `Debian`, maybe `python-is-python3` is needed as well. > > If you have trouble installing the dependencies, just create a new GitHub Codespace and run the commands there. ### Narrow Glyph Width You can set `"width": "narrow"` in `config.json` or add `--width slim` as a cli flag to change glyph width at build time. There are 3 options: - default: 600 - narrow: 550 - slim: 500 Preview: [#131](https://github.com/subframe7536/maple-font/issues/131#issuecomment-3678666194) ### Custom Nerd-Font If you want to get fixed-width icons, set `"nerd_font.mono": true` in `config.json` or add `--nf-mono` flag to build script args. If you want to get variable-width icons, set `"nerd_font.propo": true` in `config.json` or add `--nf-propo` flag to build script args. For custom `font-patcher` args, `font-forge` (and maybe `python3-fontforge` as well) is required. Maybe you should also change `"nerd_font.extra_args"` in [config.json](./config.json) Default args: `-l --careful --outputdir dir`. - if `"nerd_font.propo"` is `true`, then add `--variable-width-glyphs`. - else if `"nerd_font.mono"` is `true`, then add `--mono`. ### Preset Run `build.py` with `--normal` flag, make the font look not so "Opinioned", just like `JetBrains Mono` (with slashed zero). If you are using variable font (NOT recommended), please enable `calt` to make all features work. Enabled features: ``` cv01, cv02, cv33, cv34, cv35, cv36, cv61, cv62, ss05, ss06, ss07, ss08 ``` [Online Preview](https://font.subf.dev/en/playground?normal) ### Freeze OpenType Feature There are three kinds of options for feature freeze ([Why](https://github.com/subframe7536/maple-font/issues/233#issuecomment-2410170270)): 1. `enable`: Forcely enable the features without setting up `cvXX` / `ssXX` / `zero` in font features config, just as default glyphs/ligatures 2. `disable`: Remove the features in `cvXX` / `ssXX` / `zero`, which will no longer have an effect, even if you enable them manually 3. `ignore`: Do nothing #### Custom OpenType Feature OpenType Feature is used to control the font's built-in variants and ligatures. You can remove some ligatures or features you don't want to, change a feature's trigger rule, or add some new rules by modifying the OpenType Feature. By default, the Python module in [`source/py/feature/`](./source/py/feature) will generate a feature rule string and load it at build time. You can modify the features or customize tags there. If you would like to modify the feature file instead, run `build.py` with `--apply-fea-file` flag, the feature file from [`source/features/{regular,italic}{_cn,}.fea`](./source/features) will be loaded. ### Infinite Arrow Ligatures Inspired by Fira Code, the font enables infinite arrow ligatures

Issues· 36 open

View all issuesOpen on GitHub
  • #832

    缺少符号:☑️

    Updated Sep 14, 2026
  • #740

    能否补全一下UNICODE分组中缺少的部分字符

    UnicodeUpdated Sep 13, 2026
  • #833

    `ccmp` Lookup incorrectly composes repeated kana into dakuten glyphs (e.g. いい → い゛)

    Updated Sep 9, 2026
  • #765

    缺少圆框数字

    UnicodeUpdated Sep 8, 2026
  • #712

    [Request] 添加 `NR` 和 `SL` 到 releases 中

    Updated Aug 30, 2026
  • #809

    Bug: 8.0-beta1: Wrong Italic CYRILLIC SMALL LETTER GHE

    Updated Aug 24, 2026
  • #508

    Arrow ligature (`=>`) misalign in V7.3 of hinted font (also in unhinted font for some case)

    BugHelp WantedUpdated Aug 15, 2026
  • #792

    bug: Non monospace Greek characters

    UnicodeUpdated Aug 15, 2026
  • #812

    Docs refactor plan

    Updated Aug 11, 2026
  • #272

    Google Fonts Support

    Help WantedFuther VersionUpdated Aug 10, 2026

> Tags

Pythoncoding-fontfontligaturesmonospace

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 18, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言