Best Monospace and Coding Fonts in 2026
Best Monospace and Coding Fonts in 2026
Direct answer. JetBrains Mono is the strongest all-round coding font in the Google Fonts library in 2026: of the four monospace families there that ship programming ligatures, it is the only one that also carries a variable wght axis (100–800), a true italic, and six writing-system subsets in the same file. Source Code Pro is the widest-range alternative at wght 200–900, Roboto Mono the most widely deployed at popularity rank 6, Inconsolata the only one of the eight with a width axis (wdth 50–200), and IBM Plex Mono the pick for teams that want seven static weights without a variable dependency.
Monospace is the smallest category in the Google Fonts library — 51 families against 718 sans-serif and 468 display — but it is the most thoroughly modernised. 25 of the 51, just under half, now ship a variable build. Sans-serif is the next most converted category at 40 percent, and display trails at 13.
The eight families worth considering
| Family | Rank | Variable axes | Weights | Italic | Ligatures | Subsets | Designer |
|---|---|---|---|---|---|---|---|
| JetBrains Mono | 94 | wght 100–800 |
8 | Yes | Yes | 6 | JetBrains |
| Source Code Pro | 89 | wght 200–900 |
8 | Yes | No | 7 | Paul D. Hunt |
| Roboto Mono | 6 | wght 100–700 |
7 | Yes | No | 6 | Christian Robertson |
| Inconsolata | 24 | wdth 50–200, wght 200–900 |
8 | No | No | 3 | Raph Levien |
| IBM Plex Mono | 182 | — (static) | 7 | Yes | No | 5 | Mike Abbink |
| Geist Mono | 255 | wght 100–900 |
9 | Yes | No | 6 | Andrés Briganti, Mateo Zaragoza |
| Fira Code | 438 | wght 300–700 |
5 | No | Yes | 7 | Nikita Prokopov |
| Google Sans Code | 600 | MONO 0–1, wght 300–800 |
6 | Yes | No | 11 | Google, Universal Thirst |
Popularity rank is position in the Google Fonts usage ordering across all 1,944 families, not within the monospace category. Roboto Mono at rank 6 is the sixth most-served family in the entire library.
Ligatures: four families in the library have them
Programming ligatures substitute a single glyph for a multi-character operator — => becomes an arrow, !== a struck-through inequality, >= a single relational sign. Of the 51 monospace families in Google Fonts, four carry ligature support: JetBrains Mono (rank 94), Fira Code (438), Anonymous Pro (698), and Victor Mono (1382). Cascadia Code also ships them but is filed under sans-serif in the catalogue rather than monospace. In practice the decision is between the first two: Anonymous Pro offers two static weights and Victor Mono seven, neither with the axis range the other two carry.
JetBrains Mono's set is conservative, covering the operators common to C-family languages, and it is available across all eight weights plus italic. Fira Code's set is larger and covers Haskell and APL-adjacent operators, but the family ships five weights, no italic, and a narrower wght range of 300–700. Victor Mono is the outlier of the four: wght 100–700 with a semi-connected cursive italic that many syntax themes use for comments. Nikita Prokopov built Fira Code on Mozilla's Fira Mono, so the underlying skeleton predates the variable era.
The argument against ligatures is unchanged: a ligature renders != as one glyph occupying two cells, so character position and visual position stop agreeing. Debuggers, column-based diffs, and terminal cursor tracking all read the underlying characters. Teams that pair-program across mixed editors usually disable them.
Both families expose ligatures through OpenType calt, so they can be switched off without changing font:
code, pre {
font-family: "JetBrains Mono", ui-monospace, monospace;
font-variant-ligatures: none; /* or */
font-feature-settings: "calt" 0, "liga" 0;
}
The relevant font-feature-settings entry covers the full syntax, and Fira Code vs JetBrains Mono puts the two side by side.
Character disambiguation
The failure modes of a coding font are narrow and well known: zero against capital O, digit one against lowercase l against capital I, and the eight-B and five-S pairs at small sizes.
JetBrains Mono uses a dotted zero and gives lowercase l a tail, which separates it from capital I and digit 1 without relying on serifs. Source Code Pro uses a slashed zero and a serifed capital I. Roboto Mono uses a plain oval zero with no slash or dot — the weakest disambiguation among the widely deployed families, and the reason it is a better choice for rendering code in documentation than for editing it. IBM Plex Mono uses a slashed zero and adds a curved tail to lowercase l.
Inconsolata is a special case. Raph Levien's original design used a slashed zero; the current variable release exposes the alternate through a stylistic set rather than as the default, so the zero must be enabled explicitly:
.editor {
font-family: "Inconsolata", monospace;
font-feature-settings: "ss01" 1; /* slashed zero */
}
Variable monospace: the axis that actually helps
Seven of the eight families above ship variable — every entry except IBM Plex Mono — but the axes are not equally useful in a monospace context.
A wght axis is straightforwardly valuable. Editors and terminals apply weight to syntax tokens, and a continuous axis allows a theme to distinguish keywords, types, and comments by weight rather than only by colour. Four monospace families span the full wght 100–900 across nine weights: Geist Mono, Azeret Mono, Chivo Mono, and Datatype. Geist Mono is the highest-ranked of the four at 255. Source Code Pro covers 200–900 and JetBrains Mono 100–800.
A width axis is rarer and more consequential. Three monospace families expose wdth — Inconsolata at 50–200, Datatype at 50–150, and Martian Mono at 75–112.5 — and Inconsolata's four-fold span is the widest. Narrowing to wdth 75 fits roughly a third more columns at the same point size, which matters for side-by-side diffs and for terminal layouts constrained to 80 or 120 columns.
Google Sans Code carries the most unusual axis in the category: MONO, a 0–1 switch that interpolates between proportional and monospaced advance widths in a single file. At MONO 1 the family behaves as a fixed-pitch coding face; at MONO 0 it becomes a proportional sans usable for prose. Eleven subsets, the widest coverage of any monospace family listed here.
:root { --code: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; }
.token-keyword { font-family: var(--code); font-weight: 700; }
.token-comment { font-family: var(--code); font-weight: 300; font-style: italic; }
Italic is not universal. Inconsolata and Fira Code ship no italic at all, so any theme that italicises comments will get a synthesised oblique from the browser — a mechanically sheared outline rather than drawn letterforms. JetBrains Mono, Source Code Pro, Roboto Mono, IBM Plex Mono, Geist Mono, and Google Sans Code all include a real italic.
Rendering code on the web
Three settings account for most of the difference between readable and unreadable code blocks.
Line height should be higher for code than for prose. Monospace text has no word-shape variation to help the eye track lines, so 1.5 to 1.6 works where prose sits at 1.5. The relevant term is leading.
Font size should be one step below body copy but not two. Code set at the same size as body prose looks oversized because monospace advance widths are uniform and wider on average; 0.9em against a 17px body is the usual landing point.
A fallback stack should name the system monospace faces before the generic keyword, so a failed download degrades to a real fixed-pitch face rather than to whatever the browser maps monospace to:
pre, code, kbd, samp {
font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono",
Menlo, Consolas, "Liberation Mono", monospace;
font-size: 0.9em;
line-height: 1.55;
font-variant-ligatures: none;
tab-size: 2;
}
ui-monospace resolves to the platform's interface monospace — SF Mono on macOS, Cascadia Mono on recent Windows — and belongs first among the fallbacks. The font stack builder generates the full list for any primary family.
Loading a variable monospace family
A single variable request covering the whole weight axis, with italic:
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap"
rel="stylesheet">
Code blocks rarely need the full axis. Requesting [email protected] instead of 100..800 trims the file, and display=swap maps to the font-display descriptor so code stays visible during the download rather than flashing invisible.
Which family for which situation
Editor and terminal, ligatures wanted. JetBrains Mono — of the four ligature families it has the widest axis range and the most subsets.
Editor and terminal, ligatures unwanted. Source Code Pro at wght 200–900 with italic and seven subsets, or Geist Mono for nine weights on a 100–900 axis.
Dense diffs and narrow columns. Inconsolata, narrowed via wdth 75, is the only option with a genuine width axis.
Documentation and marketing code samples. Roboto Mono — its zero disambiguation is weak for editing but its rank-6 ubiquity means it is frequently already cached.
Multilingual technical documentation. Google Sans Code at eleven subsets, with the MONO axis available for prose passages in the same file.
No variable dependency. IBM Plex Mono, seven static weights with italic, five subsets.
Full category listings sit under monospace fonts, and JetBrains Mono vs Source Code Pro and Inconsolata vs Roboto Mono cover the head-to-head metadata.
Frequently asked questions
What is the best coding font in 2026? JetBrains Mono, on the basis that it is the only family in the Google Fonts monospace set carrying ligatures, a real italic, a variable wght axis spanning 100–800, and six subsets at once.
Which Google Fonts have programming ligatures? Four monospace families: JetBrains Mono, Fira Code, Anonymous Pro, and Victor Mono. Cascadia Code carries them too but is classified sans-serif in the catalogue.
How many monospace fonts does Google Fonts have? 51 families, of which 25 ship a variable build — a 49 percent conversion rate, the highest of any category in the library.
Is Cascadia Code available through Google Fonts? Yes, at popularity rank 1566, with ligatures, six weights, italic, and ten subsets — though the catalogue files it under sans-serif rather than monospace. Hack is not in the catalogue and must be self-hosted.
Which monospace font has the widest weight range? Four families cover the full wght 100–900 span across nine named weights: Geist Mono, Azeret Mono, Chivo Mono, and Datatype. Source Code Pro reaches 900 but starts at 200.
Does a monospace font need an italic? Only if the syntax theme italicises comments or types. Without a drawn italic the browser synthesises an oblique by shearing the upright, which distorts curves and thins stems unevenly. Inconsolata and Fira Code ship no italic.
タイポグラフィ用語
ツールを試す
言及されたフォント
Robotoファミリーの等幅メンバーとして、コードエディタやターミナル環境に必要な固定幅制約を守りながら、同系列の幾何学的な合理性を引き継いでいます。プログラミングとデータ表示を念頭に設計され、コーディング書体としては異例の7ウェイトをバリアブル軸で提供します。キリル・ギリシャ・ベトナム語をサポートし、複数言語を扱う開発者にも実用的な選択肢となっています。
JetBrainsが自社開発したこのモノスペース書体は、長時間のプログラミング作業を念頭に設計されており、文字の高さを増やし、幅広の字形により目の疲労を軽減し、よく使われる演算子の組み合わせを一つのクリーンなグリフに統合する138種のプログラミング用リガチャを備えています。バリアブルなウェイト軸は8段階をカバーし、ラテン文字に加えキリル文字・ギリシャ文字・ベトナム語にも対応しています。その技術的な精度とシンタックスハイライト下での可読性の高さから、世界中の開発者に選ばれる書体となっています。
AdobeのSourceタイプシステムの一部であるSource Code ProはPaul D. HuntによってSource Sansの等幅補完書体として設計されました。ヒューマニストな字形比率を共有しながら、コード表示に必要な均等な文字幅を採用しています。8つのストップにまたがる可変ウェイト軸は、等幅書体としては注目すべき技術的成果です。キリル文字、ギリシャ語、ベトナム語を含む幅広いスクリプトサポートにより、国際的に最も汎用性の高いコーディングフォントのひとつです。可読性・中立性・タイポグラフィ的完成度の組み合わせが、コードエディタとターミナルエミュレータの両方で人気を博しています。
Raph LevienはConsolas、Letter Gothicといった著名な固定幅書体の伝統に倣い、モノスペース書体では稀な人間味あるクラリティを目指してInconsolataを設計しました。バリアブルフォントの実装はウェイトと幅の両軸を追加しており、フォントレンダリングをカスタマイズするユーザーにとってコーディング環境で大きな利点となります。ベトナム語スクリプトのサポートが実用性を補完します。レターフォームは無機的に感じることなく清潔で、長時間のコーディングセッションと技術文書の両方で快適に使用できます。
IBM Plex Monoは、IBMの技術的な伝統と現代的なデザイン価値観を反映するために設計された包括的なタイプシステムPlexの一部として、Mike Abbinkが手がけたコーディング向けに最適化されたモノスペース書体です。ExtraLightからBoldまでの7ウェイトはモノスペースファミリーとしては異例の幅を持ち、機械的な精度と繊細なヒューマニストの温かみ——わずかに不規則な終端に最もよく表れています——を注意深く両立させています。キリル文字対応は、ロシア語環境で作業する開発者にとって有力な選択肢となり、その企業由来の背景は開発者ツールやターミナルインターフェースにおいて自然な信頼感を与えます。
Vercel のデザインチームが Andrés Briganti らと共に手がけた Geist Mono は、開発者向けツールのために設計されている——その等幅の字形は、ゼロと O、小文字の l のような似た文字同士の判別を優先している。9段階にわたる可変ウェイト軸により、フォントを切り替えることなくインターフェースの密度を調整できる。キリル文字対応により、国際的な開発環境やコードエディタにも効果的に対応する。
Fira Code is a monospace typeface by Nikita Prokopov that extends Mozilla's Fira Mono with a carefully curated set of programming ligatures, turning multi-character sequences like arrows, comparisons, and operators into single fluid glyphs. The variable weight axis (wght) lets developers fine-tune stroke thickness without switching font files, and the face covers Cyrillic, Greek, and extended symbol ranges. It is the go-to choice for code editors and terminal emulators where ligature rendering is supported.
Google Sans Code は、Google と Universal Thirst が開発した等幅書体で、Google Sans の幾何学的 DNA を共有しながら、コード表示に求められる機能的要件を満たしている。可変ウェイト軸は6段階に及び、注目すべきことに、この書体はラテン文字と数学記号に加えて、アドラム文字・カナダ先住民音節文字・チェロキー文字・古ペルム文字にまで対応を広げている。これにより、あまり一般的でない文字体系で作業する開発者にとって、異例なほど包摂的なコーディング書体となっている。