Skip to content

molarmanful/eldur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

90 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eldur

Table of Contents

Overview

eldur /ˈɛldʏr/ n.

  1. (Icelandic) fire.

  2. A monospace bitmap font with a 5x13 bounding box (4px avg width, 3px descent, 10px ascent, 5px x-height, 8px cap height). It takes strong inspiration from upright-italic type to create a font that aims to balance aesthetics, compactness and readability at the 4-5px level.

    Some glyphs come from scientifica and creep, often with modifications to adhere to eldur's design.

Gallery

programming font test pattern english multilingual scala clojure golang svelte pretty plain text math/science box drawings braille

Installation

Download from Releases. Included are bitmap formats - OTB, BDF, DFONT (for Mac users) - as well as TTF. 2x versions are available for HiDPI screens.

For the crispiest viewing experience, try to use the bitmap formats when possible. If bitmap fonts are not supported on your platform (e.g. Windows, VSCode), then use the TTF at font sizes that are multiples of 13px.

Quick Tip: If you need font size in pt, use the following conversion:

pt = px * 72 / dpi

e.g. 13px on a 96dpi screen is 13px * 72 / 96dpi = 9.75pt.

Manually Building

Requirements:

git clone and run build.sh. Font files output to out/.

build.sh downloads FontForge as an AppImage at deps/ for generating bitmap formats from BDF. build.sh also downloads a Bits'n'Picas binary at deps/. If you wish, you can use this binary (instead of or alongside FontForge) to view glyphs and build desired font formats not found on the Releases page.

Design Notes

A rather gnarly challenge with designing a font this small is that oftentimes, characters have details that are important but difficult to fit within 4px - e.g. the middle part of M/W. Here are some approaches for how I try to resolve these problematic characters:

  • Alias the detail: this is less desirable because it messes with readability. I more willingly use this approach for characters like letters that form parts of words (e.g.: M/W).
  • Expand to 5px: this is less desirable because it messes with spacing. I more willingly use this approach for characters that generally appear by themselves or don't need the spacing to be legible.
  • Break the bounding box: this is super-undesirable because it messes heavily with spacing and may mess up certain text renderers (unverified, needs testing). I use this as a last-resort to save certain characters from certain doom.

But this is not a perfect science, and not all characters are salvageable.

TODO

In no particular order:

  • More Unicode support
  • Ligatures
  • Bold?
  • Nerd Fonts support/patch?

Contributing

Issues, feature/glyph requests, and pull requests are all welcome!

Credits

These are projects that have inspired/helped me create eldur and are 100% worth checking out.

Licensing

Made with ♥ by Ben Pang. Released under the OFL-1.1 License.