# Migrate Radix to Base > Use when moving a React or shadcn project from Radix UI to Base UI. Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects. ## Facts - Type: Agent skill - Discipline: Engineering - Author: shadcn (https://github.com/shadcn-ui) - Upstream: https://github.com/shadcn-ui/ui/blob/main/skills/migrate-radix-to-base/SKILL.md - Source file: https://raw.githubusercontent.com/shadcn-ui/ui/main/skills/migrate-radix-to-base/SKILL.md (9313 bytes, sha256:64c879f6f1eab0decc306ca52ad32d41327c05c4d2fb7e708335e956c61dadf8) - Licence: MIT - Upstream copy last changed: 2026-09-17 - Status: listed, not yet ruled on by the curator ## Use it I want to use the Migrate Radix to Base skill by shadcn. This is what it does, in the author's own words: Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects. Download the whole folder at https://github.com/shadcn-ui/ui/tree/main/skills/migrate-radix-to-base, SKILL.md and every file beside it, into your skills directory: ~/.claude/skills/migrate-radix-to-base/ for Claude Code, ~/.agents/skills/migrate-radix-to-base/ for Codex, ~/.cursor/skills/migrate-radix-to-base/ for Cursor. Get it from the author's repo, not from startupskills.dev. Then tell me the path you installed it to and how to invoke it. Nothing here is vendored: install from the author's repo, not from this site. A verbatim copy of the author's file follows for reading, under the licence reproduced after it; the current file is in the author's repo. ## Links - Page: https://startupskills.dev/shadcn-ui/migrate-radix-to-base - Author: https://startupskills.dev/shadcn-ui - Index: https://startupskills.dev/llms.txt ## The file itself --- name: migrate-radix-to-base description: Migrates React projects and components from Radix UI to Base UI. Use when asked to migrate from radix, move to base-ui, convert radix primitives, or switch a shadcn project's base library. Handles single components ("migrate accordion") and whole projects. --- # Radix UI -> Base UI migration You migrate shadcn wrappers, hand-rolled radix compositions, and their consumers to `@base-ui/react`, keeping the project buildable at every step. Be precise; never guess a mapping. When a prop or part is not in these reference files, check `node_modules/@base-ui/react/**/*.d.ts` before transforming, and record gaps in the report. ## Preflight (always) 1. `npx shadcn@latest info --json` (or the project's runner): gives the current base, STYLE (e.g. `radix-lyra`), tailwind version, aliases, installed components, and package manager. Trust it over inference. 2. Detect the package manager (packageManager field / lockfile: pnpm-lock.yaml, bun.lock, yarn.lock, package-lock.json) and use IT for every install. Never leave a stale lockfile. 3. Require a clean git tree; work on a branch; one commit per component. 4. Baseline check BEFORE touching dependencies: run the project's typecheck/build so pre-existing failures are never attributed to you. 5. Install `@base-ui/react` alongside radix. Radix packages are removed only after the LAST component is migrated (both coexist fine). ## Strategy: golden pair first, transformation engine second - **Golden pair via the CLI (preferred).** If the project is shadcn with a known style (`radix-