Features

Nine built-in checks, then your own rules

Scan the current page, the whole document, or a selection. StyleGuard walks layers in chunks so Figma stays responsive, then groups issues by rule so you can fix the ones that matter.

Consistency

Consistency rules

Missing style binding

Flags fills, strokes, text, and effects that are not linked to a shared style or variable. If a matching local style exists, StyleGuard names it. One-click fix binds that style.

Stray (sub-pixel) values

Non-integer x, y, width, or height. Default tolerance is 0. Rotated nodes and auto-layout-managed positions are skipped. One-click fix snaps to whole pixels.

Mismatched corner radius

Radii that are not in the file’s dominant scale, or in an allow-list you configure. Reports the nearest allowed value.

Hidden layer

Hidden layers left outside an archive group. Only the root of a hidden subtree is reported, so you are not flooded with nested leftovers.

Naming

Naming rules

Default layer name

Figma defaults such as “Rectangle 12”, “Frame 4”, “Vector”, and boolean operations. Suggested rename comes from text content or node type.

Accessibility

Accessibility rules

Color contrast (WCAG)

Composites ancestor solid fills over white, accounts for text opacity, and uses large/bold thresholds. AA is 4.5:1 (3:1 large); AAA is 7:1 (4.5:1 large). Severity is error by default.

Missing alt text

Image fills with no description. Add a description inline; it is stored in file-level plugin data so it travels with the file.

Touch target size

Layers whose names match interactive patterns (button, CTA, link, tab, toggle, checkbox, radio, chip) and are smaller than 44×44, which you can change.

Readable font size

Text below 12px, including mixed styled segments. The minimum is configurable in Settings.

Custom rules

Team standards without JSON-first editing

Naming convention

Regex must match the layer name, scoped by node types or a name pattern. Default starts at ^[a-z]. Reports expected vs actual.

Brand color

Restrict a hex color to allowed layers, or require it on those layers. Catch both misuse and missing-where-required.

Property constraint

Compare cornerRadius, opacity, width, height, or fontSize with eq, neq, lt, lte, gt, gte, in, and notIn. Default: corner radius ≤ 16.

Rules persist at file level, so everyone scanning the file uses the same set. Import and export as styleguard-rules.json.

Fixes and AI

One-click and batch fixes

  • Bind a matching local style
  • Snap stray pixels to whole numbers
  • Rename default layers to a suggested convention
  • Save alt text inline on the image fill

Batch “Fix all” asks for confirmation and is one Cmd/Ctrl+Z.

AI, only when you ask

  • Suggest 3–5 custom rules from a page summary
  • Review visible copy for CTA tense, capitalization, and tone
  • Advisory only — findings are never auto-applied
  • No OpenAI account. Fair-use: 200 AI requests per license per day

Plugin screenshot — drop a capture of the Report or Rules tab intopublic/screenshots/ and replace this placeholder.

Ready to check your file?

Try StyleGuard directly in Figma.

Get the Figma plugin