v1.0.0
Major Changes
-
#26
a1e810dThanks @MikeNotThePope! - Migrate the entire component library from Radix UI to Base UI (@base-ui/react1.6.0). All 26@radix-ui/*packages plusvaulandcmdkare replaced by a single actively-maintained dependency built by the Radix/Floating UI team at MUI. Component names, exports, and part structure are unchanged; the library now exposes Base UI's APIs directly.Composition:
asChild→renderThe Radix
asChildprop is gone everywhere. Composition uses Base UI'srenderprop, including on the library's own components (Button,Stack,Grid,Cluster,Center,BreadcrumbLink,NavTabsLink, sidebar parts):// before <DialogTrigger asChild><Button variant="outline">Open</Button></DialogTrigger> <Button asChild><Link href="/docs">Docs</Link></Button> // after <DialogTrigger render={<Button variant="outline" />}>Open</DialogTrigger> <Button render={<Link href="/docs" />}>Docs</Button>
Value APIs follow Base UI
AccordionandToggleGroupdroptype="single" | "multiple"andcollapsible; values are always arrays, one item is open/pressed at a time by default, and themultipleprop allows several.Select: cleared value isnullinstead of"";SelectContentdropsposition(popover anchoring is the default;alignItemWithTriggeropts into the macOS-style overlay).Checkbox:checked="indeterminate"is replaced by theindeterminateprop.- Change callbacks (
onCheckedChange,onValueChange,onOpenChange,onPressedChange) receive(value, eventDetails). Comboboxdrops the deprecatedplaceholder/searchPlaceholder/emptyMessageprops in favor oflabels.TooltipProvideruses Base UI'sdelay/closeDelay(formerlydelayDuration);HoverCarddelays follow Base UI PreviewCard's API.Drawer(now Base UI instead of vaul) dropsshouldScaleBackground;Separatordropsdecorative;useDirectiontakes no argument.
Styling hooks follow Base UI
State selectors on library components are now Base UI data attributes:
data-[open],data-[closed],data-[checked],data-[pressed],data-[active],data-[popup-open],data-[highlighted],data-[starting-style]/data-[ending-style]— replacing Radix'sdata-[state=…]. CSS variables change accordingly:--radix-*-trigger-width→--anchor-width,--radix-*-transform-origin→--transform-origin,--radix-*-available-height→--available-height,--radix-accordion-content-height→--accordion-panel-height.Behavioral notes
Switch/RadioGroup/Sliderroots render spans withdata-disabled/aria-disabledinstead of native disabled buttons.Commandis rebuilt on Base UI Autocomplete with the same composable API (heading, derived item values,onSelect); cmdk'sshouldFilter/customfilterare gone and filtering is case-insensitive substring matching.- Radix-only content props (
onPointerDownOutside,onOpenAutoFocus, …) no longer exist; use Base UI's equivalents on the corresponding parts.