Skip to content

仓库 files navigation

Programming Fonts

Test drive programming fonts online in your browser. The interactive counter part of the Tumblr Blog.

ProgrammingFonts.org makes it easier to find monospaced fonts. All fonts in one place, with proper credits towards the creators. It's not a download portal, no tracking, monetization or business plan: it's strictly by nerds and designers for nerds and designers.

Buy me a coffee

This website is powered by coffee. No ads, no monetization, no business model. We do have some costs for the domain name however. Please feel free to make a little donation via to keep this labour of love running. It's much appreciated!

ko-fi

Project layout / contributing

  • All information about the fonts is stored in fonts.json.
  • Font files are stored in fonts/resources.
    • We store only 4 variants (if available), in .woff2 format: regular, italic, bold, bold+italic.
    • If you don't have a .woff2 you can use tools/convert.py to create them off the ttf/otf file.
  • All font files (and directories) are normalized to lowercase, without -mono unless it's really part of the name.
  • Each font lives in a directory named after its alias, and the variant files within follow a consistent naming scheme based on that alias:
    • regular: no suffix, e.g. iosevka/iosevka.woff2
    • italic: -italic, e.g. iosevka/iosevka-italic.woff2
    • bold: -bold, e.g. iosevka/iosevka-bold.woff2
    • bold+italic: -bold-italic, e.g. iosevka/iosevka-bold-italic.woff2
  • Alongside the variants, each font directory should also include the font's license file (e.g. iosevka/license.md, agave/LICENSE, audio-link/OFL.txt), exactly as shipped by the creator.
  • The fonts.less registers the variants for each font "alias" and is used to generate the stylesheets.
  • The license needs to allow serving in a website, or an agreement with the font creators needs to be made. If available we add a license file along with the font files.

Development

  • Running make installs dependencies, lints, validates fonts.json (against fonts-schema.json and validate.js), and builds the stylesheet.
    • The stylesheet stylesheet.css is generated from fonts.less via npx lessc — don't edit it by hand; edit fonts.less and rebuild.
  • Run make serve to preview the site locally (python3 -m http.server).
  • Run make list to print an updated list of all the fonts, be sure to update this README with your addition.
  • Run python3 tools/info.py --name yourfont to add glyph, character and language counts.

Limitations of this project

There are sometimes near infinite variations of certain fonts. Take for instance the variable weights and all the options of a configurable font like Commit Mono. Certain fonts also come with dozens of (OpenType) variations to change shapes of characters, zero styles, ligatures, etc. We hint at these possibilities in programmingfonts.org, but for details you really need to explore the websites of these fonts, and tools like FontDrop.

Therefore:

  • We only include the basic 4 styles of any font to ensure correct rendering in the preview, but don't let you explore all the weights and variations.
  • Open type alternatives for zero style, and others (for instance all the different variations possible with Input Mono) are not exposed.
  • Programming ligatures (e.g. =>) are switched on, but if you don't like them most editors will allow you to switch them off.
  • We display number of languages supported per script, as reported by Hyperglot. Not all the hundreds of languages individually. This also means that if a font supports Katakana, but not also Hiragana and Kanji, its support for Katakana is not mentioned since there are not enough characters in the font to cover a complete language.

Notable omissions

A complete list of fonts in this project is all the way at the bottom of this README. However, some fonts are not included in the project:

Commercially licensed fonts

We've been able to license some commercial fonts for programmingfonts.org, but there are simply too many out there... including:

Curious "Free" Fonts

To date we've been unable to find a reliable source of information or downloads for these fonts, although we know they're out there:

  • Cruft
  • Espresso Mono
  • Selectric
  • Topaz-8
  • TI92PLUS
  • Natural Mono

Bitmap FON files

Some bitmap fonts are only available in (Windows) FON files. Sometimes conversions to TTF are available, but they don't always work. Sadly we can't include these on the website:

Old school

For "the world's biggest collection of classic text mode fonts, system fonts and BIOS fonts from DOS-era IBM PCs and compatibles", please have a look here: https://int10h.org/oldschool-pc-fonts/.

The PICO-8 project combines and tweaks several fonts for PICO-8 programming: https://github.com/juanitogan/p8-programming-fonts

All the fonts

关于

Test drive programming fonts online: the definitive list of fonts for code.

Topics

Resources

Stars

1.8k stars

关注者

27 watching

复刻s

Used by

贡献者

Languages