Skip to content

molarmanful/kirsch

Repository files navigation

kirsch

Table of Contents

Overview

kirsch /ˈkɪərʃ/ n.

  1. (German) cherry.

  2. (Russell A. Kirsch, 1929 - 2020) American engineer recognized as the developer of the first digital image scanner and the inventor of the pixel.

  3. A monospace bitmap font with a 6x16 bounding box (5px avg width, 4px descent, 12px ascent, 5px x-height, 9px cap height). It draws from a variety of letterforms and motifs to create a distinct humanist feel at a compact size.

    Some glyphs come from Cozette, often with modifications to adhere to kirsch's design.

Gallery

Glyphs

kirsch glyphs

Glyphs Map

kirsch glyph map

Samples

kirsch sample

Installation

Download from Releases. Included are bitmap formats - OTB, BDF, PCF, DFONT (for Mac users) - as well as TTF. 2x versions are available for HiDPI screens. Note that PCF doesn't contain glyphs past U+FFFF.

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 16px.

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 16px * 72 / 96dpi = 12pt.

Patched Nerd Fonts are available. The "Mono" variant uses smaller glyphs (single- instead of double-width) and works for terminals that can't mix widths.

Web

I would generally discourage usage of kirsch on the web due to lack of bitmap support. But for the stubborn and the brave, WOFF2 is available. There is also a CDN-hosted stylesheet for convenience.

<link
  rel="stylesheet"
  href="https://cdn.jsdelivr.net/npm/kirsch@latest/kirsch.css"
/>

Manually Building

Requirements:

Optional:

  • HarfBuzz utilities (e.g. apt install libharfbuzz-bin)
  • bdfresize (e.g. apt install bdfresize)
  • bdftopcf (e.g. apt install xfonts-utils)
  • compress_woff2 (e.g. apt install woff2)

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

build.sh downloads into deps/:

  • A FontForge AppImage for generating bitmap formats from BDF.
  • A Bits'n'Picas binary. 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.
  • A Nerd Fonts Patcher, which requires -n to activate.

HarfBuzz utilities are necessary if you wish to use img.sh to generate the images found in img/, but is otherwise unused in the building of the final font files. bdfresize is for generating HiDPI fonts. bdftopcf is for generating PCF fonts. compress_woff2 is for generating WOFF2 fonts.

Design Notes

Unlike my previous font eldur, which had a mere 4px avg. char width to work with, kirsch has a 5px avg. char width. That 1px of extra width affords a surprising amount of leeway for the design. Far more glyphs fit comfortably into 5px width - e.g. "m" and "w" - meaning that those glyphs won't break kerning and intrude on the spaces of neighboring glyphs. Glyphs that don't fit into 5px width can now work with 7px width, which maintains balance and legibility without affecting kerning too negatively.

Flourishes

rogue fijian xylophone

The flourishes - e.g. in "i" or "f" - are a stylistic choice, but they also serve a functional purpose. Without the flourishes, "i" would take up 1px of width, leaving 4px of awkward space. 2px flourishes on each side of the "i" give it a 5px width, thereby addressing the kerning issue in a stylish way.

In "l"'s case, the script-style flourishes further distinguish it from other vertical characters like 1I|.

Gaps

bad queen peg 69

One of kirsch's distinctive features is the presence of a gap at the bowls of the letters. Filling in the gap would make the letters either too square or too bunched-up, while leaving the gap open declutters the letterforms. The gaps also evoke script-style stroke endings.

TODO

  • More Unicode support
  • Ligatures

Contributing

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

Credits

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

Licensing

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