Dosage

A small humanist pixel font by MEK.txt, drawn in Figma on a 9-pixel cap height. Every glyph is drawn by hand, and the accented letters are built from those drawings.

189 drawn 163 accented (auto) 14132 kerning pairs v0.100 · 2026-11-03
Download OTF TTF WOFF2
Sharpest at multiples of 12px.
Contrary to the popular beliefs, DOSAGE is not an easy game to play.

Samples

The left image is the "sample" section exactly as drawn in Figma. The right panel sets the same words in the font, at 2× so the pixels line up. Its spacing isn't used for kerning, so the two can differ.

Sample text hand-set in Figma: Contrary to the popular beliefs, DOSAGE is not an easy game to play?! {DOSAGE} Abide GOING. hedge fade hijac.
Figma, hand-placed

Contrary to the popular

beliefs, DOSAGE is not an

easy game to play?!

Abide GOING

hedge fade hijac

{DOSAGE}

The font, with kerning

Proofs

Words and pairs where spacing usually goes wrong, plus every kind of glyph in context. Turn kerning off to see what it fixes. Edit src/proofs.txt to change the text.

Not in the font yet

Capitals that overhang

AVATAR WAVY TAVERN VOYAGE YAWL LAYOUT

To Ta Te Tr Ty Tu Tw Va Ve Vo Wa We Wo Ya Ye Yo

LT LV LW LY L' P. P, F. F, T. T, V. V, W. Y. Y,

Fjord, Type, Victory, Wolf, Yacht, Panama, Taiwan.

I beside round and open letters

It Io Iu Iv Iy Id Ig Is If Ij · oI eI cI rI sI vI bI pI gI

IO IC IG IQ IJ I0 I3 · OI CI DI BI GI LI 0I 9I · In IH aI HI

Italy Iowa Ictus Ibis Iguana Ivy Iceland Idaho · LIGO OIL DOIT BIG LION COIN

Lowercase pairs

ry ra re ro rv rw r. r, rt rf

la lc ld lg lq ls lu lv · lo le lt ly lf · ln lh ll · lO l0 l9

cf rf sf tf zf · fm fn fp fr fu fv fw fx fy fz · Ct St Lt Vt · tf tg tv

bx cx ex ox px sx · xa xc xd xe xg xo xs · surf outfit refund defy next box taxes exceed Street

ta te to tu tr th · of ef bf pf Of · patent toast stand · roof chief golf

St Ct Bt Et Rt · Sf Cf Ef Gf Rf Of · Street Stuart Ethan Brittany Schiff Golf Effect Offer Rolf

LO LC LG LQ Lg Lv Ly Lz Lj Fl · LOVE LOCAL GLOW Lyon Lvov Florida Flight

aT oT eT nT · To Ta Te · aY oY nY Ya Yo · dY gY · Fa Fo Fn Fy FO FC FQ EO EC EQ · L“ L‘ L” L'

Oj Bj Cj Dj Gj Sj Jj Vj Wj Yj bj pj · TJ FJ YJ PJ VJ fJ rJ · rX rY rZ · Kv Xv vX

Fanny Forum FOCUS ECHO EQUAL Bjørn Oja Sjögren hijab objet TJ FJORD PJ Kvass Xvid

ky kv yy vv ww vw wv xy yx

ff fi fl ft fj ffi tt ij jj gj

fly by sky wavy rarely every type jargon gyroscope

Punctuation next to letters

"Quoted," 'single', "T" 'A' "y" 'f'

f) f] j) y, y. r. r, F. T, Y. L'eau

(parens) [brackets] {braces} <angles>

don't it's I'll we've rock'n'roll

¡Hola! ¿Qué tal? Wait... What?! Yes; no: maybe.

“Curly quotes,” ‘single ones’, «guillemets» and ‹these›.

long—dash, 10–20 range, soft-hyphen, under_score, a/b\c|d

Brackets around caps, ascenders and descenders

{DOSAGE} (DOSAGE) [DOSAGE] {dog} (dog) [dog]

(Type) {Jazz} [Fjord] (gypsy) {quip} [jolly] (1984) {2026}

f(x) = {a, b}; g(y) = [0, 9]; h(z) = (k + 1)

((nested)) {[mixed]} ([{all three}]) (a) {b} [c]

Inverted marks

¡Vamos! ¿Por qué? ¡¿Qué?! ¿¡En serio!?

«¿Dónde está?» ¡Olé! ¿Y tú? ¡Ya! ¿Jugamos?

¡Hola, Íñigo! ¿Qué pasó, José? ¡Tú también, Ángel!

Quotes, dashes and dots

“Double,” ‘single,’ „low-double“ and ‚low-single‘

‹one› «two» ’90s rock’n’roll ‘Twas the night

Wait — no — yes. Pages 10–20. Re-enter, co-op, x-ray.

Loading… Tick… tock… Ready? Go!

file_name_v2 · a/b · C:\path\to · x|y · x¦y · • item

Math

2 + 2 = 4 · 9 − 5 = 4 · 3 × 3 = 9 · 8 ÷ 2 = 4

1 < 2 · 3 > 0 · ±0.5 · −12 · ¬true · a^2 · ~5

x² + y² = z² · E = mc² · 10³ m · x¹ y² z³

90° angle · 21°C outside · 37.5° · 360°

Currency, marks and ordinals

£12.50 · ¥3,000 · €9.99 · ¤ generic · −€5 refund

© 2026 MEK.txt · Dosage® · ¶ 4 · 1ª edición · 2º piso

` grave · ´ acute · ˆ circumflex · ˜ tilde · ¨ dieresis · ¯ macron · ˚ ring · ¸ cedilla

Figures

0123456789 1111 1010 7171 4747

10:45 3.14 1,250 0.5 -12 +7 = 19

$40 £12 €9 ¥300 ¢5 100% #7 21st 2nd 3rd 4th

2026-10-27 020 7946 0018 (555) 010-1001

½ ¼ ¾ x² y³ 1° 5×3 9÷3 ±2 µs

Symbols

@handle hello@mek.txt #tag & * + - = < > ^ ~ ` |

© 2026 MEK.txt ® ™ § ¶ † ‡ • · ¬ ¦

Accented

Àà Áá Ââ Ãã Ää Åå Çç Èè Éé Êê Ëë Ìì Íí Îî Ïï Ññ Òò Óó Ôô Õõ Öö Ùù Úú Ûû Üü Ýý ÿ

café façade naïve señor Zürich Málaga Ångström Größe Øresund Æsop œuvre þorn

Western European extras (Windows-1252)

French: Œuvre, cœur, sœur, bœuf, œil, Œdipe. ŒUVRE COMPLÈTE

Finnish & Estonian: šokolaad, žurnaal, Šiauliai, Žalgiris, ŠAMPANJA

Notes: † 1890, ‡ see below, 20‰ of sales, ƒ(x) = 2x + 1

Prices: 5 € · £12 · 99¢ · 2,5 ‰ · Š-Ž-š-ž

Central European (Latin Extended-A)

Polish: Zażółć gęślą jaźń. Łódź, Kraków, Gdańsk, Wrocław, Poznań

Czech: Příliš žluťoučký kůň úpěl ďábelské ódy. Brno, Plzeň, Ústí

Slovak: Kŕdeľ ďatľov učí koňa žrať kôru. Ľubochňa, Ťahanovce

Hungarian: Árvíztűrő tükörfúrógép. ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP

Croatian & Slovene: Đakovo, Šibenik, Čakovec, Žumberak, Ćuprija, Šoštanj

Turkish: Pijamalı hasta yağız şoföre çabucak güvendi. İstanbul, Iğdır

Baltic, Maltese and more

Latvian: Glāžšķūņa rūķīši dzērumā ciepj Baha koncertflīģeļu vākus

Latvian: Ģirts, Ķegums, Ļaudona, Ņukši, Rīga, Jūrmala, Ēvele, Ūsiņš

Lithuanian: Įlinkdama fechtuotojo špaga sublykčiojusi pragręžė apvalų arbūzą

Maltese: Ħamrun, Għawdex, Żebbuġ, Ċirkewwa, ħobż

Esperanto: Eĥoŝanĝo ĉiuĵaŭde. Ĉu ĝi ŝanĝiĝis?

Welsh & Dutch: Ŵyl, ŷd, ŴŶ · IJsselmeer, ijs, IJ

Sami & historic: Ŋ ŋ ĸ · Congreſs · ʼn Boer · coŀlecció, COĿLECCIÓ

Romanian (comma below)

Romanian: Înjurând pițigăiat, zoofobul comandă vexat whisky și tequila.

București, Timișoara, Constanța, Brăila, Iași, Târgu Mureș, Țara Românească

ȘȚ șț ȘTIINȚĂ · Ţa Ța Ță Ţă · ŢȚ ţț ŞȘ şș (cedilla vs comma)

Accents stacked on capitals

ŐŰ ĂĞŠŽČĚŘ İŞĖĮŲŪ ĀĒĪŌ ĆĹŃŔŚŹ ĈĜĤĴŜŴŶ ĊĠŻ ŮŨĨ ĎĽŤ ĢĶĻŅŖ

ő ű ă ğ š ž č ě ř ş ė į ų ū ā ē ī ō ć ĺ ń ŕ ś ź ĉ ĝ ĥ ĵ ŝ ŵ ŷ ċ ġ ż ů ũ ĩ ď ľ ť ģ ķ ļ ņ ŗ

Pangrams

The quick brown fox jumps over the lazy dog.

SPHINX OF BLACK QUARTZ, JUDGE MY VOW!

Pack my box with five dozen liquor jugs (12 of them, $3.50 each).

What's missing

No stand-ins left: every glyph is drawn. The accented letters, open questions and next character sets are below.

Accented letters 163

Built automatically from your letters plus accent marks, so they follow every redraw. Draw an accented letter yourself only if the automatic one looks wrong.

Open questions

  1. Write the commercial EULA (desktop, web and app licences) before the font goes on sale.

Not covered yet

Latin-1, Windows-1252, Latin Extended-A and Romanian Ș ș Ț ț are all covered. Next could be another script such as Cyrillic or Greek.

All glyphs

352 glyphs. Hover over one to see its name and code point.

drawnaccented (auto)

Kerning

Each pair is shown without kerning (grey), then with it.

Rules 164

Each rule covers a whole class (hover over a class name to see its letters), and accented letters use the same kerning as their base letter. Single pairs listed lower in src/kerning.txt override the classes above them.

natnnatn@lc_right_xh t-1n t, o t: t's crossbar is the only ink on its left
nrannranr @lc_round_l-1r a: the arm leaves an open bowl under it
nrvnnrvnr @lc_diag-1r y
nfannfan@fs @lc_round_l-1f s, f a
najnnajn@lc_nodesc @js-1i j: j's hook tucks under the left neighbour
nr.nnr.nr @dots-2
nf.nnf.n@fs @dots-1
HTaHHTaHT @lc-1T + any letter; the tighter T rules below win
HTAHHTAHT @uc-1
HaTHHaTH@lc T-1any letter + T
HATHHATH@uc T-1
HTaHHTaHT @lc_xh-2T's arms overhang its stem by 3px
HT.HHT.HT @dots-2
HVaHHVaH@VWY @lc_xh-1
HV.HHV.H@VWY @dots-2
HVAHHVAH@VWY A-1
HAVHHAVHA @VWY-1
HLTHHLTHL T-2
HLVHHLVHL @VWY-1
HL'HHL'HL @quotes-2
HLCHHLCHL C-1L's foot leaves round and slanted letters 3px off
HLGHHLGHL G-1
HLOHHLOHL O-1
HLQHHLQHL Q-1
HLgHHLgHL g-1
HLjHHLjHL j-1
HLvHHLvHL v-1
HLyHHLyHL y-1
HLzHHLzHL z-1
HFlHHFlHF l-1Fl: F's open right side
HP.HHP.HP @dots-2
HF.HHF.HF @dots-2
HFAHHFAHF A-1
HFjHHFjHF @js-2Fj: the j's hook tucks under F's open right side
nv.nnv.nv @dots-1
H'AHH'AH@quotes A-1
HA'HHA'HA @quotes-1
HICHHICHI @I_r-1
HBIHHBIH@I_l I-1
HlCHHlCHl @I_r-1l's foot sits out like I's serif, so the same letters come in
ncfnncfn@f_l @fs-1rf sf tf
nfmnnfmn@fs @f_r-1fn fr fu fy
HFtHHFtH@t_l t-1Lt Vt Yt. Round and flat capitals (St Ct Bt Et Rt, Sf Cf Of)
ntfnntfnt @t_r-1tf tv
nbxnnbxn@x_l x-1ex ox
ntanntant @lc-1ta te to: t's foot curls out 2px past its stem
HtAHHtAHt @uc-1
nbfnnbfn@lc_round_r @fs-1of ef: round bowls before f's stem
nxannxanx @x_r-1xa xe xo
nyannyany @lc-1ya yb yc ...: y's open right side (was "y p -1" for Type)
HyAHHyAHy @uc-1yA yB ...
ny.nny.ny @punct-1y. y, y) y" ...
njannjan@js @lc-1ja jb jc ...: same as y
HjAHHjAH@js @uc-1
nj.nnj.n@js @punct-1
njjnnjjn@js @js-2jj
nlfnnlfnl @fs-1lf
nffnnffn@fs @fs-1ff
nfinnfin@fs i-1fi
nftnnftn@fs t-1ft
nfjnnfjn@fs @js-2fj
nttnnttnt t-1tt
ngjnngjn@gs @js-1gj
nlynnlynl y-1ly
ntynntynt y-1ty
nlonnlonl o-1lo
nlennlenl e-1le
nltnnltnl t-1lt
HAWHHAWHA W+0YAWL (undoes A @VWY)
HYOHHYOHY O-1LAYOUT
HWoHHWoHW o+0Wolf (undoes @VWY @lc_xh)
HWœHHWœHW oe+0like W o
HWøHHWøHW oslash+0
HPaHHPaHP @lc-1Pa Pe Po ... (was "P a -1" for Panama)
HPAHHPAHP @uc-1PA PO PH ...
nďannďan@dl @lc-2ď ľ: the caron leaves room on the right; letters that rise to it
nď.nnď.n@dl @punct-2(capitals, ascenders, tall accents, quotes) are eased to -1
HďAHHďAH@dl @uc-1
HÆaHHÆaHAE @lc-1Æ and æ: -1 to the right
HÆAHHÆAHAE @uc-1
HÆ.HHÆ.HAE @punct-1
næannæanae @lc-1
HæAHHæAHae @uc-1
næ.nnæ.nae @punct-1
HW.HHW.HW period-1W's foot meets the dot at -2
HW,HHW,HW comma-1
HW…HHW…HW ellipsis-1
HTãHHTãHT atilde-1accents meet T's arms
HTñHHTñHT ntilde-1
HTõHHTõHT otilde-1
HTăHHTăHT abreve-1
HTĕHHTĕHT ebreve-1
HTğHHTğHT gbreve-1
HTŏHHTŏHT obreve-1
HTőHHTőHT ohungarumlaut-1
HTřHHTřHT rcaron-1
HTŭHHTŭHT ubreve-1
HTűHHTűHT uhungarumlaut-1
HTũHHTũHT utilde-1
HŤăHHŤăHTcaron abreve-1
HŤĕHHŤĕHTcaron ebreve-1
HŤğHHŤğHTcaron gbreve-1
HŤŏHHŤŏHTcaron obreve-1
HŤőHHŤőHTcaron ohungarumlaut-1
HŤřHHŤřHTcaron rcaron-1
HŤŭHHŤŭHTcaron ubreve-1
HŤűHHŤűHTcaron uhungarumlaut-1
HŤũHHŤũHTcaron utilde-1
HŢăHHŢăHuni0162 abreve-1
HŢĕHHŢĕHuni0162 ebreve-1
HŢğHHŢğHuni0162 gbreve-1
HŢŏHHŢŏHuni0162 obreve-1
HŢőHHŢőHuni0162 ohungarumlaut-1
HŢřHHŢřHuni0162 rcaron-1
HŢŭHHŢŭHuni0162 ubreve-1
HŢűHHŢűHuni0162 uhungarumlaut-1
HŢũHHŢũHuni0162 utilde-1
HȚăHHȚăHuni021A abreve-1
HȚĕHHȚĕHuni021A ebreve-1
HȚğHHȚğHuni021A gbreve-1
HȚŏHHȚŏHuni021A obreve-1
HȚőHHȚőHuni021A ohungarumlaut-1
HȚřHHȚřHuni021A rcaron-1
HȚŭHHȚŭHuni021A ubreve-1
HȚűHHȚűHuni021A uhungarumlaut-1
HȚũHHȚũHuni021A utilde-1
HFĵHHFĵHF jcircumflex-1
HĽTHHĽTHLcaron T-1
HĽŦHHĽŦHLcaron Tbar-1
HĽŤHHĽŤHLcaron Tcaron-1
HĽʼnHHĽʼnHLcaron napostrophe-1
HĽ"HHĽ"HLcaron quotedbl-1
HĽ”HHĽ”HLcaron quotedblright-1
HĽ’HHĽ’HLcaron quoteright-1
HĽ'HHĽ'HLcaron quotesingle-1
HĽŢHHĽŢHLcaron uni0162-1
HĽȚHHĽȚHLcaron uni021A-1
nfĵnnfĵnf jcircumflex-1
nƒĵnnƒĵnflorin jcircumflex-1
nſĵnnſĵnlongs jcircumflex-1
HaTHHaTH@lc_xh T-2oT aT eT: matches To Ta, T's arms overhang its stem by 3px
HaYHHaYH@lc_xh Y-1aY oY: matches Ya Yo
HdYHHdYHd Y+0d's ascender and g's ear would sit 1px from Y's arms
HgYHHgYHg Y+0
HL‘HHL‘HL quoteleft-2L“ L‘ like L” L'
HL“HHL“HL quotedblleft-2
HFaHHFaHF @lc_xh-1Fa Fo Fn: F's open right side, like P @lc
HFCHHFCHF @EF_r-1FO EO: the top arm leaves round capitals 3px off
HECHHECHE @EF_r-1
HBjHHBjH@j_l @js-1Oj Bj bj: j's hook tucks under, like @lc_nodesc @js
HYjHHYjHY j-2Yj sat 4px off
HTJHHTJHT J-2TJ FJ YJ: J's top bar leaves its left side open
HFJHHFJHF J-2
HYJHHYJHY J-2
HPJHHPJHP J-2
HfJHHfJHf J-2
HVJHHVJHV J-1
HrJHHrJHr J-2rJ sat 5px off
HrXHHrXHr X-1rX rY rZ: r's arm
HrYHHrYHr Y-1
HrZHHrZHr Z-1
HKvHHKvHK v-1Kv Xv vX: diagonals
HXvHHXvHX v-1
HvXHHvXHv X-1

How it's made

Figma (mek-system / dosage-humanist)
  └─ tools/figma_extract.js ─▶ figma/extract.json
       └─ tools/import_figma.py ─▶ src/drawn.txt + figma/sample_text.json
            └─ tools/build.py ─▶ fonts/Dosage-Humanist.otf · .ttf · .woff2 + this page

Glyphs are stored as plain-text pixel grids, so every change shows up in a diff. The grid is 1 pixel = 100 units on a 1200-unit em: caps 9px, x-height 6px, descenders 3px, 1px sidebearings and a 4px space.