Skip to content

v10.0.0

Choose a tag to compare

@github-actions github-actions released this 19 Sep 07:00
· 112 commits to main since this release
54793c3

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.Content with Accordion.Panel; the root now accepts a multiple boolean and models the open set as an array for both modes. Single‑open mode is collapsible. @radix-ui/react-accordion is removed.
  • Checkbox – migrated to Base UI primitives.
  • Dialog – Dialog.Overlay/Dialog.Content become Dialog.Backdrop/Dialog.Popup; open/close styling uses Base UI’s data-starting-style/data-ending-style hooks. Pointer‑outside dismissal is now a root concern (disablePointerDismissal). The @radix-ui/react-dialog dependency is dropped (kept transitively via vaul).
  • RadioGroup – split Radix’s RadioGroup.Item into Radio.Root + Radio.Indicator; radio renders a <span> with a hidden <input>. Radio.Group options now use Base UI’s render prop. @radix-ui/react-radio-group removed.
  • 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 native value.
  • Drawer – rebuilt on Base UI’s Dialog primitives; vaul dependency removed. Drag‑to‑dismiss and snap points are gone; the handlebar is no longer draggable. DrawerContent now uses data-direction and disablePointerDismissal for 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

  • vaul is no longer used; the package now has no Radix dependencies.
  • Drawer loses drag‑to‑dismiss, snap points, and the draggable prop.
  • Accordion single‑open mode is now collapsible.
  • Dialog pointer‑outside dismissal logic moved to the root level.
  • Switch no longer accepts a native value attribute.
  • 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 Calendar padding unchanged.
  • Added a check-data-theme-dark regression 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