A lovingly crafted handwriting-style monospace font.
Oh yeah... and it's
variable!
Annotation Mono is an idealized handwriting; using letter forms inspired by monospace bitmap fonts, legibility is maximized while retaining a hand-written character.
Its variable weights make Annotation Mono ideal for a wide variety of use cases other than code, including labels and headings. Given its hand-written look, you could even use it for comic lettering if you want.
Download Annotation Mono from GitHub or continue reading to learn more about the font.
Annotation Mono features three variable axes:
The weight axis allows fine-grained selection of text weight from Thin (100) to ExtraBlack (1000), and with the slant axis, an exact pitch angle can be chosen from Upright at 0° to Oblique at -15°.
The CRSV axis controls how the change from regular ("roman") and cursive forms for the letters occurs. At the default value of 0.5, the change is made once the slnt value reaches -15. However, if CRSV is set to 0 then the cursive forms will never be used, and if it's set to 1 then they will always be used.
This allows for four distinct styles of text at any weight:
Click anywhere on the demo below to toggle CRSV between 0 and 1 for the floating pieces of text.
| 100 | Thin | ||
| 200 | ExtraLight | ||
| 300 | Light | ||
| 400 | Regular | ||
| 500 | Medium | ||
| 600 | DemiBold | ||
| 700 | Bold | ||
| 800 | ExtraBold | ||
| 900 | Black | ||
| 1000 | ExtraBlack | ||
| 0° Upright | -15° Oblique | ||
More language support and additional technical glyphs are planned for the future, but right now Annotation Mono supports a broad range of Latin-based languages -- 377 according to Shaperglot.
Annotation Mono has a carefully selected collection of ligatures which smooth the rough edges of certain multi-symbol formations often encountered in programming contexts.
Standard ligatures (liga)
These ligatures are controlled by the `liga` OpenType feature. The intent is
that these are unobtrusive, mostly keeping the original shape of the component
glyphs, only adjusting positioning and bridging gaps where there are implied
connections in a multi-character formation.
Arrow-like formations are connected in to readable arrows.
-> :: ->
<- :: <-
=> :: =>
>-> >=> :: >-> >=>
<-< <=< :: <-< <=<
<-> <=> :: <-> <=>
In the future, additional ligatures may be added to address
any formations which stick out to me in their un-ligated form.
<= and >= (ss01)
Ligatures for <= and >= are available by enabling Stylistic Set 01.
<= :: <=
>= :: >=
Alternative versions of some characters.
Non-loopy italics (ss02) You might find the loopy cursive italic forms hard to read, but don't just want to use the oblique. Well you're in luck! By enabling Stylistic Set 2 (ss02) the italic forms will be swapped for less loopy ones which should improve readability. fig jelly Default fig jelly ss02 These are also accessible as individual character variants by enabling cv01 through cv05 to apply the change to each of 'f', 'g', 'j', 'l', and 'y' respectively.
Other features provided by Annotation Mono.
Old-style numerals (onum)
Old-style numerals blend better with lowercase text.
0123456789 Old-style
0123456789 Regular