Design Auditor - Linterly
Linting for design files: catch the drift, then fix it with your own system.
The problem
Every design file drifts eventually. A hex value gets pasted instead of picked from the palette. A text layer gets detached from its style "just for this one screen". A button ends up a few pixels too short because it looked fine at 2x zoom. None of these is a big deal on its own, but together they turn a tidy system into something nobody fully trusts.
Linting is a normal habit in code. I wanted the same habit inside Figma: something that reads the file, points at what slipped, and offers to fix it without a lecture.
What it does
- Scans a selection or a whole page for hardcoded hex values and detached text styles.
- Links each one to the closest local Style or Variable, so fixes stay inside your system instead of adding new values.
- Flags low-contrast text and font sizes under 12px, following WCAG guidance.
- Catches touch targets under 44px and corner radii that sit off a 4/8px grid.
- Rolls everything into a design health score from 0 to 100%.
- Offers Fix Now for a single issue and Fix All when you trust the suggestions.
How it works
- Choose what to audit: a selection or the whole page.
- Run Linterly and start the scan.
- Review the flagged layers and your health score.
- Check the suggested Style or Variable for each color or text issue.
- Apply fixes one at a time with Fix Now, or clear the list with Fix All.
- Scan again and watch the score move.
Scanning the selection
Issues with suggested fixes, ready for Fix Now or Fix All
A clean result after fixingBuilding it
The core decision was to suggest, not invent. When Linterly finds a stray hex, it looks for the nearest match among the file's own local Styles and Variables. If your system already defines a primary blue, the fix should point there, not to a new swatch the plugin made up.
I kept the checks to things that are measurable: contrast, pixel sizes, a 4/8px radius grid. Those are rules a designer and a developer can agree on in one sentence, which is exactly the kind of feedback that survives a handoff.
The score exists because a long list of issues can feel like a scolding. One number gives a quick read on the file and something to nudge upward over time.
Fix Now and Fix All came from the same thinking. Some fixes need a human eye, others are obvious. You decide how much to trust the tool on any given day.
Release history so far:
- v1 (26 Jan 2026): first release, followed the same day by v2 with updated allowed domains.
- v3 (25 Jun 2026): a faster, deeper layer scan and a fix for the auto suggestion.
Linterly is still small and new, and I treat it the way I treat any linter: a quiet helper that keeps the system honest so the interesting work gets more of my attention. If your files drift like mine do, give it a run. Open in Figma Community