Convert Figma logo to code with AI

JetBrains logoJetBrainsMono

JetBrains Mono – the free and open-source typeface for developers

10,782
303
10,782
158

Top Related Projects

76,660

Free monospaced font with programming ligatures

This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.

Monospaced font family for user interface and coding environments

18,991

Versatile typeface for code, from code.

9,552

The package of IBM’s typeface, IBM Plex.

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more

Quick Overview

JetBrains Mono is a free and open-source monospaced font designed specifically for developers. It features increased height for better readability, a rectangular shape, and carefully crafted ligatures. The font aims to reduce eye strain and improve code readability, especially during long coding sessions.

Pros

  • Improved readability with increased x-height and distinctive characters
  • Supports a wide range of programming ligatures
  • Available in multiple weights and styles
  • Free and open-source, suitable for both personal and commercial use

Cons

  • May not be suitable for all developers, as font preference is subjective
  • Ligatures might take some time to get used to for some users
  • Limited language support compared to some other programming fonts
  • Requires manual installation on some systems

Getting Started

To use JetBrains Mono in your development environment:

  1. Download the font from the official GitHub repository.
  2. Install the font on your system:
    • Windows: Right-click the downloaded files and select "Install"
    • macOS: Double-click the downloaded files and click "Install Font"
    • Linux: Copy the files to ~/.local/share/fonts and run fc-cache -f -v
  3. Configure your IDE or text editor to use JetBrains Mono as the default font.

For example, in Visual Studio Code, add the following to your settings.json:

{
  "editor.fontFamily": "JetBrains Mono",
  "editor.fontLigatures": true
}

In IntelliJ IDEA or other JetBrains IDEs, go to Settings/Preferences > Editor > Font, and select "JetBrains Mono" from the dropdown menu.

Competitor Comparisons

76,660

Free monospaced font with programming ligatures

Pros of FiraCode

  • More extensive ligature support, offering a wider range of programming-specific symbols
  • Longer development history, resulting in a more mature and refined typeface
  • Larger community and wider adoption across various text editors and IDEs

Cons of FiraCode

  • Less consistent spacing and alignment compared to JetBrainsMono
  • May appear less crisp on certain displays due to its design approach
  • Limited weight options compared to JetBrainsMono's extensive range

Code Comparison

FiraCode:

if (x => 0 && x <= 100) {
  console.log("x is between 0 and 100");
}

JetBrainsMono:

if (x >= 0 && x <= 100) {
  console.log("x is between 0 and 100");
}

The main difference in this example is the rendering of the >= operator. FiraCode combines it into a single ligature, while JetBrainsMono keeps the characters separate but aligned. Both fonts aim to improve readability, but their approaches differ slightly in execution.

This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.

Pros of Cascadia Code

  • Designed specifically for terminal and command-line interfaces
  • Includes programming ligatures for improved code readability
  • Offers a wider range of weights and styles

Cons of Cascadia Code

  • Less optimized for extended coding sessions in IDEs
  • May have fewer language-specific optimizations
  • Smaller community and fewer contributions compared to JetBrains Mono

Code Comparison

JetBrains Mono:

def factorial(n):
    return 1 if n == 0 else n * factorial(n - 1)

Cascadia Code:

def factorial(n):
    return 1 if n == 0 else n * factorial(n - 1)

While both fonts render code similarly, JetBrains Mono may offer slightly better readability for extended coding sessions due to its focus on IDE usage. Cascadia Code, on the other hand, excels in terminal environments and offers more stylistic options. The choice between the two often comes down to personal preference and specific use cases.

Monospaced font family for user interface and coding environments

Pros of Source Code Pro

  • Wider range of weights and styles, offering more flexibility in design
  • Longer development history, potentially leading to better refinement
  • Larger community and wider adoption, resulting in more extensive testing

Cons of Source Code Pro

  • Less focus on programming-specific ligatures compared to JetBrains Mono
  • May not be as optimized for extended coding sessions as JetBrains Mono
  • Slightly less modern aesthetic compared to JetBrains Mono's sleek design

Code Comparison

While both fonts are designed for coding, their appearance in code can differ slightly:

Source Code Pro:

def hello_world():
    print("Hello, World!")

JetBrains Mono:

def hello_world():
    print("Hello, World!")

The differences are subtle, but JetBrains Mono tends to have slightly wider characters and more distinct forms for similar glyphs, which can aid in code readability during long coding sessions.

Both fonts are excellent choices for programming, with Source Code Pro offering more versatility in design and JetBrains Mono focusing on optimizing the coding experience.

18,991

Versatile typeface for code, from code.

Pros of Iosevka

  • Highly customizable with numerous build options
  • Supports a wide range of languages and scripts
  • Compact design, allowing more text to fit on screen

Cons of Iosevka

  • Requires building from source for custom variants
  • May have a steeper learning curve for configuration
  • Less widespread adoption compared to JetBrains Mono

Code Comparison

Iosevka:

const x = 42;
function foo() {
  return x * 2;
}

JetBrains Mono:

const x = 42;
function foo() {
  return x * 2;
}

While both fonts are monospaced and designed for coding, the visual differences are subtle. Iosevka tends to have a more condensed appearance, which can be advantageous for displaying more code on screen. JetBrains Mono, on the other hand, focuses on readability with its wider characters and distinctive ligatures.

Iosevka's customization options allow users to tailor the font to their preferences, including character width, style variations, and ligature support. JetBrains Mono offers a more standardized approach with carefully designed glyphs and built-in coding-specific features.

Ultimately, the choice between these fonts depends on personal preference, screen real estate considerations, and the desire for customization versus out-of-the-box optimization for coding.

9,552

The package of IBM’s typeface, IBM Plex.

Pros of Plex

  • Offers a wider variety of font styles and weights
  • Supports a broader range of languages and scripts
  • Designed for both digital and print use

Cons of Plex

  • Larger file sizes due to extensive character set
  • May require more system resources to render
  • Less focus on programming-specific features

Code Comparison

While both fonts are designed for readability in coding environments, their appearance can differ slightly:

JetBrains Mono:

def hello_world():
    print("Hello, World!")

Plex Mono:

def hello_world():
    print("Hello, World!")

JetBrains Mono features ligatures and coding-specific glyphs, while Plex Mono offers a more traditional monospaced appearance. The choice between them often comes down to personal preference and specific use cases.

Both fonts are open-source and actively maintained, with JetBrains Mono focusing more on programming-specific features, while Plex aims to be a versatile typeface family for various applications.

Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more

Pros of Nerd Fonts

  • Offers a vast collection of patched fonts with added icons and glyphs
  • Includes a wide range of programming ligatures across multiple fonts
  • Provides extensive customization options and font variants

Cons of Nerd Fonts

  • Large repository size due to the extensive font collection
  • May require more system resources to manage and use multiple fonts
  • Some fonts might have inconsistent quality or incomplete character sets

Code Comparison

While a direct code comparison isn't applicable for font repositories, we can compare how they might be used in a terminal configuration:

JetBrains Mono:

font_family JetBrains Mono
font_size 12.0

Nerd Fonts:

font_family Hack Nerd Font Mono
font_size 12.0
symbol_map U+E0A0-U+E0A2,U+E0B0-U+E0B3 PowerlineSymbols

The Nerd Fonts configuration allows for additional symbol mappings, which can be useful for displaying custom glyphs and icons in the terminal or text editor.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

official JetBrains project

JetBrains Mono: a typeface made for developers

Alt text

JetBrains Mono is available as a standalone download, and is also bundled in all JetBrains IDEs. Discover more font features & design on its web page.

Default version of JetBrains Mono comes with OpenType features and ligatures (which can always be toggled on & off in the settings). If your IDE doesn’t support OpenType, use a special version of the font — JetBrains Mono NL, which doesn’t include any ligatures.

Installation

JetBrains IDEs

The most recent version of JetBrains Mono ships with your JetBrains IDE starting with v2019.3.

Select JetBrains Mono in the IDE settings: go to Preferences/Settings → Editor → Font, and then select JetBrains Mono from the Font dropdown.

Brew (macOS only)

Install it using the font-jetbrains-mono cask:

brew install --cask font-jetbrains-mono

Manual installation

On Mac/Windows:

  1. Download font.
  2. Unzip the archive and install the font:
    • Mac. Select all font files in the folder and double-click them. Click the Install Font button.
    • Windows. Select all font files in the folder, right-click any of them, then pick Install from the menu.

Note If you have previously installed JetBrains Mono, please uninstall all previous versions to exclude conflicts and errors in rendering.

On Linux:

Open a terminal and run the following:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/JetBrains/JetBrainsMono/master/install_manual.sh)"

Once JetBrains Mono is installed in your OS, you are ready to configure the editor.

Visual Studio Code

  1. From the File menu (Code on Mac) go to Preferences → Settings, or use keyboard shortcut Ctrl+, (Cmd+, on Mac).
  2. In the Editor: Font Family input box type JetBrains Mono, replacing any content.
  3. To enable ligatures, go to Editor: Font Ligatures, click Edit in settings.json, and copy this line "editor.fontLigatures": true into json file.

More ways to install

Font Styles

There are 8 font styles available in JetBrains Mono, from Thin to ExtraBold, each coming with its own italic version.

Alt text

Font Features

Increased x-height

While characters remain standard in width, the height of the lowercase is maximized. This approach keeps code lines to the length that developers expect, and it helps improve rendering in small size, since each symbol occupies more pixels.

Alt text

Distinctiveness of symbols

Alt text

Ligatures for Code

A ligature is a character consisting of two or more joined symbols. Traditionally, it was introduced as a space-saving technique in printed texts. In code, this technique is adopted to show operators and is used mainly for two purposes:

  1. To reduce noise by merging symbols and removing details so the eyes are processing less:

Alt text

  1. To balance whitespace more efficiently by shifting the glyphs in certain cases:

Alt text

Note if your IDE doesn’t support OpenType features and ligatures, use JetBrains Mono NL instead.

OpenType features

Starting from v2.304, JetBrains Mono has added support for alternate characters. Stylistic Sets ss01-20 usually change a group of characters. Character Variant cv01-99 usually changes only one character. Here are the instructions for enabling these features.

Alt text Alt text

Basic Character Set

Alt text You can find full JetBrains Mono character set on our wiki page.

Building from source files

Note To build from source, you'd need Python 3.9.5 or higher (install instructions for Python available here).

The source files can be found in the "Source" folder. To open them you will need Glyphs app.
To build the .ttf, .otf, woff2 & variable .ttf you will need to:

  • Install gftools pip install gftools
  • Install fonttools[woff] pip install fonttools[woff]
  • Navigate to JetBrainsMono folder in Terminal app.
  • Type gftools builder sources/config.yaml in Terminal and run it.
  • Type python scripts/generate_variable_webfonts.py in Terminal and run it to generate variable woff2 files.
  • After the scripts are complete, the files can be found in fonts folder.

License

JetBrains Mono typeface is available under the OFL-1.1 License and can be used free of charge, for both commercial and non-commercial purposes. You do not need to give credit to JetBrains, although we will appreciate it very much if you do.

The source code is available under Apache 2.0 License

Credits

Type designer
Philipp Nurullin

Team lead
Konstantin Bulenkov

Thanks to
Nikita Prokopov
Eugene Auduchinok
Tatiana Tulupenko
Dmitrij Batrak
IntelliJ Platform UX Team
Web Team