Matthew Huntsberry

Notes

Audits · 01

Most missing tokens aren't missing

An audit flagged four values as gaps in the token set. All four were already there. The audit had been reading pixels instead of bindings.

Matthew Huntsberry ·

I was rebuilding a demo app for a government software company against its Figma design. The first token audit came back with four gaps: a gold accent color, a 72px display headline, and two line heights, 1.4 and 1.5. None of them had a matching token.

The obvious next step was to add four tokens. Before doing that, I checked a second way. Instead of comparing the rendered values to the token list, I read the design's actual bindings: which variable each layer in Figma was connected to.

4flagged as missing

0real gaps

ValuePixel audit saidBinding check found
#EFE745Gold eyebrow color
Missing token
A brand color tokenBound in Figma. The pixel audit only saw a hex value.
72pxDisplay headline size
Missing token
font-size-6xlThe top step of the existing type scale.
1.4 · 1.5Two line heights
Missing token
Not a gapThe system sets line heights in pixels on purpose. The ratios were the demo's own.

The gold was a brand color token. The pixel audit only saw its hex value. The 72px size was the top step of the type scale that already existed. And the line heights weren't a gap at all: the system sets line heights in pixels on purpose, and the ratios were a choice the demo had made on its own.

Audit the bindings, not the pixels.

Why it matters

A pixel audit can only tell you a value exists. A binding audit tells you whether the designer meant it. Those are different questions, and only the second one tells you whether a token is missing.

If I had added the four tokens, the set would have two names for the same gold and a second headline size that sits next to the first. Do that on every project and a token set doubles in size without getting any better. Worse, the next person, or the next AI tool, now has two right answers to choose from.

What I do now

Every audit starts from the bindings. I pull the variables each layer is connected to, then compare those to the token set. A value with no binding is a real finding. A value with a binding is usually fine, even when the pixels look new.

I also write down the false alarms in the audit report, with what each one turned out to be. It saves the next person from chasing the same gold.