The
brokenVariables rule always runs and cannot be toggled off — broken variable references are too dangerous to ignore.Understanding severity levels
Every finding LintKit reports is assigned one of three severity levels. These levels determine sort order, dashboard impact, and handoff readiness.| Severity | What it means | When you see it |
|---|---|---|
error | Something is broken or violates a hard constraint. Fix before handoff. | Broken instances, broken variable references, unapproved library usage |
warn | A likely problem that should be reviewed. Most teams fix these before shipping. | Orphaned styles, contrast failures, off-scale spacing |
info | An observation or suggestion. Safe to defer, but worth reviewing periodically. | Auto-layout suggestions, hidden layers, fractional pixels |
What “library-only” means
Some rules are marked library-only in the table below. These rules only produce findings when you scan a file that is published as a Figma library. They detect problems that only matter to library maintainers — unused styles, hidden components, missing descriptions, and incomplete variables. If you scan a regular design file, library-only rules silently return zero findings. You do not need to disable them manually.Fix confidence
Every finding includes a confidence level that tells you how safe the suggested fix is. This determines whether LintKit shows a one-click Apply Fix button or provides manual instructions instead.| Confidence | Label | What it means in practice | Example |
|---|---|---|---|
| High | Auto-fixable | LintKit can safely fix this with one click. The change affects a single property and cannot break layout. | Snapping auto-layout padding from 13px to 12px |
| Medium | Review suggested fix | LintKit can apply a fix, but you should review the result. The change might affect layout or sizing. | Snapping a frame width from 157px to 160px — could cause text clipping |
| Low | Manual fix required | LintKit provides instructions but no auto-fix button. Fixing requires moving layers or making judgment calls. | Adjusting manual gaps between layers that are not in auto layout |
Bulk fix (Pro) processes all findings in a category at once. It only applies high-confidence fixes automatically and skips low-confidence findings.
Rule categories
Styles
Orphaned fills, text, strokes, effects, grids. Plus duplicate and unused style detection.
Layout and positioning
Spacing scale, corner radii, stroke weight, fractional pixels, auto-layout suggestions, grid alignment, absolute positioning.
Cleanup and structure
Hidden layers, empty frames, single-child groups, default names, forbidden patterns.
Components and libraries
Unapproved libraries, broken instances, deep nesting, hidden components, missing descriptions.
Accessibility
WCAG contrast checking, broken variable references, variable completeness.
Full rule table
| Rule | Category | Default | Severity | Description |
|---|---|---|---|---|
| Orphaned Fills | Styles | On | warn | Solid fills not linked to a paint style or variable |
| Orphaned Text | Styles | On | warn | Text nodes without a text style |
| Orphaned Strokes | Styles | On | warn | Strokes not linked to a paint style or variable |
| Orphaned Effects | Styles | On | warn | Effects (shadow, blur) not using an effect style |
| Orphaned Grids | Styles | On | info | Layout grids without a grid style |
| Duplicate Styles | Styles | Off | warn | Near-identical styles detected via Delta E 2000 color science |
| Unused Styles | Styles | On | info | Local styles with zero usage on the current page library-only |
| Spacing Scale | Layout | Off | warn | Spacing values outside your configured scale |
| Corner Radii | Layout | Off | warn | Radius values outside your allowed set |
| Stroke Weight | Layout | On | info | Stroke widths outside your allowed set |
| Fractional Pixels | Layout | On | info | Non-integer x, y, width, or height values |
| Auto Layout Suggestion | Layout | On | info | Frames that could benefit from auto layout |
| Grid Alignment | Layout | Off | info | Nodes misaligned to column or row grids |
| Absolute Positioning | Layout | On | warn | Absolute-positioned layers inside auto-layout parents |
| Cleanup | Cleanup | On | info | Hidden layers, empty frames/groups, single-child groups |
| Layer Naming | Cleanup | On | info | Default names (Frame 1, Rectangle 47), forbidden patterns |
| Unapproved Libraries | Components | On | error | Instances from non-approved libraries |
| Components | Components | On | warn | Wrapper groups, local components, broken instances, local instances |
| Nested Components | Components | On | info | Excessive component nesting (depth > 4 warn, > 6 error) |
| Hidden Components | Components | On | info | Components hidden from publishing by dot or underscore prefix library-only |
| Missing Descriptions | Components | Off | info | Styles and components without descriptions library-only |
| Contrast | Accessibility | On | warn | Text/background contrast below WCAG AA or AAA |
| Broken Variables | Accessibility | Always on | error | Variable bindings pointing to deleted or renamed variables |
| Variable Completeness | Accessibility | On | warn | Missing mode values, broken aliases, missing descriptions library-only |
Rules marked library-only only produce findings when you scan a published library file.
Where to start
Different teams have different priorities. Here is a recommended order for enabling rules based on your role.Product design teams (shipping features)
Product design teams (shipping features)
Start with rules that catch handoff problems:
- Orphaned fills, text, strokes — the most common findings. These catch layers disconnected from your design system.
- Contrast — catches accessibility violations before code review.
- Cleanup — removes hidden layers and empty containers that confuse developers.
- Fractional pixels — prevents blurry rendering in production.
- Layer naming — stops “Frame 47” and “Rectangle copy 3” from reaching dev handoff.
Design system teams (maintaining libraries)
Design system teams (maintaining libraries)
Start with library health rules:
- Unused styles — find styles no one is using so you can deprecate them.
- Duplicate styles — consolidate near-identical styles cluttering your library.
- Variable completeness — catch missing mode values and broken aliases before consumers hit them.
- Hidden components — check which components are hidden from publishing.
- Missing descriptions — ensure every style and component is documented for consumers.
- Nested components — identify performance bottlenecks from deep nesting.
approvedLibraryKeys to enforce library governance across your org.Individual designers (personal quality)
Individual designers (personal quality)
Start with rules that are enabled by default and require no configuration:
- Cleanup — instant wins. Remove hidden layers, empty groups, and single-child wrappers.
- Orphaned fills and text — connect everything to styles.
- Fractional pixels — snap everything to the pixel grid.
- Auto layout suggestions — find frames that should use auto layout.
- Layer naming — rename “Frame 1” before anyone sees your file.
Findings and fixes
Every finding includes:- A severity level —
info,warn, orerror - Affected nodes — click to select them on the canvas
- A suggested fix — apply it with one click, or bulk-fix all instances (Pro)