← Back to all posts

Comparison of MonoLisa vs. JetBrains Mono

Written by Juho Vepsäläinen, Marcus Sterz on . Last updated on .

Tags: MonoLisa vs JetBrains MonoJetBrains Mono alternativecoding fontsprogramming fonts

JetBrains Mono fits the same code into a narrower line, while MonoLisa gives its rounded letters more horizontal space. Below, we compare those proportions, operator shapes, italic letterforms, and terminal symbols.

Reading texture

JetBrains Mono combines tall lowercase letters with a narrower character width than MonoLisa in this sample. The first parseToken line ends earlier in its panel; the o in MonoLisa’s offset also shows the rounder curves enlarged below.

Code Texture: MonoLisa Code vs. JetBrains Mono Code Texture: MonoLisa Code vs. JetBrains Mono

Coding ligatures and character variants

The <= and >= ligatures have similar shapes here as both fonts use a slanted lower stroke.

Coding Ligatures: MonoLisa Code vs. JetBrains Mono Coding Ligatures: MonoLisa Code vs. JetBrains Mono

Both fonts also let you replace the default dotted zero with a slashed form. Compare the enlarged zeros and the repeated digits in 8080 below.

Default and alternate zeros: MonoLisa Code vs. JetBrains Mono Both fonts' default and zero-feature alternate forms, enlarged at 88 px with circles marking the interiors. The same port = 8080; sample follows each form at 20 px. Both fonts use Regular; MonoLisa grade is zero. Font pairs remain adjacent on mobile. Default and alternate zeros: MonoLisa Code vs. JetBrains Mono Both fonts' default and zero-feature alternate forms, enlarged at 88 px with circles marking the interiors. The same port = 8080; sample follows each form at 20 px. Both fonts use Regular; MonoLisa grade is zero. Font pairs remain adjacent on mobile.

Characters that are easy to confuse

Look at 0, O, and lowercase o as JetBrains Mono’s curves approach rectangles, while MonoLisa’s are rounder. Then compare 1lI| and rn m, with ligatures disabled, to see which cues you recognize most easily at your normal reading size.

Ambiguous Glyphs: MonoLisa Code vs. JetBrains Mono Enlarged capital O and lowercase o compare MonoLisa's rounder curves with JetBrains Mono's more rectangular curves. Circles mark the upper right curves. The complete character sample follows. Ambiguous Glyphs: MonoLisa Code vs. JetBrains Mono Enlarged capital O and lowercase o compare MonoLisa's rounder curves with JetBrains Mono's more rectangular curves. Circles mark the upper right curves. The complete character sample follows.

Italic letterforms

The enlarged italic f shows how differently the two fonts draw its upper curve and descending stroke. Look at the fi pairs in filtered, file, and profile below it: JetBrains Mono’s pair looks tighter, while MonoLisa leaves more separation. Compare these words at your usual editor size to see which spacing you prefer.

Italic Forms: MonoLisa Code vs. JetBrains Mono Enlarged italic f letterforms and code with repeated fi pairs in both fonts. Compare how the f leads into the following i at a normal reading size. Italic Forms: MonoLisa Code vs. JetBrains Mono Enlarged italic f letterforms and code with repeated fi pairs in both fonts. Compare how the f leads into the following i at a normal reading size.

Adjusting stroke thickness independently of weight

MonoLisa’s grade control lets you tune stroke darkness for a light or dark editor background while retaining your selected weight. All three lines below use Regular; compare the strokes in count and 100 as grade changes.

Both MonoLisa Code and JetBrains Mono also keep character spacing fixed when weight changes, so unchanged line lengths are not a unique benefit of grade here. In the proportional MonoLisa Text family, grade preserves character positions and line breaks that a weight change can alter.

MonoLisa Code grade adjustment at a fixed Regular weight The same line at wght 400 and GRAD -50, 0, and +50, showing progressively thicker strokes at the same Regular weight. All three lines have a measured advance of 322.59375 SVG units at 28 px. Fixed spacing also holds when weight changes in MonoLisa Code and JetBrains Mono; it is not a grade-specific advantage in this comparison. Ligatures are disabled; no glyphs are replaced or scaled independently. MonoLisa Code grade adjustment at a fixed Regular weight The same line at wght 400 and GRAD -50, 0, and +50, showing progressively thicker strokes at the same Regular weight. All three lines have a measured advance of 414.84375 SVG units at 36 px. Fixed spacing also holds when weight changes in MonoLisa Code and JetBrains Mono; it is not a grade-specific advantage in this comparison. Ligatures are disabled; no glyphs are replaced or scaled independently.

Terminal symbols

Both fonts include the prompt separators, table borders, and block characters shown here. The colored segments expose the joins around the Powerline arrows; use the table’s vertical edges to check line spacing in your terminal as well as the individual symbol shapes.

Terminal symbols: MonoLisa Code vs. JetBrains Mono Matching terminal windows with a colored Powerline prompt, box-drawing table, Unicode block progress bars, and a status line. Both fonts use the same text at 22 units with a 33-unit line height. Missing characters use the measured font's missing-glyph outline, with no fallback font. Progress bars use standard Unicode blocks, not MonoLisa-specific symbols. Terminal symbols: MonoLisa Code vs. JetBrains Mono Matching terminal windows with a colored Powerline prompt, box-drawing table, Unicode block progress bars, and a status line. Both fonts use the same text at 22 units with a 33-unit line height. Missing characters use the measured font's missing-glyph outline, with no fallback font. Progress bars use standard Unicode blocks, not MonoLisa-specific symbols.

Which font should you choose?

JetBrains Mono is free, and its compact width may suit a narrow editor pane. Try MonoLisa if you prefer rounder curves and wider glyphs. Both include italics and ligatures. MonoLisa also offers independent grade adjustment and a proportional companion, MonoLisa Text.

Judge reading comfort by trying both fonts with your own code at your usual editor size. Sara Vieira explains why this matters to her in our customer testimonials, saying: “As someone with an eye condition this font makes my life way easier.”

Try MonoLisa in your editor

The free trial includes Regular and Bold with a limited character set. Use it to judge letterforms in your editor; explore coding ligatures, OpenType features, and grade adjustment in the online tester, since those are omitted from the trial. See checkout for current pricing.

At a glance

CategoryMonoLisa CodeJetBrains Mono
Languages (measured)*593358
Writing systems5 (Latin, Cyrillic, Greek, Hebrew, Armenian)3 (Latin, Cyrillic, Greek)
ItalicsYesYes
Fixed weights108
Variable axesWeight (wght), grade (GRAD)Weight (wght)
Style control15 stylistic sets, 12 character variants4 stylistic sets, 20 character variants
Coding ligaturesYesYes
Terminal symbolsYesYes
Proportional counterpartMonoLisa Text (separate purchase or bundle)None in the JetBrains Mono family
PricePaid; limited free trialFree and open source
Sourcemonolisa.devJetBrains Mono GitHub repository
View comparison infographic MonoLisa Code vs. JetBrains Mono summary infographic A compact comparative infographic showing measured language counts, script coverage, and OpenType feature signals for MonoLisa Code vs. JetBrains Mono.
Measurement notes

The specimens use MonoLisa Code v3.000 variable upright and italic files and JetBrains Mono v2.304 static Regular and Italic files. Both are shown at Regular weight (wght=400 for MonoLisa, weight class 400 for JetBrains Mono); MonoLisa’s grade is zero except in the grade specimen. They were reproduced with HarfBuzz 14.5.1: hb-view shapes and outlines the glyphs, and hb-shape measures their advances.

Code is shaped at 44 px for reading texture and 42 px for ligatures and italics, then uniformly scaled to 20 px inside each SVG. The ambiguous-character sample is shaped at 44 px and uniformly fitted to its panels; enlarged O and o details use 140 px, and the italic f uses 108 px. Display sizes follow the image container’s width. The code specimens enable kern, liga, and calt, plus MonoLisa’s dlig for its coding ligatures. The ambiguous-character sample and enlarged letter details enable kern with liga and calt disabled; dlig remains off.

The zero comparison uses each font’s zero feature, off for the default form and on for the alternate. Enlarged zeros are 88 px and the matching code is 20 px. The grade specimen fixes MonoLisa at wght=400 and varies GRAD through −50, 0, and +50, at 36 px on desktop and 28 px in the mobile SVG. Kerning and liga, dlig, and calt are disabled in both new specimens. HarfBuzz reports identical total advances at all three grades; the renderer stops if they differ by more than 1/64 of a pixel. Regenerate these specimens with node scripts/render-comparison-svgs.mjs scripts/comparison-fonts.local.json jetbrains-mono --controls-only.

To check the weight comparison, we shaped const count = 100; at 36 px using MonoLisa Code v3.000 and JetBrains Mono v2.304 variable upright files, with wght=100, 400, and 700 (GRAD=0 for MonoLisa), and kerning and ligatures disabled. Character advances stayed fixed at all three weights in both fonts. Repeating the check with MonoLisa Text v3.000 changed advances between weights, while wght=400 and GRAD=-50, 0, or 50 kept every advance fixed. A separate kerning-enabled check with AVATAR Toffee typography also preserved all horizontal positions across those grades.

The terminal windows use identical text at a nominal 22 px with 33 px table line spacing, ligatures disabled, and the same theme colors. Powerline separators and standard Unicode block progress bars come from each font’s own outlines. Segment backgrounds follow measured glyph advances; missing characters retain the font’s missing-glyph outline with no fallback. Actual terminal line-height and fallback settings may change the joins. Regenerate with node scripts/render-comparison-svgs.mjs scripts/comparison-fonts.local.json --terminal-only.

* Language counts use Hyperglot 0.8.1, run locally with primary orthographies, living languages, and base-character support. Shaping is disabled. The command was:

.venv-hyperglot/bin/hyperglot --no-shaping --orthography primary --status living --check base <font-file>

MonoLisa exposes liga, dlig, calt, zero, ss01–ss15, and cv01–cv12. JetBrains Mono exposes calt, zero, ss01, ss02, ss19, ss20, cv01–cv12, cv14–cv20, and cv99. MonoLisa has 10 named weights, Hairline through Black, and weight/grade axes. JetBrains Mono v2.304 has 8 named weights, Thin through ExtraBold, in static and variable upright/italic files; its measured variable files expose weight only. Both fonts cover Powerline 6/6, box drawing 128/128, and block elements 32/32, with internally aligned vertical metrics.

The enlarged details use the same font files as the complete specimens, at equal nominal sizes for both fonts. Glyphs are centered independently without changing their proportions. The circles are annotations behind the original outlines; upright and italic details use their respective font files. Regenerate them with node scripts/render-comparison-svgs.mjs scripts/comparison-fonts.local.json --focus-only.