Releases
Discover the latest release of Reka UI.
v2.11
✨ New Features
Components
- Field: New primitive that wires a control to its label, description and validation errors Alpha
- Form: New primitive that extends the native form with submit-time validation and server error display Alpha
- TagGroup: New component for a list of selectable, removable tags with keyboard navigation Alpha
- Toast: New toast manager for creating toasts from anywhere
createToastManageranduseToastManagerto add, update and close toasts imperativelyToastPositionerandToastArrowto anchor a toast to an element
- Drawer: New
DrawerVirtualKeyboardProviderto keep the drawer clear of the software keyboard
Functionality
- Listbox/Combobox/Autocomplete/Select/Tree: Added
loopprop so arrow-key navigation wraps around - Select/Listbox/Combobox/Menu/ColorSwatchPicker: Added slot props (e.g.
selected,checked) to*Item, andforceMountto*ItemIndicator - Combobox: Added
unmountOnHideprop to control whether content is unmounted when closed - Calendar/RangeCalendar: Added
Home,End,PageUp,PageDownandShift+PageUp/PageDownkeyboard shortcuts - NumberField: Added
startingValueprop for the first increment or decrement of an empty field - NumberField: Added
allowInvalidprop to keep a typed value that is out of range or off the step - Checkbox: Added
maxprop toCheckboxGroupRootto limit the number of checked values - Toast: Added
closeOnClickprop toToastActionto keep the toast open after the action - Menu: Added
graceDurationprop to sub triggers to customize the pointer grace period - ContextMenu: Added controlled
openstate support - Drawer: Swipe dismissal can be canceled with
details.cancel()inupdate:open - DismissableLayer/FocusScope: Added support for content rendered inside an iframe or a shadow root
Developer Experience
- Types:
openAutoFocusis now typed onDropdownMenuContent,ContextMenuContentandMenubarContent - Dependencies: Updated
@floating-ui/vueto v2
⚠️ Behavior Changes
These are fixes, but they change behavior you may rely on.
- VisuallyHidden: No longer sets
aria-hiddenby default, so its content is exposed to assistive technology. Usefeature="fully-hidden"to hide it completely. - Select/DropdownMenu/Menubar/NavigationMenu/Tabs: Triggers now respect
event.preventDefault(). A listener such as@click.preventon a trigger stops it from opening. - FocusScope: Auto focus and the
Tabloop now followtabindexorder instead of DOM order. - NumberField:
update:modelValueis now typednumber | undefined, matching what was already emitted when the field is cleared. - NumberField: Stepping further out of range no longer clamps the value. For example,
ArrowUpon a value abovemaxdoes nothing. - Menu:
@entry-focusonDropdownMenuContent,ContextMenuContentandMenubarContentis no longer forwarded. - Calendar/RangeCalendar:
Home,End,PageUpandPageDownon a cell no longer scroll the page. - DatePicker:
closeOnSelectnow closes only when the day changes. - Checkbox: A disabled
CheckboxRootnow also setsaria-disabled="true". - Toast: Toasts now render
--reka-toast-*CSS variables and adata-expandedattribute.
v2.10
✨ New Features
Components
- Drawer: New drawer primitive with swipe gestures, snap points, handle, and nested drawer support Alpha
- Rating: New component for star-style rating inputs Alpha
Functionality
- Select: Added
nullableValueprop to allow deselecting the current value - Dialog: Added
unmountOnHideprop to control whether content is unmounted when closed - HoverCard: Added
enableTouchprop to enable hover cards on touch devices - ConfigProvider: Added
teleportTofor setting a global default teleport target - Popper: Added
dirprop forRTL/LTRsupport - Tree: Added
disabledsupport forTreeItem - DateField: Added
stepSnappingsupport - Tabs: Exposed
--reka-tabs-indicator-thicknessCSS variable
Developer Experience
- Types: Improved type inference for
useEmitAsPropsanduseForwardPropsEmits
v2.9
✨ New Features
Components
- ColorPicker Suite: Complete set of color picker components
ColorArea- 2D color selection area with thumbColorField- Text input for entering color valuesColorSlider- Slider for adjusting color channels (hue, saturation, etc.)ColorSwatch- Displays a color preview swatchColorSwatchPicker- Grid of selectable color swatches
- TimeRangeField: New component for selecting time ranges with start/end inputs
- Autocomplete: New component for free-form text inputs with optional suggestions (different from Combobox - uses string
modelValueinstead of selected item) - MonthPicker & YearPicker: Four new date picker variants
MonthPicker- Single month selectionMonthRangePicker- Month range selectionYearPicker- Single year selectionYearRangePicker- Year range selection
- DropdownMenuFilter: New component for filtering menu items within dropdown menus
Functionality
- Splitter: Added support for pixel sizing and constraints (in addition to percentages)
- Checkbox/Switch: Added support for custom true/false values (not limited to boolean)
- Tooltip: Added global tooltip content configuration support
- Combobox/Autocomplete: Added
data-emptyattribute andhideWhenEmptyprop to hide dropdown when nothing matches
Internal (Using it at your own risk)
- Menu: Now exported via
/internalpath for advanced customization
2.0 Changes
✨ New Features
tip
We recommend reviewing the migration guide to make transitioning from v1 to v2 smooth.
Components
- TimeField: Implement new TimeField component
- Presence: Expose component
- ConfigProvider: Add global config for locale
Functionality
- Checkbox:
- Support multiple values and more types
- Add roving focus props to group
- ToggleGroup: Support more types
- RadioGroup:
- Support more types
- Emit 'select' event when user clicks on item
- Select: Support different modelValue and option types
- Listbox/Combobox:
- Expose highlight methods
- Highlight first item when filter changes
- NavigationMenu:
- Add additional CSS variables for better positioning
- Add SSR support
- Collapsible/Accordion: Add
unmountprop to help SEO for hidden content
Developer Experience
- Types:
- Expose useful types
- Allow type inference in usePrimitiveElement
- Filtering: New
useFiltercomposable for easy filtering - Bundle: Bundle with preserveModules, rollup types dts
🔧 Refactors
- Form Components:
- Move visually hidden input element inside root node
- Combobox:
- Use Listbox as base component
- Remove ComboboxEmpty
- Popper:
- Allow custom reference el or virtual el
- Add position strategy and updateOnLayoutShift props
- Rename props for better clarity
🐛 Bug Fixes
- NavigationMenu: Reset position after animation
- Accordion: Fix SSR animation causing flickers
- Listbox: Prevent scroll when using pointermove
- Combobox:
- Fix empty state based on search value
- Fix initial search not working and virtualizer issues
- Select: Fix arrow throwing content context injection error
- VisuallyHidden: Fix not focusable after native form validation
🚨 Breaking Changes
- Form Components:
- Rename controlled state to
v-model
- Rename controlled state to
- Popover: Update aria attributes and remove messy attributes
- Select:
- Fix SSR support
- Refactor SelectValue rendering mechanism
- Arrow: Improve polygon implementation
- Calendar: Remove deprecated
stepprop
