Figma Plugin

Design with a mentor
over your shoulder

uxspot reads the frame you select and speaks like a good design lead: what is off, why it matters, and the page that says so — with the fix one click away. Never red, never a report to triage, never more than one finding at a time.

Neobank app — try the plugin
This canvas is live — drag the handles
Desktop - 5

Total balance · includes interest

$24,562.00

Send money
RentYesterday -$1,450 SalaryAug 1 +$5,200 GroceriesAug 6 -$86

What one read surfaces

The plugin in numbers

Rules in the catalogue — every one carrying its observation, why it matters, and the uxspot.io page it cites

12

Severity in ink, never in red — a filled dot for worth stopping, a hollow ring for worth knowing

“Tutoring, not erroring: one finding at a time, with the reason and the source — a mentor over your shoulder, not a report to triage.”

Soufiane Chraibi, Founder of uxspot.io

8

Runs fully offline

“The manifest declares no network access, so Figma itself enforces it — your designs never leave the file, and there is nothing to trust but the arithmetic.”

networkAccess, “none” by design

One-click fixes — computed passing colours, 44px hit areas, rounded spacing — each a single undoable step

6

Ambient nudges per session, at most — then the plugin goes quiet and says so. Nag fatigue is the failure mode this number exists to prevent

4

Glossary definitions inlined into the panel at build time — read from the same file that renders the pages, so panel and site cannot drift

12

Network requests the plugin can make. Zero — declared in the manifest and enforced by Figma, not promised in a privacy policy

0

One finding, annotated

Every nudge is four things — an observation, a consequence, a citation, and a fix. Nothing else ships in the panel.

Findings

What it catches, in its own words.

[CONTRAST]

#9A9A9A on white — 2.81:1

Under the 4.5:1 minimum. Someone on a phone outdoors, or anyone with reduced contrast sensitivity, loses the line entirely. One click darkens it to a passing ink.

 Read the page it cites
[TAP TARGETS]

A 132 x 32 button

A fingertip covers roughly 44px. At this size the tap lands beside the control as often as on it — and the person cannot tell whether they missed or the product ignored them.

 Read the page it cites
[SPACING]

Gap 13px, padding 18px

Nobody notices one value being 13 instead of 12 — which is the problem. Invisible individually, it reads as sloppiness collectively. The fix rounds every value to the 4pt scale.

 Read the page it cites
[LINE HEIGHT]

18px lines on 16px text

At 1.13x the lines blur into a block. The eye needs a clear gap to find the start of the next line; without it people re-read the one they just finished.

 Read the page it cites
[HIERARCHY]

Six text sizes on one screen

Each size is a claim about importance. Past four, the claims stop being distinguishable and the reader has to work out the ranking themselves.

 Read the page it cites
[EMPTY STATES]

A results list with nothing in it

The first thing every new user sees, before they have any content. A blank rectangle makes their first impression of the product that something broke.

 Read the page it cites

Twelve rules. 8 of them measure.

The measured ones are never a matter of taste — and they are the only ones that speak up on their own. The judgment calls wait to be asked.

  • ▸ A11Y.CONTRAST.BODY-TEXT Text too close in tone to whatever sits behind it, so it is hard to read. One-click fix.
  • ▸ A11Y.TOUCH-TARGET.SIZE Buttons and links under 44 x 44 — hard to hit on a phone. One-click fix.
  • ▸ A11Y.CONTRAST.NON-TEXT A button or field whose edge is too faint to make out. One-click fix.
  • ▸ A11Y.TEXT-SIZE.BODY-MINIMUM Sentences set below 14px. One-click fix.
  • ▸ UX.TYPE.LINE-HEIGHT-TIGHT Lines packed tighter than 1.4x, so the text reads cramped. One-click fix.
  • ▸ UX.TYPE.MEASURE-TOO-LONG Lines running well past 75 characters, so the eye loses its place.
  • ▸ UX.SPACING.OFF-SCALE Auto-layout gaps and padding that are not multiples of 4. One-click fix.
  • ▸ UX.TYPE.TOO-MANY-FAMILIES More than two typefaces on one screen.
  • ▸ UX.HIERARCHY.TOO-MANY-SIZES More than four text sizes on one screen.
  • ▸ UX.CTA.AMBIGUOUS Two buttons that look equally important, so neither reads as the main one.
  • ▸ UX.EMPTY-STATE.MISSING A list or feed with nothing designed for when it has nothing in it.
  • ▸ UX.AFFORDANCE.UNCLEAR Text that asks to be clicked but is not dressed to look clickable.
▸ You select

A frame, a screen, or nothing at all — the plugin reads whatever you point it at, on a 1.2s pause so it never fires mid-drag.

▸ It measures

Real WCAG contrast maths, tap-target sizes, type and spacing scales — silence over photos and gradients rather than a guessed number.

▸ It cites

Every finding carries the uxspot.io page behind it, with the definition readable in place — no tab-switch required to learn why.

▸ You decide

Apply the fix, dismiss it, put it off with Not now, or mute the rule. Every silence control is visible and recoverable — muted rules report what they are hiding.

In your canvas in a minute

Free, no account. One press on Figma Community — and the source stays public if you like reading it.

  1. Get the plugin

    Open uxspot.io on Figma Community and press Install. That is the whole step — no account, no key, nothing to configure.

    Get plugin
  2. Run it in any file

    Right-click the canvas and choose Plugins → uxspot.io, or find it from the Actions search (Cmd/Ctrl + K). The panel opens beside your work and stays out of the way.

  3. Select a frame and pick a mode

    Hybrid lets the measured rules surface on their own once you pause — four times a session, at most. On ask stays silent until you press “How am I doing?”. The plugin remembers whichever you choose.

Questions, answered

Yes. No account, no key, no trial — press Install on Figma Community and run it on any file you can edit.

No. The manifest declares no network access, so Figma itself blocks every request. All twelve rules run locally on your file; citations open in your browser, and that is the only thing that ever leaves the panel.

It is built not to. In Hybrid mode only the measured rules speak up, at most four times a session, one finding at a time. On ask keeps everything silent until you press the button — and every nudge can be dismissed, put off with Not now, or its rule muted.

Twelve rules — 8 measured against published thresholds (real WCAG contrast maths, tap-target sizes, type and spacing scales) and 4 judgment patterns like button hierarchy and missing empty states. When text sits on a photo or gradient it stays silent rather than guessing.

Only when you press Fix. 6 of the twelve rules carry a one-click fix — computed passing colours, 44px hit areas, rounded spacing — applied as a single undoable step. Cmd+Z, or the Undo on the toast, reverses it.

To uxspot.io — the glossary entry or checklist behind each rule. The definitions shown inside the panel are read from the same file that renders the pages, so the text cannot drift from its source.

Put a mentor in your canvas

Twelve cited rules, six one-click fixes, zero network requests — free.

Get plugin