Specimen Nº 07 Ferro Flex 2.1 — Variable grotesk 13 axes · opsz 8–144 Drawn in Antwerpen · 09.2026

Ferro Flex, a variable grotesk by Ferro Type

A variable grotesk with thirteen axes and one house rule: nothing fake. Drawn weights, a real slant, and ink traps you can spot from the back of the room.

Move across the word — distance sets weight, position sets width.

13Axes, 5 registered
186Named styles
1,146Glyphs
312Languages

(01) Foreword

Two people, one attic above a bike shop in Antwerp, and a nine-year argument about the shoulder of the lowercase n. We draw every master by hand, test at nine point on the cheapest newsprint we can find, and would rather close the studio than ship a fake italic.

Ines Vermeersch & Jonas Baert, founders

This paragraph lights up on the GRAD axis — so the lines never reflow.

§ 02 TesterFerro Flex — Specimen Nº 07p. 02

Type something you’d never dare set in Arial.

Every slider is a real axis in the font file. No synthetic bold, no browser shear, no guessing. Pick a preset, break it, then copy the CSS.

Presets
150 px
12opsz follows size240
wght 950
1005501000
wdth 125
25100151
slnt 0°
0°real, not sheared10°
GRAD 0
−50same width, more ink150

Tip: GRAD adds weight without changing width. Use it for dark mode or backlit signage and your line breaks stay exactly where you left them.

Ferro Flex · 150 px · opsz 144Click the text to edit
Ink traps stop letters drowning in their own ink.
§ 03 TypefacesFour families, one filep. 03

Typefaces(04)

Four families cut from the same variable file. Each ships as one variable font plus static instances for the software that still thinks it’s 2009.

12 ptHandgloves, kerning tables and quietly excellent ink traps
16 ptHandgloves, kerning tables and quietly excellent ink traps
24 ptHandgloves, kerning tables and quietly excellent ink traps
36 ptHandgloves, kerning tables and quietly excellent ink traps
56 ptHandgloves, kerning tables and quietly excellent ink traps
88 ptHandgloves, kerning tables and quietly excellent ink traps
RrThin 100RrLight 300RrReg 400RrBold 700RrXBlk 1000

Ships as one variable TTF/WOFF2 with all thirteen axes, plus 186 named static instances.

12 ptEVERY CENTIMETRE OF THE COLUMN IS ALREADY SOLD
16 ptEVERY CENTIMETRE OF THE COLUMN IS ALREADY SOLD
24 ptEVERY CENTIMETRE OF THE COLUMN IS ALREADY SOLD
36 ptEVERY CENTIMETRE OF THE COLUMN IS ALREADY SOLD
56 ptEVERY CENTIMETRE OF THE COLUMN IS ALREADY SOLD
88 ptEVERY CENTIMETRE OF THE COLUMN IS ALREADY SOLD
RrThin 100RrLight 300RrReg 400RrBold 700RrXBlk 1000

Width locked between 25 and 50. Twelve weights, each with a real slanted companion.

12 ptWide load, handle with care
16 ptWide load, handle with care
24 ptWide load, handle with care
36 ptWide load, handle with care
56 ptWide load, handle with care
88 ptWide load, handle with care
RrThin 100RrLight 300RrReg 400RrBold 700RrXBlk 1000

Width locked between 125 and 151. Drawn for wayfinding: open apertures, generous spacing, readable at forty metres.

12 ptSet at nine point on the cheapest newsprint in Belgium, it still reads like a letter from a friend.
16 ptSet at nine point on the cheapest newsprint in Belgium, it still reads like a letter from a friend.
24 ptSet at nine point on the cheapest newsprint in Belgium, it still reads like a letter from a friend.
36 ptSet at nine point on the cheapest newsprint in Belgium, it still reads like a letter from a friend.
56 ptSet at nine point on the cheapest newsprint in Belgium, it still reads like a letter from a friend.
88 ptSet at nine point on the cheapest newsprint in Belgium, it still reads like a letter from a friend.
RrThin 100RrLight 300RrReg 400RrBold 700RrXBlk 1000

Optical size pinned at 8. Looser spacing, sturdier joins and ink traps you can actually see.

§ 04 AxesRegistered & parametricp. 04

Eight of thirteen

Thirteen axes. Eight you’ll actually touch.

Registered axes do what the CSS spec promises. Parametric axes nudge single measurements — stem thickness, counter width, x-height — without redrawing anything. Hover a card to scrub it by hand.

Also in the file: YOPQ thin stroke, YTAS ascender, YTDE descender, YTFI figure height, YTUC cap height. For people who read changelogs for fun.

wght550
Scrub ←→
1001000

Weight

From hairline to “is that a font or a redaction?”

wdth88
Scrub ←→
25151

Width

Condensed enough for a book spine, wide enough for a ferry terminal.

opsz76
Scrub ←→
8144

Optical size

Small sizes get sturdier and looser; big sizes get sharper. Automatic in CSS.

slnt−5°
Scrub ←→
0°−10°

Slant

Curves re-drawn at every degree. Your browser’s 14° shear can stay home.

GRAD50
Scrub ←→
−50150

Grade

More ink, same width. Dark mode’s quiet best friend.

XOPQ96
Scrub ←→
27175

Thick stroke

Parametric: fattens the vertical stems, leaves the horizontals alone.

XTRA468
Scrub ←→
323603

Counter width

Opens the white inside the letter. The stems don’t even notice.

YTLC514
Scrub ←→
416570

Lowercase height

Tall x-height for small screens, short for long novels.

§ 05 GlyphsLatin · Cyrillic · Greek · Vietnamesep. 05

1,146 glyphs. Eighty of them under the loupe.

Hover or tab through the set. Arrow keys work, because we’re not animals. Every one of these was drawn, argued over, and redrawn at least twice.

§ 06 In useSelected jobs, 2025–26p. 06

Out in the world, carrying the weight.

A few jobs from the last year. The clients had real deadlines and real opinions. The type didn’t complain once.

Zaal NegenExhibition poster, A1, screenprint.Ferro Compressed at wght 1000, wdth 25.
Uitgeverij KraaiNovel cover, 135 × 210 mm.Ferro Flex, a weight ramp from 100 to 1000.
Zuidkaai TerminalWayfinding, enamel on steel.Ferro Wide 620, GRAD +40 for the backlit panels.
Nachtdienst Records12″ sleeve, ND 014.One word, six widths, every line the same measure.
§ 07 LicensingPlain-language EULAp. 07

Pay for what you use, not what a lawyer imagined.

One licence per use, priced by company size. No pageview audits, no per-weight nonsense: a family is all of its styles.

01Family All styles included
02Licences Pick one or more
03Company size Headcount, not egos
§ 08 JournalProcess notesp. 08

Notes from the attic.

Short, opinionated, occasionally wrong. We write these when a problem has kept us up for a week and we want company.

14.09.20266 minProcess

In defence of the ink trap, at nine point, on terrible paper

Ink traps are the little notches where strokes meet. On screen they look like a drawing error. On newsprint they’re the difference between an m and a black smudge. We kept them in Ferro Text and made them optional everywhere else.

We printed the same paragraph 214 times on four papers at a press in Mechelen and measured spread under a loupe. At 9 pt on 45 gsm newsprint, an untrapped junction gains roughly 0.08 mm of ink: enough to close the crotch of a v completely.

Above 24 pt nobody needs them, so the opsz axis quietly fills the traps back in as you scale up. Same file, same CSS. You never have to think about it, which is exactly the point.

28.08.20264 minOpinion

Your browser’s fake italic is a crime scene

No italic in the font? Browsers shear the roman by about 14° and walk away. Curves go lopsided and the a looks like it’s falling downstairs.

The fix is one line of CSS: font-synthesis: none. Then use a real slant — ours is drawn at every step between 0° and −10°, with the bowls corrected so they stay round instead of turning into eggs.

02.07.20268 minRelease notes

Thirteen axes, and why we nearly shipped fourteen

Number fourteen was SERF, a serif axis. At 0 it was Ferro. At 100 it was a decent slab. At 47 it was something we don’t talk about.

Interpolating serifs means every serif needs a zero-length state, and zero-length serifs leave tiny spikes at intermediate values. We spent five weeks on it, then put it in a drawer. Next to the handwriting face we drew as a joke in 2019.