migrate-design-system — Claude Code skill for design-system migrations
Maps your design tokens to another system and back: Material 3, Apple HIG, Fluent 2, shadcn/ui, Radix. Useful when you borrow a look or move onto a new stack.
npx skills add plugin87/ux-ui-agent-skills --skill migrate-design-system -a claude-codeWhat migrate-design-system does
The skill matches by role and intent, not by variable name. It reads a crosswalk protocol file, design-systems/interop-protocol.md, plus a table of curated mappings in design-systems/crosswalk.md covering Material 3, Apple HIG, Fluent 2, Carbon, shadcn/ui and Radix. Any other system gets a derived mapping along six axes: color roles, type scale, spacing unit, radius, elevation, motion.
You pick the direction. FROM means the outside system sets the look and your semantic tokens get re-pointed at it. TO means your components sit on their foundation and their primitives take your token values. The migration path works screen by screen: audit, map, add an alias layer, verify. Deliverables are a token crosswalk table, a bridge plan and confirmed overrides.
The skill depends on token files that ship with the kit. With skill folders alone, its first check prints KIT_MISSING and stops, since it will not guess at files it cannot open. Run npx ux-ui-agent-skills init or install the plugin to get the full kit. Contrast is the other trap: every mapped color pair has to go through scripts/contrast.py or a11y-audit, and all eight states plus dark mode must still hold up.
What it helps with
- align color roles with Material 3
- rework the type scale and spacing for another stack
- move a codebase from one component library to another
- recheck contrast after swapping tokens
- hand the team a token crosswalk table
Example prompts for the agent
- Map our tokens to shadcn/ui and show me the crosswalk table
- Put our components on a Material 3 foundation, keep our tokens
- Audit contrast on every mapped pair, dark mode included
How to install migrate-design-system
1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill migrate-design-system -a claude-code2Manually: put the files in place
~/.claude/skills/migrate-design-system/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/migrate-design-system/
1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill migrate-design-system -a codex2Manually: put the files in place
.agents/skills/migrate-design-system/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill migrate-design-system -a cursor2Manually: put the files in place
.cursor/skills/migrate-design-system/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install plugin87/ux-ui-agent-skills migrate-design-system2Manually: put the files in place
.github/skills/migrate-design-system/SKILL.md1Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill migrate-design-system -a gemini-cli2Platform CLI
gemini skills install https://github.com/plugin87/ux-ui-agent-skills --path .claude/skills/migrate-design-systemManually: put the files in place
.devin/skills/migrate-design-system/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add plugin87/ux-ui-agent-skills --skill migrate-design-system -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about migrate-design-system
How do I install migrate-design-system in Claude Code?
Run npx skills add plugin87/ux-ui-agent-skills --skill migrate-design-system -a claude-code. The skill file then sits at ~/.claude/skills/migrate-design-system/SKILL.md.
What does migrate-design-system do?
It builds a role-based crosswalk between your tokens and an external design system in either direction: adopt their look, theme their primitives with your tokens, or migrate screen by screen. You get a mapping table and verified overrides.
What does the skill need to run?
The token files from the ux-ui-agent-skills kit. Install only the skill folders and the first check returns KIT_MISSING; fix that with npx ux-ui-agent-skills init or the plugin install.
Source text
SKILL.md · MIT
---
name: migrate-design-system
description: Map this token system to or from any external design system (Material Design 3, Apple HIG, Fluent, Carbon, Ant, shadcn/ui, Radix, Chakra, Mantine, Bootstrap…). Adopt their look, build on their stack, or migrate between systems. Use when the user mentions interop, migration, or a specific design-system/component-library bridge.
# `invocation:` was not a field Claude Code reads - unknown frontmatter keys are
# ignored without an error, so these six were auto-invocable the whole time they
# were marked user-only. This is the field that actually does it.
disable-model-invocation: true
---
# Skill: Migrate / Interop Design System
> **Step 0: is the kit here?** This skill reads files from the kit. Check once:
> `ls ${CLAUDE_SKILL_DIR}/../../../tokens >/dev/null 2>&1 && echo KIT_OK || echo KIT_MISSING`
> On `KIT_MISSING` only the skill folders were installed, which is what
> `npx skills add` does. Say so plainly, point the user at
> `npx ux-ui-agent-skills init` or the plugin install, and stop. Do not guess the
> contents of a file you could not open.
Bridge to or from external design systems via a role-based crosswalk.
## Steps
1. Read `${CLAUDE_SKILL_DIR}/../../../design-systems/interop-protocol.md` (Crosswalk Method, the three directions, headless-vs-styled guidance, verification).
2. Use the curated tables in `${CLAUDE_SKILL_DIR}/../../../design-systems/crosswalk.md` for Material 3 / Apple HIG / Fluent 2 / Carbon / shadcn/ui / Radix. For others, derive a mapping with the Crosswalk Method (map by role/intent across 6 axes: color roles, type scale, spacing unit, radius, elevation, motion).
3. Choose the direction:
- **FROM** external → our tokens (adopt their look): re-point `semantic.*`.
- **TO** external stack (our components on their foundation): theme their primitives with our tokens.
- **Migrate**: Audit → Map → Bridge (alias layer) → Verify, screen by screen.
4. **Verify** every mapped color pair for contrast (`${CLAUDE_SKILL_DIR}/../../../scripts/contrast.py` / `a11y-audit`); confirm all 8 states + dark mode survive the mapping.
## Output
A crosswalk table (our token → their token → value note), a bridge plan if migrating, and verified token overrides. Render via `design-code`.
© plugin87 · MIT · plugin87/ux-ui-agent-skills