Skip to main content
When you open LintKit inside a file that is itself a published Figma library, the plugin detects this automatically and switches to library mode. Library mode adjusts which rules run, adds library-health rules that don’t apply to consumer files, and reframes finding messages to use library-author language. Opening LintKit in a library file and seeing the library mode dashboard

How detection works

LintKit checks whether your file is a published library at startup by calling Figma’s getPublishStatusAsync() on your local styles. This API returns CURRENT or CHANGED only inside the actual library file — in a consumer file that uses the library, it returns UNPUBLISHED. No setup is required. If you have at least one local style with a CURRENT or CHANGED publish status, LintKit activates library mode automatically.
Detection runs once when the plugin opens. If you publish a library for the first time while LintKit is already open, close and reopen the plugin to trigger detection.

Library dashboard

When library mode activates, LintKit navigates to a specialized Library Dashboard instead of the standard overview. The dashboard shows:
  • A Library badge in the header confirming you’re in library mode
  • An asset inventory — counts of your paint styles, text styles, effect styles, grid styles, component sets, and components
  • A Run Audit button to start a library-focused scan
After scanning, the dashboard also displays:
  • Your compliance score and handoff status (same metrics as the standard dashboard)
  • Severity breakdown — clickable error, warning, and info counts to filter findings
  • Scan stats — issues found, rules suppressed, scan time, and nodes scanned
  • A suppressed rules notice showing how many consumer-only rules were skipped

Rules suppressed in library mode

These rules are designed for consumer files and produce misleading results inside a library file. LintKit suppresses them automatically:
RuleWhy it’s suppressed
Orphaned fillsLibrary anatomy canvases intentionally use fills without styles
Orphaned strokesSame — stroke examples are expected in a library file
Orphaned textDocumentation text in a library is not expected to use text styles
Orphaned effectsEffect examples on artboards are not production usage
Orphaned gridsGrid demos on pages are not production usage
Component wrappersGroups wrapping instances are irrelevant in a file that defines components
Unapproved librariesA library file is the library — checking for unapproved usage is circular
The suppressed rules count reflects only the rules you had enabled. If you had already disabled orphaned grids, it won’t be counted in the suppressed total.
Suppressed rules are visible in the navigation with a tooltip: “Only available in consumer files.” They are not hidden — just disabled for this file type.

Library-only rules

These rules only produce findings inside a library file. In consumer files they silently return zero results.

Unused styles

Scans the current page for local paint, text, effect, and grid styles that have zero usages. Helps library authors identify styles that can be deprecated or removed.
  • Severity: info
  • Fix: Delete the unused style (with confirmation)

Missing descriptions

Checks all local styles, components, and component sets for empty or missing descriptions. Descriptions appear in Figma’s component/style picker and help consumers understand what each asset is for.
  • Severity: info
  • Fix: Auto-generates a description based on the asset’s name and type

Variable completeness

Audits all local variable collections for three issues:
CheckSeverityExample
Missing mode valueswarningVariable color/brand has no value for the Dark mode
Broken alias referenceserrorVariable color/primary points to a deleted variable
Missing descriptionsinfoVariable color/primary has no description
This rule is especially valuable for multi-mode libraries (light/dark, brand themes) where incomplete variable coverage causes silent fallbacks for consumers.

Hidden components

Finds components and component sets whose names start with . or _. These prefixes hide the component from Figma’s publishing and sharing. This is an inventory rule — it reports hidden components so you can confirm they are intentionally hidden.
  • Severity: info
  • No auto-fix — this is informational only

Reframed finding messages

Rules that run in both modes reframe their messages to use library-author language. For example:
RuleStandard messageLibrary mode message
Duplicate styles”2 paint styles have identical values""Consumers will see redundant options: 2 paint styles have identical values”
Fractional pixels”Width is 100.5px""Library component has sub-pixel values: Width is 100.5px”
Contrast”Contrast ratio 2.8:1 below 4.5:1""Library component has contrast issue: Contrast ratio 2.8:1 below 4.5:1”
This reframing helps library authors think about the downstream impact on consumers.

Sources panel

The Sources panel (in Settings) manages the external data sources LintKit uses for color matching and style comparisons. While not exclusive to library mode, it is closely related to library governance.

Figma libraries

Shows libraries discovered from your file. Each library row displays its name, color count, and an enabled/disabled toggle. You can:
  • Toggle a library on or off for color matching
  • Remove a library you don’t want to lint against
  • Add manually by pasting any Figma file URL (/file/, /design/, or /library/ URLs)
Enabled libraries are polled for updates every 10 minutes while the plugin is open.

Tokens Studio

Connect your Tokens Studio project to auto-configure spacing, radii, and color rules from your token definitions. Two connection methods:
  • Connect via API — paste your project URL and API key
  • Detect from file — checks Figma’s shared plugin data for an existing Tokens Studio connection
Once connected, the panel shows your project name, branch, token counts by type, and last sync time. See Tokens Studio integration for full setup.

GitHub

Connect a GitHub repository containing token files (JSON format). Paste the raw file URL and an optional personal access token for private repos. See GitHub integration for full setup.
When offline, cached and locally registered libraries remain available. An offline banner appears in the Sources panel — reconnect and refresh to discover new libraries.