Repository navigation
v10.0.0
Version 10.0.0 – a full migration from Radix to Base UI primitives, dropping all Radix dependencies, updating the API of many components, and introducing several breaking changes and bug fixes.
Component migrations
- Progress & Separator – now use Base UI primitives with repo‑owned styling.
- Accordion – replaced Radix’s
Accordion.ContentwithAccordion.Panel; the root now accepts amultipleboolean and models the open set as an array for both modes. Single‑open mode is collapsible.@radix-ui/react-accordionis removed. - Checkbox – migrated to Base UI primitives.
- Dialog –
Dialog.Overlay/Dialog.ContentbecomeDialog.Backdrop/Dialog.Popup; open/close styling uses Base UI’sdata-starting-style/data-ending-stylehooks. Pointer‑outside dismissal is now a root concern (disablePointerDismissal). The@radix-ui/react-dialogdependency is dropped (kept transitively viavaul). - RadioGroup – split Radix’s
RadioGroup.ItemintoRadio.Root+Radio.Indicator; radio renders a<span>with a hidden<input>.Radio.Groupoptions now use Base UI’srenderprop.@radix-ui/react-radio-groupremoved. - Select & Config – direction provider migrated to Base UI while preserving grouped options, themed portals, item‑aligned positioning, keyboard interaction, and RTL behavior.
- Slider – updated to Base UI primitives.
- Switch – underlying element changed from
<button>to<span>+ hidden<input>; forwards span‑based host props and no longer accepts a nativevalue. - Drawer – rebuilt on Base UI’s Dialog primitives;
vauldependency removed. Drag‑to‑dismiss and snap points are gone; the handlebar is no longer draggable.DrawerContentnow usesdata-directionanddisablePointerDismissalfor outside‑press dismissal. - Popover – migrated to Base UI while preserving public props and themed portal container; arrow positioning delegated to Base UI and follows collision‑adjusted placement. Custom triggers that render non‑button elements can pass
nativeButton={false}; intrinsic non‑button elements are detected automatically.
Breaking changes
vaulis no longer used; the package now has no Radix dependencies.- Drawer loses drag‑to‑dismiss, snap points, and the
draggableprop. - Accordion single‑open mode is now collapsible.
- Dialog pointer‑outside dismissal logic moved to the root level.
- Switch no longer accepts a native
valueattribute. - RadioGroup now renders a
<span>instead of a<button>.
Bug fixes & patches
- DatePicker – removed doubled padding inside the popover; the popup now has a 16 px inset instead of 28 px, keeping standalone
Calendarpadding unchanged. - Added a
check-data-theme-darkregression test to ensure the built stylesheet still keys dark mode off[data-theme='dark']. - Popover – fixed trigger losing button styling and arrow rendering inside the popup.
All changes are fully documented in the repository.
What's Changed
- refactor: migrate separator and progress primitives to Base UI by @pjb0811 in #376
- refactor: migrate checkbox primitive to Base UI by @pjb0811 in #377
- refactor: migrate slider primitive to Base UI by @pjb0811 in #379
- refactor: migrate switch primitive to Base UI by @pjb0811 in #380
- refactor: migrate radio-group primitive to Base UI by @pjb0811 in #381
- refactor: migrate accordion primitive to Base UI by @pjb0811 in #382
- refactor(popover): migrate primitive to Base UI by @pjb0811 in #383
- refactor: migrate select primitive to Base UI by @pjb0811 in #384
- refactor: migrate dialog primitive to Base UI by @pjb0811 in #385
- refactor: rebuild drawer on Base UI dialog, drop vaul by @pjb0811 in #386
- refactor!: complete Base UI migration by @pjb0811 in #387
- fix(date-picker): drop the doubled padding inside the popover by @pjb0811 in #388
- fix(radio): center the checked dot inside the control by @pjb0811 in #389
- fix(rich-text-editor): resolve colours from theme tokens instead of a fixed palette by @pjb0811 in #390
- web: paint the page background on via Infima's own token by @pjb0811 in #391
- web: match the sibling docs sites' dark mode colours by @pjb0811 in #392
- refactor: drop the no-op DemoTheme wrapper from the docs site by @pjb0811 in #394
- fix(popover): restore the trigger's button styling and the arrow's box by @pjb0811 in #395
- docs: replace the stale Radix references left over from the Base UI migration by @pjb0811 in #396
- chore: version packages by @github-actions[bot] in #378
Full Changelog: v9.1.1...v10.0.0