Loading...
Loading...
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.
npx skill4agent add shadcn/ui migrate-radix-to-base@base-ui/reactnode_modules/@base-ui/react/**/*.d.tsnpx shadcn@latest info --jsonradix-lyra@base-ui/reactradix-<style>https://ui.shadcn.com/r/styles/<style>/<component>.jsoncomponents.jsonradix-<style>base-<style>https://ui.shadcn.com/r/styles/base-<style>/<component>.jsonshadcn add <component> --overwrite--all --overwrite--overwrite<component>-base.tsx--overwritegit merge-file user.tsx radix-golden.tsx base-golden.tsxgrep -n "radix-ui\|@radix-ui\|IconPlaceholder"consumer-props.mdshadcn adduniversal-patterns.mdradix-ui@radix-ui/react-*overlays.mdmenus.mdform-controls.mddisclosure.mddisplay-misc.mdclass-mapping.mdwrapper-shapes.md<component>-base.tsx<component>-base.tsxconsumer-props.md-basecomponents.jsonbase-<style>consumer-props.md<label>sr-onlydirectiondirbutton.tsx@base-ui/react/button.migration/.migration/<component>.md.migration/accordion.md.migration/project.mdui.migration/<component>.md# <component>
<date, strategy used (golden pair via CLI / merge / engine), one-line verdict>
## Changed
<every file touched, with what changed and why; include file:line for
anything notable. Confirm the leftover scan is clean:
grep -n "radix-ui\|@radix-ui" on this component's files>
## Left alone
<files that look related but were intentionally not touched, with the reason
(cmdk/vaul/sonner are not radix; unrelated drift; etc.)>
## Behavior changes
<differences that compile fine but act differently; flagged, never patched
(tabs activation, menu close-on-click, delays...). Empty section if none>
## Verify by hand
<short manual QA checklist for this primitive family: focus return on
dialogs, keyboard nav + typeahead on menus/select, tooltip delay feel,
slider commit events. Concrete steps, one minute of clicking>