Skip to main content
LintKit ships with 24 rules across six categories. Every rule can be toggled on or off in Settings, and each finding carries a severity level that tells you how urgently it needs attention.
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.
SeverityWhat it meansWhen you see it
errorSomething is broken or violates a hard constraint. Fix before handoff.Broken instances, broken variable references, unapproved library usage
warnA likely problem that should be reviewed. Most teams fix these before shipping.Orphaned styles, contrast failures, off-scale spacing
infoAn observation or suggestion. Safe to defer, but worth reviewing periodically.Auto-layout suggestions, hidden layers, fractional pixels
Start by resolving all error findings first — they represent broken connections and hard violations. Then work through warn findings, which are the most common category. Treat info findings as cleanup opportunities.

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.
ConfidenceLabelWhat it means in practiceExample
HighAuto-fixableLintKit 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
MediumReview suggested fixLintKit 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
LowManual fix requiredLintKit 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

Full rule table

RuleCategoryDefaultSeverityDescription
Orphaned FillsStylesOnwarnSolid fills not linked to a paint style or variable
Orphaned TextStylesOnwarnText nodes without a text style
Orphaned StrokesStylesOnwarnStrokes not linked to a paint style or variable
Orphaned EffectsStylesOnwarnEffects (shadow, blur) not using an effect style
Orphaned GridsStylesOninfoLayout grids without a grid style
Duplicate StylesStylesOffwarnNear-identical styles detected via Delta E 2000 color science
Unused StylesStylesOninfoLocal styles with zero usage on the current page library-only
Spacing ScaleLayoutOffwarnSpacing values outside your configured scale
Corner RadiiLayoutOffwarnRadius values outside your allowed set
Stroke WeightLayoutOninfoStroke widths outside your allowed set
Fractional PixelsLayoutOninfoNon-integer x, y, width, or height values
Auto Layout SuggestionLayoutOninfoFrames that could benefit from auto layout
Grid AlignmentLayoutOffinfoNodes misaligned to column or row grids
Absolute PositioningLayoutOnwarnAbsolute-positioned layers inside auto-layout parents
CleanupCleanupOninfoHidden layers, empty frames/groups, single-child groups
Layer NamingCleanupOninfoDefault names (Frame 1, Rectangle 47), forbidden patterns
Unapproved LibrariesComponentsOnerrorInstances from non-approved libraries
ComponentsComponentsOnwarnWrapper groups, local components, broken instances, local instances
Nested ComponentsComponentsOninfoExcessive component nesting (depth > 4 warn, > 6 error)
Hidden ComponentsComponentsOninfoComponents hidden from publishing by dot or underscore prefix library-only
Missing DescriptionsComponentsOffinfoStyles and components without descriptions library-only
ContrastAccessibilityOnwarnText/background contrast below WCAG AA or AAA
Broken VariablesAccessibilityAlways onerrorVariable bindings pointing to deleted or renamed variables
Variable CompletenessAccessibilityOnwarnMissing 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.
Start with rules that catch handoff problems:
  1. Orphaned fills, text, strokes — the most common findings. These catch layers disconnected from your design system.
  2. Contrast — catches accessibility violations before code review.
  3. Cleanup — removes hidden layers and empty containers that confuse developers.
  4. Fractional pixels — prevents blurry rendering in production.
  5. Layer naming — stops “Frame 47” and “Rectangle copy 3” from reaching dev handoff.
Once comfortable, enable Spacing scale and Corner radii after configuring your design system values in Settings.
Start with library health rules:
  1. Unused styles — find styles no one is using so you can deprecate them.
  2. Duplicate styles — consolidate near-identical styles cluttering your library.
  3. Variable completeness — catch missing mode values and broken aliases before consumers hit them.
  4. Hidden components — check which components are hidden from publishing.
  5. Missing descriptions — ensure every style and component is documented for consumers.
  6. Nested components — identify performance bottlenecks from deep nesting.
Then enable Unapproved libraries with your approvedLibraryKeys to enforce library governance across your org.
Start with rules that are enabled by default and require no configuration:
  1. Cleanup — instant wins. Remove hidden layers, empty groups, and single-child wrappers.
  2. Orphaned fills and text — connect everything to styles.
  3. Fractional pixels — snap everything to the pixel grid.
  4. Auto layout suggestions — find frames that should use auto layout.
  5. Layer naming — rename “Frame 1” before anyone sees your file.
These rules work out of the box with zero configuration.

Findings and fixes

Every finding includes:
  • A severity levelinfo, warn, or error
  • Affected nodes — click to select them on the canvas
  • A suggested fix — apply it with one click, or bulk-fix all instances (Pro)
Some findings offer multiple fix options. For example, an orphaned fill might suggest linking to an existing style, binding to a variable, or creating a new style.