- Published on
Programming Fonts 2026 — JetBrains Mono / Monaspace / Berkeley Mono / Iosevka / Geist Mono / D2Coding / HackGen Deep Dive
- Authors

- Name
- Youngju Kim
- @fjvbn20031
"Programming fonts are personal. But after staring at one for 2,000 hours a year, the difference between 'good' and 'great' becomes the difference between a sore neck and a comfortable afternoon." — Adam Wathan, 2024
Everyone agrees we spend far more time reading code than writing it, yet many developers still leave their IDE on the default typeface. In 2026 the programming-font ecosystem is richer than it has ever been. JetBrains, GitHub, Microsoft, Apple, and Vercel have all shipped free in-house fonts; the paid scene — Berkeley Mono, MonoLisa, Operator Mono, Dank Mono, PragmataPro — has if anything grown more loyal even at unchanged price points.
This post compares JetBrains Mono, Monaspace, Fira Code, Hack, IBM Plex Mono, Berkeley Mono, Cascadia Code, MonoLisa, Operator Mono, Dank Mono, PragmataPro, SF Mono, Iosevka, Victor Mono, CommitMono, GeistMono, Recursive, Nerd Fonts, and the major Korean/Japanese CJK programming fonts, all in one pass.
1. The 2026 Programming-Font Map — Free / Paid / Customizable / CJK
In 2026 the field clusters into four boxes.
| Category | Representative fonts | Character |
|---|---|---|
| Free classics | JetBrains Mono, Monaspace, Fira Code, Hack, IBM Plex Mono, Cascadia Code | Corporate-backed, open source, ready to use |
| Paid designer | Berkeley Mono ($75), MonoLisa (€49), Operator Mono, Dank Mono, PragmataPro | A single type designer's voice; consistency and detail |
| Customizable / variable | Iosevka, Recursive, Monaspace, Commit Mono | Adjust width, slant, ligatures, style |
| CJK support | D2Coding, Pretendard Mono, HackGen, Cica, Migu, Sarasa Gothic | Korean/Japanese/Chinese cell alignment |
Five questions narrow your choice quickly.
- Ligature preference — should
=>,!=,>=collapse into arrows, ≠, ≥? - Italic style — plain slant, or a handwritten cursive like Operator Mono / Victor Mono?
- Width — narrow glyphs like Iosevka, or generous ones like JetBrains Mono?
- CJK necessity — do you need code and Korean/Japanese comments to align cell-for-cell?
- Nerd Fonts icons — do you want Powerline / LSP glyphs in the same file?
Keep these five axes in mind and you can place every font below on the map immediately.
2. JetBrains Mono — The IDE-Default Standard
JetBrains Mono is the typeface JetBrains designed from scratch in January 2020 for users of its IDEs and released free under the SIL Open Font License. It ships in eight weights (Thin through ExtraBold) with a true italic, and includes 145 ligatures. The x-height is on the tall side, which keeps it readable down to 11~12pt, and the zero 0 carries an interior dot so it never gets confused with capital O.
Highlights:
- Tall x-height — readable at small sizes
- Clean sans-serif —
1,l,I,iare visually distinct - Rich ligature set —
=>,<=,!=,===,<->,<-,->,<<,>>,<<=,>>=, and 130 more - Real italic — a separate glyph design, not slanted regular
- Modern operator coverage —
&&,||,??,?.,??=for current languages
JetBrains has reported it became the IDE default in IntelliJ IDEA 2020.1, and by 2024 the GitHub releases alone had passed two million downloads. Free, stable, and tuned for IDE use — JetBrains Mono is the safest first pick for anyone choosing a programming font.
The fair criticism is that it feels a bit "textbook" — gravity-of-readability over personality. If you want a stronger voice you graduate to Berkeley Mono or Operator Mono.
3. Monaspace (GitHub, October 2023) — Texture-Healing, Five Styles, Free
Monaspace is GitHub's October 2023 "superfamily" — five monospace typefaces that act as one extended family, all under the SIL Open Font License.
| Name | Class | Personality |
|---|---|---|
| Monaspace Neon | Neo-grotesque | A modern sans-serif similar in feel to JetBrains Mono |
| Monaspace Argon | Humanist | Soft sans-serif with handwritten flow |
| Monaspace Xenon | Slab serif | Classic monospace with serifs |
| Monaspace Radon | Handwritten | Pen-stroke informal glyphs |
| Monaspace Krypton | Mechanical | Futuristic, geometric mono |
The genuine innovation is texture healing. Because monospace forces every glyph to the same width, narrow letters like i, l, 1 are surrounded by oddly wide whitespace. Monaspace uses OpenType contextual alternates to nudge widths based on neighbours, producing a visually more even texture while keeping the alignment benefits of monospace. The compromise is essentially: alignment of monospace + visual evenness of proportional.
Beyond that, the five styles are designed to be mixed in one line — for example body code in Neon, comments in Argon, with the editor auto-switching. In VS Code you can list two families in editor.fontFamily and map a separate style to comment tokens.
4. Fira Code — The Ligature Pioneer Out of Mozilla
Fira Code traces back to Mozilla's Firefox OS project and the Fira Mono typeface, to which Nikita Prokopov added programming ligatures in 2014. It is the work that started the ligature trend, released under the SIL OFL.
- The original ligature font — over 200:
=>,!=,==,===,<=,>=,<-,->,<-,<->,<--,-->, and more - Visual connectivity —
--draws as one continuous line,==as two parallel lines, making the token's identity obvious - Six weights — Light through Bold
- Free (OFL)
Drawbacks: a slightly shorter x-height, wider tracking than newer fonts, and no true italic. Before JetBrains Mono arrived this was the free-ligature default; in 2026 it has been somewhat overtaken by JetBrains Mono and Monaspace. Still, with roughly 74 K GitHub stars (Dec 2024) it remains one of the most-downloaded ligature fonts in the world.
5. Hack / IBM Plex Mono — Free Classics
Hack was released by Christopher Simpkins under the source-foundry banner in 2015, derived from Source Code Pro and free under a modified MIT license. Its driving goal was "readable at small pixel sizes" — the glyphs are nearly square, which makes it especially comfortable in terminals.
- Small-size legibility — clean even at 9pt
- No ligatures — token boundaries stay literal
- Four weights + italics — Regular, Bold, Italic, Bold Italic
- Terminal-friendly — a steady, DejaVu-Mono-ish presence
IBM Plex Mono is the monospace variant of IBM's 2017 corporate Plex family, free under the SIL OFL. Plex Sans, Serif, and Mono are designed as one family, which gives unusually strong cross-design coherence. It is also the default in IBM's own Carbon Design System.
- Boardroom-safe — looks at home in slide decks and corporate docs
- Eight weights with true italic — Thin through Bold
- Broad script support — Latin plus Cyrillic, Greek, Hebrew, Thai, and more
- Pairs cleanly with Plex Sans/Serif
Think of Hack as "the free font for terminals and log viewers" and IBM Plex Mono as "the free font for slides, blog posts, and corporate documents".
6. Berkeley Mono — Beloved Paid ($75)
Berkeley Mono is the work of Neil Panchal in Texas, USA, released in 2021. The personal license is $75 (single user) and has held steady through May 2026. It is the breakout hit of the paid-font scene; high-profile developers including Pieter Levels, DHH, and Lee Robinson have publicly used and praised it, which pushed it further into mainstream awareness.
- Retro monospace mood — channels 1980s Bay-Area computing manuals
- Heavy strokes, sharp shapes — consistent visual weight across all sizes
- No ligatures by default (toggleable) — for people who want token boundaries to stay literal
- Five weights with true italic
- Berkeley Graphite, Berkeley Mono Variable — the family has been growing
Two reasons it is loved despite the price tag. First, identity — once you have seen Berkeley Mono you recognise it instantly on someone else's screen; it has unusual visual character for a monospace. Second, developer-author — Neil Panchal is an engineer himself, and the font has been tuned through years of his own daily use.
The trade-offs: the glyphs are not narrow, so screen density drops; and the assertive strokes can feel heavy at small sizes.
7. Cascadia Code — Microsoft
Cascadia Code is Microsoft's font released in 2019 alongside Windows Terminal, free under the SIL OFL. It ships with ligatures and has since spawned variants — Cascadia Mono (no ligatures), Cascadia Code PL (with Powerline glyphs), Cascadia Mono PL, and so on.
In 2024 Cascadia Code Italic was upgraded to a true cursive italic, providing a free option that partially replaces Operator Mono.
- Ligatures + cursive italic — free Operator Mono alternative
- Built-in Powerline glyphs (PL variants) — no patching required
- Default in Windows and VS Code — present everywhere in the Microsoft stack
- Nine weights with italic
If you live on Windows, it is worth trying before chasing anything else. It is purpose-built for PowerShell, WSL, and Windows Terminal.
8. MonoLisa / Operator Mono / Dank Mono / PragmataPro — Paid Designer Fonts
The four heavyweights of the paid designer-font world.
MonoLisa is a 2019 release from two Polish designers, priced at €49 for a single-user license. It ships ligatures, true italic, alternate glyphs, and variable-axis access. It is widely admired for "low fatigue over long sessions," and high-profile users like Wes Bos, Lee Robinson, and Tobias Lütke have boosted its visibility. Five weights plus italic in the base package; the true cursive italic is a separately purchased add-on.
Operator Mono is Hoefler & Co.'s 2016 release, priced at $199. Its real value is the cursive italic — these are not slanted regular glyphs but a separately designed handwritten alphabet, which makes it stunning to set comments or keywords in italic. From 2017 through 2020 it was the hot designer font in front-end and design circles, widely shared as "the prettiest code". Caveats: no ligatures, and the price is steep.
Dank Mono is a 2018 release from British designer Phil Plückthun, priced at £40 (about $50). It was the affordable answer to Operator Mono's cursive italic and bundles both a rounded alphabet and ligatures. Regular and Bold plus Italic for each — four files in one purchase.
PragmataPro is the work of Italian designer Fabrizio Schiavi, in development since 2003. It is priced at €69 (Essential) or €99 (Liga, with ligatures). Its standout property is being very narrow — you can fit 20~30 percent more code in the same horizontal space than most other fonts. It also ships 9,000+ glyphs including emoji, math, and technical symbols, covering nearly any case. UNIX, scientific-computing, and terminal-heavy users tend to be cult-level fans.
| Font | Price | Cursive italic | Ligatures | Width |
|---|---|---|---|---|
| MonoLisa | €49 | Add-on | Yes | Normal |
| Operator Mono | $199 | Yes (signature) | No | Normal |
| Dank Mono | £40 | Yes | Yes | Normal |
| PragmataPro | €69~99 | No | Optional | Very narrow |
9. SF Mono / San Francisco Mono — Apple
SF Mono is Apple's monospace, introduced alongside macOS Sierra in 2016 for use in Xcode and Terminal. It was at first only available as a system font, but since 2019 has been formally downloadable (from the Apple Developer site), and is licensed for use in macOS and iOS interface design.
- Default in Xcode on macOS Sonoma / iOS 17 and later
- One family with SF Pro — interface and code share visual weight
- Six weights with italic
- No ligatures
- Free but restricted license — Apple platforms / Apple product design only, no general commercial redistribution
For macOS and iOS developers it is the most natural pick. SwiftUI and UIKit previews share a visual weight with your code, which makes the design-to-code transition feel seamless. The flip side: leave the MacBook and you cannot use the same font, so cross-platform users tend to choose JetBrains Mono or Monaspace.
10. Iosevka — The Customization Endgame
Iosevka is the open-source (SIL OFL) typeface maintained since 2015 by Renzhi Li (belleve), a Chinese-Canadian type designer. Its defining trait is extreme customizability — width, glyph shape, ligatures, serifs, italic style, weight, curvature: nearly every element can be adjusted at build time.
The default is very narrow — about 70 percent of the width of typical monospace fonts. You fit roughly 30 percent more code into the same horizontal space, which is excellent for wide monitors and vertical splits. The narrow glyphs sound like a legibility risk, but the balanced design keeps them perfectly readable.
Some customization options:
- Width — Normal / Extended / Aile (wide)
- Glyph style — Default / Slab (serifs added) / Etoile (full serif)
- Ligatures — Off / standard / extended
- Italic — Slanted / Cursive
a,g,lvariants — single-story / double-story / italic-form
These options live in an npm-based build script in the GitHub repo, or you can configure them in the GUI Iosevka Customizer and download the result.
Iosevka also ships a near-superfamily of official variants.
- Iosevka SS01 ~ SS18 — style sets that mimic JetBrains Mono, Fira Code, Pragmata, Anonymous Pro, and more
- Iosevka Aile — proportional sans-serif for body text
- Iosevka Etoile — proportional serif for body text
- Iosevka Term — terminal-only variant without ligatures
Sarasa Gothic is a sibling project built on Iosevka with CJK glyphs added, and it is the go-to choice in CJK environments.
11. Victor Mono — Cursive Italic Comments
Victor Mono is a 2018 release from Norwegian designer Rune Bjørnerås, free under the SIL OFL. Its defining property is a true cursive handwritten italic — it was essentially the first font to offer the Operator Mono cursive vibe for free, and it is still the best-known free cursive option.
- Cursive italic by default — comments in italic are visually clearly separated from code
- Ligatures included —
=>,!=,>=, and so on - Seven weights — Thin through Heavy
- More than 7 K GitHub stars
- Free (OFL)
To use the cursive italic in VS Code, list the font family and then explicitly mark comment / keyword token scopes as italic. If you miss the Operator Mono mood but cannot justify $199, Victor Mono is the right substitute.
12. CommitMono / GeistMono (Vercel) / Recursive — New Free Entrants
Three free programming fonts that arrived between 2022 and 2024.
Commit Mono is Eigil Nikolajsen's 2023 release, free under the SIL OFL. It targets "ligature-free neutral monospace" and follows a minimal design that minimizes visual noise. It is a variable font with continuous weight and slant adjustment; the website builds and serves your custom version on the spot when you pick options.
GeistMono is Vercel's November 2023 brand font, paired with Geist Sans, free under the SIL OFL. Vercel needed a monospace that fit alongside its sans-serif brand font, which is why the design is coherent next to it. Next.js and Vercel official docs already render code blocks in GeistMono.
- Few ligatures — simplicity that pairs with Geist Sans's weight
- Nine weights
- Variable and static formats
- Default in the Next.js / Vercel ecosystem
Recursive is the work of American type designer Stephen Nixon, built between 2018 and 2021 and released free via Google Fonts. Its standout feature is five variable axes — Monospace ↔ Proportional, Casual ↔ Sans, weight, slant, and Cursive ↔ Linear. You can switch any text between monospace and proportional within a single font file, which enables designs where only part of a string is set monospace. It is the most ambitious variable font in the category, design-wise.
13. Nerd Fonts — Icon Overlay
Nerd Fonts is not a font in itself, but a project that patches icon glyphs onto existing programming fonts. Started by Ryan McIntyre in 2014, free under the MIT license.
The mechanism:
- Powerline icons (
>,<arrow shapes and other shell-prompt decorations) - Font Awesome icons (about 15 K)
- Devicons (language icons — JS, Python, Go, etc.)
- Octicons (GitHub icons)
- Material Design Icons
- A total of around 9 K icons mapped into Unicode Private Use Area, merged with an existing font into a single patched TTF / OTF
With one of these installed, tools like i3, tmux, zsh powerlevel10k, and Neovim lualine display icons. As of May 2026, pre-patched builds of over 50 popular programming fonts ship in the GitHub releases — JetBrainsMono Nerd Font, FiraCode Nerd Font, Hack Nerd Font, CaskaydiaCove Nerd Font (the patched Cascadia Code), and many more.
To patch your own, use the font-patcher script; the patched font is renamed "X Nerd Font" or "X NF". If you want the same font in both the terminal and the IDE, installing the Nerd Font patched variant is the easiest path.
14. CJK Support — D2Coding / Pretendard Mono / HackGen / Cica / Migu
English-language programming fonts rarely include CJK (Korean / Chinese / Japanese) glyphs. When you write Korean or Japanese comments, the system fallback font kicks in (PingFang on macOS, Malgun Gothic on Windows), the glyph cells go out of alignment, and legibility drops. Two approaches solve this.
(1) Stack a CJK font next to your English font (the VS Code approach)
{
"editor.fontFamily": "'JetBrains Mono', 'D2Coding', monospace"
}
The fallback order draws English in JetBrains Mono and Korean in D2Coding. The cell-width ratio must be a clean 1:2 or alignment breaks.
(2) Use a single font with CJK glyphs merged in
The main fonts in this category:
| Font | Maker | Base | License |
|---|---|---|---|
| D2Coding | Naver | Original design | OFL |
| Pretendard Mono | Hyungjin Gil | Original design | OFL |
| HackGen | yuru7 | Hack + Genjyuu Gothic | OFL |
| Cica | miiton | Hack + Rounded Mgen+ + Nerd Fonts | OFL |
| Migu | itouhiro | M+ + IPAG | IPA |
| Sarasa Gothic | be5invis | Iosevka + Source Han Sans | OFL |
| UDEV Gothic | yuru7 | JetBrains Mono + BIZ UDGothic | OFL |
D2Coding is Naver's 2014 Korean programming font. Version 1.3 added ligatures; it is the most widely used Korean programming font in the Korean developer community. Regular and Bold weights.
Pretendard Mono is the monospace variant of Pretendard, the body-text font by Hyungjin Gil. It keeps a consistent design tone between body text and code, which is great for blogs and slide decks.
HackGen is by the Japanese yuru7 team, combining Hack with Genjyuu Gothic. The releases include ligature, Nerd Font, and Console variants.
Cica is by miiton, combining Hack with Rounded Mgen+ and the Nerd Fonts patch. The soft rounded glyphs, Japanese coverage, and Nerd Fonts icons all in one TTF make it a terminal favourite.
Migu is by Japan's itouhiro, combining M+ with IPAG; Migu 1M (monospace) is the code-oriented cut. Tight line height makes it good for information-dense screens.
Sarasa Gothic is be5invis's sister project to Iosevka, layering Source Han Sans on top of an Iosevka base. It covers Korean, Chinese, and Japanese well and is effectively the standard choice for multilingual projects.
UDEV Gothic combines JetBrains Mono with BIZ UDGothic — exactly the right answer for "I love JetBrains Mono but need CJK glyphs".
15. Who Should Pick What — Mac / Windows / Linux / Korean / Japanese / Designers
Situation-by-situation recommendations.
| Situation | First pick | Second pick |
|---|---|---|
| macOS general dev | SF Mono or JetBrains Mono | Monaspace, Berkeley Mono |
| Windows general dev | Cascadia Code | JetBrains Mono, Monaspace |
| Linux / terminal-heavy | Hack, Iosevka | JetBrains Mono, Cascadia Code |
| Korean comments required | D2Coding or Sarasa Mono K | UDEV Gothic, Pretendard Mono |
| Japanese comments required | HackGen, Cica, Migu | Sarasa Mono J, UDEV Gothic |
| Design role / slide decks | IBM Plex Mono, GeistMono | Berkeley Mono, MonoLisa |
| Strong personality (paid OK) | Berkeley Mono ($75) | MonoLisa (€49) |
| Love cursive italics | Victor Mono (free) | Operator Mono ($199) |
| Hate ligatures | Berkeley Mono, IBM Plex Mono, Hack | Iosevka Term |
| Want to fit lots of code on screen | Iosevka, PragmataPro | Berkeley Mono Condensed |
| First time picking | JetBrains Mono | Monaspace Neon |
The safest path is JetBrains Mono → Monaspace Neon → try Berkeley Mono. Start free and stable with JetBrains Mono, switch to Monaspace when texture healing piques your interest, and if you still feel you need more personality, take Berkeley Mono out for a one-week trial.
If you regularly write Korean or Japanese comments, the cleanest setup is one merged font like Sarasa Gothic or UDEV Gothic — cell widths line up at exactly 1:2, and you never see jagged alignment on a single screen.
Finally, do not forget that font size, line-height, and letter-spacing matter more than the typeface itself. 1214pt, line-height 1.41.6, letter-spacing 0~0.5px — that envelope is the comfortable zone for most programming fonts.
16. References
- JetBrains Mono — https://www.jetbrains.com/lp/mono/
- JetBrains Mono GitHub — https://github.com/JetBrains/JetBrainsMono
- Monaspace (GitHub) — https://monaspace.githubnext.com/
- Monaspace GitHub repo — https://github.com/githubnext/monaspace
- GitHub Next: Monaspace announcement (Oct 2023) — https://githubnext.com/projects/monaspace
- Fira Code — https://github.com/tonsky/FiraCode
- Hack — https://sourcefoundry.org/hack/
- Hack GitHub — https://github.com/source-foundry/Hack
- IBM Plex — https://www.ibm.com/plex/
- IBM Plex GitHub — https://github.com/IBM/plex
- Berkeley Mono — https://berkeleygraphics.com/typefaces/berkeley-mono/
- Cascadia Code — https://github.com/microsoft/cascadia-code
- MonoLisa — https://www.monolisa.dev/
- Operator Mono — https://www.typography.com/fonts/operator/styles
- Dank Mono — https://dank.sh/
- PragmataPro — https://fsd.it/shop/fonts/pragmatapro/
- SF Mono / Apple Developer Fonts — https://developer.apple.com/fonts/
- Iosevka — https://typeof.net/Iosevka/
- Iosevka GitHub — https://github.com/be5invis/Iosevka
- Iosevka Customizer — https://typeof.net/Iosevka/customizer
- Victor Mono — https://rubjo.github.io/victor-mono/
- Victor Mono GitHub — https://github.com/rubjo/victor-mono
- Commit Mono — https://commitmono.com/
- Geist Mono (Vercel) — https://vercel.com/font
- Geist GitHub — https://github.com/vercel/geist-font
- Recursive (Stephen Nixon) — https://www.recursive.design/
- Recursive GitHub — https://github.com/arrowtype/recursive
- Nerd Fonts — https://www.nerdfonts.com/
- Nerd Fonts GitHub — https://github.com/ryanoasis/nerd-fonts
- D2Coding (Naver) — https://github.com/naver/d2codingfont
- Pretendard — https://github.com/orioncactus/pretendard
- HackGen — https://github.com/yuru7/HackGen
- Cica — https://github.com/miiton/Cica
- Migu — https://itouhiro.github.io/mixfont-mplus-ipag/
- Sarasa Gothic — https://github.com/be5invis/Sarasa-Gothic
- UDEV Gothic — https://github.com/yuru7/udev-gothic
- Programming Fonts (gallery / comparison) — https://www.programmingfonts.org/
- Coding Fonts (CSS-Tricks gallery) — https://coding-fonts.css-tricks.com/