DEV Community

Cover image for Comparison of MonoLisa vs. JetBrains Mono
MonoLisa
MonoLisa

Posted on Originally published at monolisa.dev

Comparison of MonoLisa vs. JetBrains Mono

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.



The same function in MonoLisa Code and JetBrains Mono

Coding ligatures and character variants

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



Operators and ligatures in MonoLisa Code and 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 dotted and alternate slashed zeros in MonoLisa Code and JetBrains Mono, enlarged above the same port equals 8080 sample

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.



Enlarged O and o curves highlighted with circles in MonoLisa Code and JetBrains Mono, followed by the full character sample

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.



Enlarged italic f and code with fi pairs in MonoLisa Code and JetBrains Mono

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.



The same MonoLisa Code line at Regular weight with grades minus 50, zero, and plus 50 showing progressively thicker strokes

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.



Matching terminal windows with colored Powerline prompts, box-drawing tables, block progress bars, and status lines in MonoLisa Code and JetBrains Mono

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

Category MonoLisa Code JetBrains Mono
Languages (measured)* 593 358
Writing systems 5 (Latin, Cyrillic, Greek, Hebrew, Armenian) 3 (Latin, Cyrillic, Greek)
Italics Yes Yes
Fixed weights 10 8
Variable axes Weight (wght), grade (GRAD) Weight (wght)
Style control 15 stylistic sets, 12 character variants 4 stylistic sets, 20 character variants
Coding ligatures Yes Yes
Terminal symbols Yes Yes
Proportional counterpart MonoLisa Text (separate purchase or bundle) None in the JetBrains Mono family
Price Paid; limited free trial Free and open source
Source monolisa.dev JetBrains Mono GitHub repository

View comparison infographic

Summary infographic comparing MonoLisa Code and 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>
Enter fullscreen mode Exit fullscreen mode

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.


Top comments (0)