Updating design systems
Keep your design system in sync with its source. When your team updates tokens, colors, or typography, re-import to see exactly what changed before applying.
Overview
Instead of blindly replacing tokens, preset AI shows you a diff of all changes:
- Added: new tokens in the source
- Modified: tokens with changed values
- Removed: tokens no longer in the source
- Unchanged: tokens that match exactly
You choose which changes to apply. Local customizations are preserved.
Updating from source
- Go to Design Systems in the sidebar
- Open the design system you want to update
- Click Update from Source
- Select your source (GitHub, GitLab, or upload)
- Enter the same repository URL or upload an updated zip
- Click Scan for Changes
- Review the diff
- Select changes to apply
- Click Apply Changes
Understanding the diff
Summary view
At the top you'll see a summary of all changes:
+ 3 new tokens
~ 5 modified tokens
- 2 removed tokens
= 18 unchanged tokens
Added tokens
Tokens that exist in the source but not in your design system.
| Action | Result |
|---|---|
| Include (default) | Token will be added |
| Exclude | Token will not be imported |
Modified tokens
Tokens that exist in both but with different values.
| Action | Result |
|---|---|
| Use source | Update to the new value from source |
| Keep current | Keep your existing value |
| Custom | Enter a different value |
Example:
primary
Current: #3b82f6
Source: #2563eb
Removed tokens
Tokens in your design system that no longer exist in the source.
| Action | Result |
|---|---|
| Remove | Delete the token |
| Keep (default) | Preserve the token |
| Deprecate | Mark as deprecated but keep |
preset AI warns you if a removed token is used by any presets: removing it may break those presets.
Unchanged tokens
Tokens with identical values in both. Collapsed by default since no action is needed. Click Show unchanged to expand the full list.
Resolving conflicts
A conflict occurs when a token has been modified both locally (in preset AI) and in the source:
Conflict: primary
Original (at last import): #3b82f6
Your changes: #2563eb (darker)
Source changes: #0ea5e9 (different hue)
Resolution options
| Option | When to use |
|---|---|
| Use source | Source value should override your changes |
| Keep yours | Your local modification should be preserved |
| Use custom value | You want a different value than either |
preset AI tracks the original imported value, so it can detect when both sides have changed.
Partial updates
You don't have to apply all changes at once.
Accept only additions
- Uncheck all modified and removed tokens
- Keep all added tokens checked
- Apply to get new tokens without affecting existing ones
Review modifications individually
- Expand each modified token
- Compare current vs source values
- Decide each one based on which value is correct
Keep all local changes
- Uncheck all changes
- Cancel the update
- Your design system remains unchanged
Best practices
Before updating
- Note your customizations: if you've made local changes, write them down so you can make informed decisions during the diff review
- Check preset usage: if removing tokens, check which presets use them first
During review
- Review modified tokens carefully: value changes can be subtle but important
- Check dark mode values: a token might be unchanged in light mode but different in dark mode
- Read the change type: "value" means the color changed; "both-modes" means light and dark both changed
After updating
- Verify presets: check that your presets still look correct with the new tokens
- Export if needed: re-export your design system to update your codebase
Troubleshooting
"No changes detected"
The source tokens are identical to your current design system.
- Verify you're scanning the correct repository/branch
- Check if the source was actually updated
- Look at the "Unchanged" section to confirm tokens match
"Conflict not detected"
preset AI may not have recorded the original value at import time.
- This typically only affects tokens imported before provenance tracking was added
- Manually compare values and choose the correct one
"Removed token is used by presets"
You're about to remove a token that presets depend on.
- Update the presets to use a different token first
- Keep the token instead of removing it
- Replace the token with an equivalent value
FAQ
Does updating overwrite my entire design system?
No. Only the changes you select are applied. Unselected changes are ignored.
Can I undo an update?
There's no automatic undo. We recommend noting your current values before making significant changes.
What if I want to reset to the source exactly?
Select all added, modified, and removed tokens (including removals), then apply. Your design system matches the source exactly.
How does preset AI know which tokens I modified locally?
preset AI tracks "provenance": the original value at import time. When you edit a token, it compares against this original to detect local modifications.
Can I update from a different source than I originally imported?
Yes, but the diff will compare against your current tokens regardless of where they came from. This can result in more "added" and "removed" tokens than expected.