← Back

The not worth doing pile

The spacing between the T and A in "DIGITAL" was bugging me. One of those things you can't unsee once you notice it. The heading font on this site, Clash Display, ships without a kern table, which is the data that tells a browser how to adjust gaps between specific letter pairs. No kern data means every letter is spaced generically, and at large sizes certain pairs look visibly wrong.

Clash Display before kerning fix, showing visible gaps between letter pairs like T-A in DIGITAL

I mentioned this to Claude. Not as a task, more as a complaint. The gap between T and A looks bad, the font doesn't have kerning data, CSS can't fix it because font-kerning: normal only works if there's actual kern data in the file, and tightening letter-spacing globally just makes everything worse in different ways.

It came back with a Python script using fonttools that opened each font file, injected a GPOS kern table with 49 hand-tuned pair adjustments, and saved them back out. TA, AT, LY, VA, AV, WA, FA, PA and all their lowercase equivalents, each with a specific negative value to pull the second letter closer by the right amount across all four font weights.

It worked first try. I ran the script, refreshed the page, and the headings looked right.

Clash Display after kerning fix, with letter pairs now properly spaced

I want to be clear about something: I would never have done this. The path from "this kerning annoys me" to "learn the OpenType GPOS specification, figure out fonttools, hand-tune 49 kern pairs across four font files" would have taken hours of research and trial and error. That's hours I would never have spent on something this minor. The annoyance wasn't worth the effort, so it would have stayed broken forever.

Instead it took one prompt and thirty seconds. That's the thing that still gets me. A task that would have been a full afternoon of Stack Overflow tabs and font specification documents, assuming I even attempted it, just evaporated. I didn't even ask it to do this. I described a problem and it identified the fix, wrote the tooling, and executed it. The "not worth doing" pile is getting smaller and smaller.