# Migrate Radix To Base > Migra proyectos y componentes React de Radix UI a Base UI: wrappers shadcn, composiciones hechas a mano y su código consumidor, componente a componente o el proyecto completo. Fuente: https://skillsagentes.com/skills/shadcn-ui/ui/migrate-radix-to-base Markdown: https://skillsagentes.com/skills/shadcn-ui/ui/migrate-radix-to-base.md Repositorio: https://github.com/shadcn-ui/ui Autor: shadcn-ui Licencia: MIT Actualizado: el mes pasado Coste de contexto: 64 tok instalada, 2.3k tok al activarse, 44.2k tok con todos los archivos del bundle Bundle: 10 archivos, 173 KB Permisos que pide: ninguno declarado ## Instalación Un skill son archivos markdown: los mismos archivos valen para cualquier agente y lo único que cambia es el directorio de destino, es decir la bandera `--agent`. Añade `-g` para instalarlo en todos los proyectos de la máquina. ```bash # Claude Code npx -y skills add shadcn-ui/ui --skill migrate-radix-to-base --agent claude-code # Cursor npx -y skills add shadcn-ui/ui --skill migrate-radix-to-base --agent cursor # Codex npx -y skills add shadcn-ui/ui --skill migrate-radix-to-base --agent codex # Gemini CLI npx -y skills add shadcn-ui/ui --skill migrate-radix-to-base --agent gemini # Windsurf npx -y skills add shadcn-ui/ui --skill migrate-radix-to-base --agent windsurf # Cline npx -y skills add shadcn-ui/ui --skill migrate-radix-to-base --agent cline ``` ## Qué hace - Migra wrappers de shadcn y composiciones Radix hechas a mano hacia @base-ui/react, componente por componente o en el proyecto entero - Detecta pares golden vía la CLI de shadcn o aplica un motor de transformación con tablas de props por familia cuando no hay par golden - Repuntúa consumidores, elimina dependencias de radix al final y deja el proyecto compilando en cada paso - Genera reportes en .migration/.md con lo cambiado, lo dejado igual, cambios de comportamiento y checklist de verificación manual ## Cuándo usarla - Se pide migrar de radix, mover a base-ui, convertir primitivas radix o cambiar la librería base de un proyecto shadcn - Migrar un solo componente (ej. "migrate accordion") o el proyecto completo ## Cuándo no - Para librerías no-radix como cmdk, vaul, sonner, input-otp o react-day-picker, que deben quedar intencionalmente sin tocar ## Qué la activa - "Migra el componente accordion de Radix a Base UI" - "Convierte todo el proyecto shadcn de radix-nova a base-nova" - "Pasa nuestras primitivas radix hechas a mano a @base-ui/react" - "¿Qué componentes de la UI siguen usando Radix?" ## Antes de instalar - Requiere un árbol git limpio, trabajar en una rama, y ejecutar `npx shadcn@latest info --json` antes de tocar dependencias. ## Archivos - SKILL.md — 9 KB - class-mapping.md — 3 KB - consumer-props.md — 4 KB - disclosure.md — 20 KB - display-misc.md — 25 KB - form-controls.md — 29 KB - menus.md — 32 KB - overlays.md — 31 KB - universal-patterns.md — 14 KB - wrapper-shapes.md — 5 KB ## SKILL.md Reproducido tal cual desde shadcn-ui/ui bajo MIT. Esta sección es el documento original y está en inglés. # 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-