This is set of pixelated, retro-style fonts based on the classic 5×7 dot matrix capitals. The design captures the look of this ubiquitous format, incorporating the best features from historical examples. There are five variants in this family:
- Regular is like most "pixel" fonts that use connected, square dots, like the displays of 8-bit home computers and video game consoles from the 1980s.
- Print is made up of separate circular dots, resembling the output of a dot-matrix printer or the expiry dates on food products. It also mimics the electronic signs found on motorways, at airports and train stations, etc.
- Raster consists of horizontal lines with rounded edges, emulating a raster — the set of lines traced out by the electron beam in a monochrome CRT.
- Screen is similar to Print, but uses square dots instead of round ones. It matches the look of the "character LCDs" seen in many devices, as well as some light-up LED displays.
- Video is an interpolated version of Regular. It resembles the on-screen displays of VCRs, Teletext, camcorders and the like; harking back to the early days of computerisation in television and home video.
For much of my life, I have liked both alphabets and lettering, and 8-bit home computers and video games. The intersection of those interests is low-resolution dot matrix graphics and fonts, which remain perhaps the most iconic feature of the 8-bit systems. Fonts based on a 5×7 dot matrix are especially noteworthy, having been some of the most common dimensions for over half a century.
In utilitarian applications, 5×7 dot matrix fonts may still be found all around us, for example: in calculators, microwave ovens, electronic road signs, train stations and airport terminals, dot-matrix printers (which have mostly fallen out of use, but the style is still commonly seen in the expiry dates printed on food packaging) and "character LCD" modules used in all manner of electronic devices:
So-called "pixel" fonts are also a popular stylistic choice, often seen in contexts that have nothing to do with electronics or games, even in the absence of technical limitations. With all of that in mind, I felt that the typographical world could be enriched through the creation of high-quality, open-source fonts in this style.
Much of my interest in the topic was piqued by Damien Guard’s article, Typography in 8 bits: system fonts. In preparation for this project, I decided to conduct an even more comprehensive study of classic dot-matrix fonts, with a focus on those using the iconic 5×7 dot matrix capitals.
See documentation/research.md for detailed documentation of this study and the decision-making process for the design of this font.
When designing the dot-matrix patterns for these fonts, I attempted to strike a balance between the following principles:
- authenticity
- quirkiness
- consistency
- sound design
Authenticity and quirkiness are often in conflict with consistency and sound design; the countless historical 5×7 fonts contain many unusual-looking (quirky) features, which by their nature are often inconsistent.
In order to retain the essence and charm of existing 5×7 fonts, yet rein in their oddities and avoid ugliness, none of these principles can be fully embraced. Instead, they serve as a guide while trying to choose the most coherent, well thought-out designs possible for this project.
Readers today expect visually consistent spacing around all characters, including narrow ones like 1 I i l and punctuation marks. Trading some authenticity for sound design, this font family is proportionally spaced, unlike most prior 5×7 fonts. The proportionally-spaced typefaces American Typewriter and OCR A Tribute are similarly inspired by classic monospaced designs, but take the further step of tweaking the proportions of the glyphs themselves, in the pursuit of a more conventional reading experience. This design doesn't go that far: all glyphs (and spaces between them) are still based strictly on a square grid. Where possible, glyphs have been kept to no more than 5 dots wide, which would allow for a monospaced version to be created with mostly the same glyphs.
Fonts are built automatically by GitHub Actions - see the "Actions" tab for the latest build.
Ensure the following programs are installed:
- Python, for running the following items
- gftools, for building the fonts from the intermediate UFO sources
- drawbot-skia, for producing the sample images in the
documentation
folder (optional) - Font Bakery, for testing the fonts (run
test.bat
) (optional) - sfdLib, for generating the UFO sources (see below)
After installing Python (and ensuring it is added to the PATH environment variable), the others may be acquired automatically by running pip install -r requirements.txt
at the command line.
To build the fonts on Windows:
- Run
build.bat
in thesources
folder.
To build the fonts on Linux or macOS:
- Run
make build
at the command line, in theMatrixSans
folder.
The master source file, MatrixSans_MASTER.sfd
, is in FontForge's SFD format. It is recommended to edit this file if you wish to modify the fonts. Then, re-generate the intermediate UFO sources by running step2.bat
.
To easily add or modify glyphs (requires FontForge, and its Python module to be accessible to your Python interpreter):
- Edit the image
glyphs.pbm
- Set the corresponding glyph names in
glyphs.csv
- Run
step1.bat
to generate a temporary fonttemp.sfd
containing the new glyphs - Using FontForge, copy the new glyphs into the master source file,
MatrixSans_MASTER.sfd
- Run
step2.bat
to generate the intermediate UFO sources in the various styles- Custom behaviour is implemented for certain glyphs in the Video and Raster styles; edit
step2.py
to change this
- Custom behaviour is implemented for certain glyphs in the Video and Raster styles; edit
- Added small capitals, accessible through the
smcp
andc2sc
Opentype features - Changed the design of Æ, æ, Œ, œ, Ð, đ, ħ, ƒ, and ₽
- Improved appearance of "M" in Video style
- Improved kerning
- Updated kerning
- Reduced space width
- Removed unnecessary space characters
- Updated strikeout width and position in Print, Raster and Screen styles
- Reduced dot size in Screen style
- Improved appearance of em dash, underscore, cedilla and ogonek in Raster style
- Added
meta
table to exported fonts, specifying designed/supported script - Reduced number of contours in Regular style, by disabling Fontmake's overlap removal
- Removed ttfautohint from the build process
- Changed font names to meet Google Fonts requirements
- Added Raster style
- Improved kerning
- Changed appearance of alternative caron diacritic
- Improved Video style appearance
- Added additional whitespace and hyphen characters
- Fixed alignment of double acute accents
- Changed copyright and registered signs
- Updated font names
- Removed unreachable glyphs (which only existed to placate an older version of Font Bakery)
- Added Greek Delta and mu as references to existing glyphs
- Changed @ sign
- Added kerning
- Changed the working title from "Libre Dot Matrix" to "Matrix Sans"
- Improved the appearance of some characters in the Video style
- Fixed accent placement on Ű and ű
- Increased line height
- Fixed underline position
- Added mark glyph class to the GDEF table to fix Font Bakery warning
- Fixed dot positioning in Screen style
- Increased height of dagger and double dagger
- Changed build process to work around several bugs in FontForge
- The Localised Forms (
locl
) OpenType feature now works correctly
- Modified Dutch ij ligature
- Modified capital letter Ŋ; added localised form for Northern Sami
- Added unencoded glyphs from Google Fonts Latin Core to avoid Font Bakery error (temporary)
- Added OpenType features:
ccmp
,mark
,locl
,tnum
,zero
- Now supports Google Fonts Latin Core and Adobe Latin 3
- Added dotted circle (U+25CC)
- Fixed soft hyphen
- Fixed WinAscent metric
- Now supports the Adobe Latin 2 character set
- Fixed character widths
- Improved Video style appearance
- Lengthened hyphen by one dot
- Fixed character widths
- Fixed line height
- Updated metadata: font names, PANOSE classification, etc.
- Initial test release
- Supports Basic Latin (ASCII)
This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at https://scripts.sil.org/OFL