
Overview
When you connect Tokens Studio, LintKit reads your token definitions and auto-configures lint rules to match them. Instead of manually entering allowed spacing values, radii, and colors in Settings, LintKit pulls them directly from your tokens and keeps rules in sync with your design system source of truth. This means:- Your spacing scale stays in sync with your tokens — no manual
allowedSpacinglist to maintain - Your corner radii rules automatically reflect your token definitions
- Orphaned color matching uses your token palette as the reference
Why use Tokens Studio with LintKit
Without the integration, you configure LintKit manually — entering allowed spacing values, radii, and color references by hand. This works but creates two sources of truth: your tokens and your LintKit config. When tokens change, your LintKit config drifts. With the integration:- Single source of truth. Token changes automatically update LintKit’s rules. Add a new spacing value to your tokens and LintKit accepts it immediately after a sync.
- Faster onboarding. New team members don’t need to configure LintKit — it reads the team’s tokens and configures itself.
- Token compliance. Strict mode suppresses findings for values that match tokens, so your results only show values that are truly off-system.
- Drift detection. Advisory mode shows you which orphaned values happen to match tokens, helping you identify what should be linked to a style or variable.
Token sources
LintKit supports three ways to read token data. Choose the one that matches where your tokens live.Figma shared plugin data
Open LintKit settings
Enable Tokens Studio
Select Figma shared plugin data
Click Sync
Tokens Studio API
When to use: Your team manages tokens on the Tokens Studio cloud platform and you want LintKit to fetch them remotely, regardless of which Figma file you have open. How it works: LintKit calls the Tokens Studio GraphQL API using a Bearer token you provide. This fetches your full token set from the cloud, independent of the current Figma file.Open LintKit settings
Enable Tokens Studio
Select Tokens Studio API
Enter your API key
Bearer token in the authorization header.To generate an API key, go to your Tokens Studio workspace settings on the Tokens Studio platform.Click Sync
GitHub
When to use: Your tokens live in a GitHub repository rather than the Tokens Studio platform. This is common when your engineering team maintains token files in source control. See the GitHub integration page for full setup instructions, including supported token formats, authentication, and repository configuration.Open LintKit settings
Enable Tokens Studio
Select GitHub
Once connected, the panel shows your project name, token counts, and sync status:


What gets auto-configured
When LintKit syncs tokens, it maps each token type to the corresponding rule configuration:allowedSpacing set to [0, 4, 8, 16] and your tokens define spacing values of [0, 4, 8, 12, 16, 24, 32], the token values take precedence when the integration is enabled.Enforcement modes
Enforcement mode controls how LintKit treats values that match your tokens during a scan. Set this in Settings > Integrations after enabling the Tokens Studio integration.Advisory mode
Token values are merged with your manual configuration. Findings still appear, but they include metadata showing which token the value matches. Example: A layer uses an orphaned fill with the hex value#3B82F6. In advisory mode, LintKit still reports it as a finding (because the fill is not linked to a style), but the inspector notes that the value matches your primary/blue token. This helps you decide whether to link it to the corresponding style or leave it as-is.
When to use advisory mode:
- You are starting with the integration and want to see the full picture before suppressing anything
- Your team is migrating to tokens and you want visibility into which values already match
- You want findings to appear but with added token context for better decision-making
Strict mode
If a design value matches a token definition, the finding is suppressed entirely. LintKit treats token-matched values as valid. Example: A layer uses an orphaned fill with the hex value#3B82F6 that matches your primary/blue token. In strict mode, this finding does not appear in the results at all — LintKit considers the value valid because it matches a known token.
When to use strict mode:
- Your team trusts the token system and only wants to see values that fall outside it
- You have already reviewed your token coverage and are confident in the definitions
- You want a cleaner results list focused only on values that are genuinely off-system
Token type toggles
You can independently control which token types LintKit enforces:Cache and syncing
Cache behavior
Token values are cached for 30 seconds after fetching. During this window, re-opening the plugin or switching pages uses the cached values without making a new request. Click Sync in the Integrations panel to force a refresh at any time, regardless of cache state.Auto-sync
WhentokensStudio.autoSync is enabled (the default), LintKit re-fetches tokens automatically each time the plugin opens. This keeps your rules in sync without manual intervention.
Turn auto-sync off if:
- You prefer to control exactly when tokens are refreshed
- You are on a slow network and want to avoid the fetch on every plugin open
- You are debugging token configuration and want a stable baseline
Best practices
Start with advisory, graduate to strict
When you first connect Tokens Studio, use advisory mode. This lets you see the full picture — which orphaned values match tokens and which don’t. After reviewing the results across several files and confirming your tokens are comprehensive, switch to strict mode for a cleaner results list.Keep your token types aligned
If your tokens only cover colors and spacing but not radii, turn offtokensStudio.enforceRadii and keep your manual allowedRadii configuration. Enabling a token type toggle when you have no tokens of that type effectively clears the allowed list, which can cause unexpected behavior.
Sync after token updates
When your team updates tokens (new colors, changed spacing values), click Sync in LintKit to pick up the changes. If you havetokensStudio.autoSync enabled, this happens automatically the next time you open the plugin — but it won’t happen mid-session unless you click Sync.
Use LintKit as a validation layer after token syncs
After syncing new tokens in Tokens Studio (or pushing token changes via GitHub), open LintKit and scan your file. LintKit acts as a validation layer — it shows you which parts of your design are now out of compliance with the updated tokens. This is especially useful after:- Adding new spacing values and removing deprecated ones
- Changing color token values
- Reorganizing your token hierarchy
Token organization for best results
LintKit maps tokens by type, so your token structure matters:- Color tokens should use
$type: "color"(DTCG) or be organized under a recognizable color category - Spacing tokens should use
$type: "dimension"and be organized under spacing-related categories - Border radius tokens should use
$type: "dimension"and be organized under radius-related categories
Collaborative token workflows
A common challenge with Tokens Studio is managing tokens when multiple designers work on the same design system simultaneously. When two designers create tokens at the same time and sync to the same repository, one person’s changes can overwrite the other’s.The overwrite problem
This happens because Tokens Studio writes the entire token set as a single file. When Designer A and Designer B both create tokens and push to the same branch:- Designer A creates tokens X and pushes
- Designer B (who pulled before A pushed) creates tokens Y and pushes
- Designer B’s push overwrites Designer A’s tokens X because B’s local copy didn’t include them
How to prevent it
Use branches for concurrent work
Use branches for concurrent work
- Designer A creates a branch
tokens/update-spacingand works there - Designer B creates a branch
tokens/new-colorsand works there - Both push to their own branches without conflict
- Merge branches into
mainone at a time, resolving any conflicts in the JSON
Split tokens into smaller files
Split tokens into smaller files
Establish a pull-before-push workflow
Establish a pull-before-push workflow
- Always pull the latest tokens before starting work
- Make your changes
- Pull again before pushing to catch any changes made while you were working
- Resolve any conflicts before pushing
Designate token ownership areas
Designate token ownership areas
- Designer A owns color tokens
- Designer B owns spacing and layout tokens
- Designer C owns typography tokens
Using LintKit to catch drift after merges
After merging token branches or resolving conflicts, run LintKit on your design files to validate that the merged tokens are correct. LintKit will show you:- Whether any spacing values are now off-scale (if spacing tokens were changed)
- Whether any orphaned fills no longer match token colors (if color tokens were changed)
- Whether broken variable references appeared (if token names were changed)
All configuration options
Troubleshooting
Sync completes but no rules are auto-configured
Sync completes but no rules are auto-configured
$type values (DTCG) or recognizable category names (nested format). If you are using Figma shared plugin data, make sure the Tokens Studio plugin has been run on this file at least once.API key is rejected
API key is rejected
Tokens are stale or outdated
Tokens are stale or outdated
Network errors when syncing
Network errors when syncing
Token values conflict with manual configuration
Token values conflict with manual configuration
tokensStudio.enforceSpacing) to revert to your manual values.Variables disconnected after renaming tokens
Variables disconnected after renaming tokens
Theme switching not reflecting in designs
Theme switching not reflecting in designs
Multiple designers seeing different token versions
Multiple designers seeing different token versions