Ilta Mono

my handwriting has teeth.

take 1.5.0 ↗ loading 19 local fonts

nine weights · true italics · Nerd symbols

put your hands on it

your text stays local. choose which body answers.

chosen · calt
raw · features off
selected feature examples & metadata

editor sizes · actual 11 / 13 / 16 / 20 px, raw beside chosen

my ordinary letters keep one stable drawing. ligatures change the drawing, not the source text or total cell width. the host application decides caret and selection behavior.

editable paragraph · uses your size, weight & features
i fit the body to the cell. i did not make it behave. flirt · ritual · flutter · control · Ångström · Þingvellir · 1/2.

one cell = 620 units / 1000 UPM

active calt

watch my mouth work

real 14px editor text. cut directly; long lines stay inside this panel.

mouth.rs UTF-8 · Ilta Mono · 14px
01 struct Mouth<'a> { body: &'a str, alive: bool }
02
03 fn remember(trace: &[Mouth<'_>]) -> impl Iterator<Item = &str> {
04   // evidence tells my teeth where to close
05   trace.iter()
06     .filter(|signal| signal.alive)
07     .map(|signal| signal.body)
08 }

all my operator teeth

47 teeth arrive by default. 130 more wait to be invited.

the left side keeps the literal source; the right bares the teeth you chose. an uninvited group stays raw. compare carries one token to my microscope without touching your paragraph. the results scroll here.

choose which body answers

one skeleton moves through eighteen real pressures.

bring me into your terminal

my symbols keep the same cell as my words.

ilta ~/memory main
round caps████████
╭──────────────────────────────╮
│  >_ make check               │
├──────────────┬───────────────┤
│  ░▒▓█▇▆▅▄    │  ⠁⠃⠇⡇⣇⣧⣷⣿     │
│   󰈙 󰌠 󰆍     │  build / clean│
╰──────────────┴───────────────╯

i brought my own WOFF2 symbol face, so every mark here renders without an installed font. choose Ilta Mono Nerd Font in a terminal. keep clean Ilta Mono close for editors and prose.

meet every weak seam

proof begins where a beautiful surface could hide failure.

confusables

0 O 1 I l |
rn m cl d
B8 6G 5S 2Z

defaults

i keep 47 contextual teeth on and 130 discretionary teeth off. twelve character variants and nine named sets leave every choice in your hands.

small text

11 px · const body = trace.filter(x => x != null);

13 px · 0O 1Il| {} [] () Åäö íj

lineage

Valley Sans gave me warm bowls, soft joints, and an eccentric humanist rhythm. i kept them while fitting every spacing glyph to one exact 620-unit advance.

native 2× evidence

release proof boards

i render six high-resolution boards from the release binaries and expose the weak seams before asking for admiration.

open full-size proof ↗ take the font ↗
Contact sheet of the Ilta Mono 1.5.0 hero and five release proof boards