Skip to content

fonsecapeter/brass_mono

Folders and files

NameName
Last commit message
Last commit date

Latest commit

3bfe887 · Feb 14, 2025

History

64 Commits
Oct 9, 2023
Oct 9, 2023
Feb 14, 2025
Aug 29, 2018
Jan 6, 2024
Aug 12, 2020
Jan 6, 2024
Feb 14, 2025
Aug 30, 2018
Aug 29, 2018
Oct 9, 2023
Aug 10, 2018
Aug 29, 2018
Feb 14, 2025
Oct 9, 2023
Oct 5, 2023
Jan 6, 2024

Repository files navigation

Brass Mono

Build Status, hopefully green...

v1.101

Download here

brass_mono

A free retro monospaced font inspired by 20th century electrical and mechanical design. It's open source, a solid choice for writing code, and pairs well with krafftachrome or shellectric colors.

Now with Code Ligatures!

This project actually contains 2 fonts: Brass Mono (no ligatures) and Brass Mono Code (with code ligatures), similar to Fira Code (but with way less ligatures).

code_ligatures

Origin Story

Fonts like this are all over the place. They're type-written in service manuals, stamped on elecrtical components, molded in steel, and pressed into fresh concrete. I made this font in an attempt to capture the beautifully functional, completely unplanned aesthetic that emerged as people who work with their hands built a world around them. I don't know that there's a specific font I'm talking about here, but you know it when you see it.

in_the_wild_1

I made this font shortly after becoming a software engineer. While I loved writing in the blocky monospaced fonts that all code is written in, I couldn't shake the feeling that something was missing. Eventually I gave in and, despite not having any font making education, found some open source tools and got to work. I started out just tracing a couple other fonts I liked (wish I could remember which ones) and making modifications wherever I felt like it. As soon as I had enough letters, I started using my new creation, going back and tweaking as I went until, eventually, I decided Brass Mono was polished enough to share with the world, just like the open-source tools that let me create it.

in_the_wild_2

It wasn't until after I got so used to reading and writing in this font that I learned I have dyslexia. I've tried a few dyslexia-focused fonts and, while I do believe work on these fonts is worthwhile, most of them feel no less choppy to me. Reading in Brass Mono still has it's challenges, but it feels like butter to my eyes. I'd love to take credit for cracking this problem, but I read somewhere that people with dyslexia exert less mental energy when reading their own handwriting, and I think this is just a digital version of that for me.

If you like Brass Mono as much as I do, give it a download and feel free to use it in your own creations, even commercial ones!

-p

Development

The build pipeline is fully scripted – main source file is src/BrassMono.svg which contains the svg glyphs that can be edited via the inkscape svg font editor. From there, ttf font files are compiled into /dist/BrassMono using fontforge.

Loading
flowchart LR
  svg(src/BrassMono.svg) --> forge{bin/docker/forge.pe}
  forge --> reg(dist/BrassMono-Regular.ttf)
  forge --> code-reg(dist/BrassMonoCode-Regular.ttf)
  forge --> bold(dist/BrassMono-Bold.ttf)
  forge --> code-bold(dist/BrassMonoCode-Bold.ttf)
  svg --> forge-ital{bin/docker/forge-italic.pe}
  forge-ital --> ital(dist/BrassMono-Italic.ttf)
  forge-ital --> code-ital(dist/BrassMonoCode-Italic.ttf)
  forge-ital --> bold-ital(dist/BrassMono-BoldItalic.ttf)
  forge-ital --> code-bold-ital(dist/BrassMonoCode-BoldItalic.ttf)

This repo is built to google-fonts spec, which is enforced via fontbakery (bin/lint). It's not fully compliant yet, but will be eventually!

To start working:

  • install docker if you haven't yet
  • run bin/init to initialize git submodules
    • you can skip this if you cloned or pulled with --recurse-submodules
  • create your docker image with bin/build
    • will compile and zip fonts
  • edit src/BrassMono.svg in inkscape with changes
  • run bin/rebuild to re-compile and zip fonts
  • test compiled font quality with bin/lint
  • manually test on your computer with bin/install
    • will update if already installed in ~/.fonts/BrassMonoFonts
    • or just open /dist/BrassMono with Font Book if you're using a mac
  • run bin/help to see all project management commands