November 15, 2022 Release
We are excited to announce the release of drag and drop support in React Aria and React Spectrum! This includes a suite of hooks for implementing drag and drop interactions, with support for both mouse and touch, as well as full parity for keyboard and screen reader input. Check out our blog post for all the details!
This release also includes an update to all Spectrum colors, aligning React Spectrum with the latest Spectrum designs. Buttons also have a refreshed design, with improved accessibility, and additional variants.
React Aria also includes a new API for overlays such as popovers and modals. It is designed to make building these components much easier than before, including builtin focus management, accessibility, scroll locking, and positioning.
Finally, we have plenty of bug fixes and documentation updates. Thanks to all of our contributors who helped with this release 🤩
New Features#
Drag and Drop
- React Spectrum
- React Aria
Overlay hooks
Enhancements#
- Add SSR support for drag and drop - @casperiv0 - PR
- Export
TableCollectionandTreeCollection- @reidbarber - PR - Update Spectrum colors to v6 - @devongovett - PR
ButtonandActionButtondesign updates - @devongovett - PR- Migrate React Spectrum to new overlay hooks - @devongovett - PR
- Add
UNSAFE_classNameprop toTableView- @LFDanLu - PR
Spectrum color update#
Spectrum design has updated their color system with an expanded palette, improved contrast, and increased vibrance. This update applies across all React Spectrum components automatically. You can also use the new Spectrum colors in your custom components using the View component, which now has a colorVersion prop enabling you to opt-in. See the styling documentation for more details, and to view the full color palette.
Design updates#
Spectrum has also updated the designs for Button, ActionButton, ActionGroup, and ToggleButton with improved contrast and accessibility. Button includes new outline and fill options, as well as new static color options. ActionButton, ActionGroup, ToggleButton, Picker, TextField, and other field components now have darker borders and selected states for improved contrast.
The Button API has been updated to add new options, and deprecate some old ones. Deprecated options will be automatically mapped to new variants.
- Added
accentvariant, replacingctawhich is now deprecated. - Added
styleprop, acceptingfilloroutlinefor all button variants. - Added
staticColorprop, which replaces the deprecatedoverBackgroundvariant. - Deprecated
isQuiet.
View the updates on our Button docs and Spectrum Design docs.
Fixes#
- Avoid widening "type" prop of
TextInputDOMProps- @jossmac - PR - Expose
propstoSectioncollection item - @luisadame - PR - Clear slots for
ContextualHelpslot provider forDialog- @jluyau - PR - Fix focus for empty view in
TableViewandListView- @ktabors - PR - Fix
TableViewcrashing when adding/removing columns - @reidbarber - PR - Fix
DatePickerandDateFieldkey/focus event props - @ktabors - PR - Export
FocusVisibleProps- @warsawgentleman - PR - Remove unneeded aria-checked from
useCheckboxanduseSwitch- @tywayne - PR - Fix dragging in
ListViewwith selectionMode set tonone- @snowystinger - PR - Add generic for
DatePickerStateOptions- @jason89521 - PR - Update date components to use
useFocusWithin- @ktabors - PR - Wait until after a layout effect to prevent scroll in popovers - @devongovett - PR
- Add preventDefault to onDragEnter and onDragLeave for iPad - @devongovett - PR
- Fix types for labelProp (htmlFor) in
useTextField- @LosYear - PR - Reset
NumberFieldwhen value isnull- @lishichengyan - PR - Fix
TextAreanot using full height when custom height provided - @reidbarber - PR - Fix
useListDataso that reorder operations are correctly inserted at the correct index - @LFDanLu - PR
Docs#
- Correction of a mistake in
useBreadCrumbs- @Zoe-CF - PR - Display monopackage "since" version for components in React Spectrum docs - @dannify - PR
- Add link to Spectrum styling page to docs - @matthewdeutsch - PR
- Update copy relating to theming - @snowystinger - PR
Under construction#
Fixes to pre-released components are listed below. Please feel free to try them out, and report any issues you encounter.
- Update
TagGroupto use keys instead of value - @tiffany-sy-lin - PR - Fix
ColorWheellayout in aForm- @lishichengyan - PR - Update
TagGrouptypes - @reidbarber - PR
TagGroup updates#
We have made improvements to the TagGroup component, and it is now entering beta. This includes a few breaking changes.
isDisabledanddisabledKeysprops have been removed.isRemovablehas been renamed toallowsRemoving.onRemovenow passes the removed key instead of its children and press event.
Released packages#
- @adobe/react-spectrum@3.23.0
- @react-aria/accordion@3.0.0-alpha.13
- @react-aria/actiongroup@3.4.3
- @react-aria/aria-modal-polyfill@3.6.1
- @react-aria/autocomplete@3.0.0-alpha.12
- @react-aria/breadcrumbs@3.4.0
- @react-aria/button@3.6.3
- @react-aria/calendar@3.0.4
- @react-aria/checkbox@3.7.0
- @react-aria/color@3.0.0-beta.17
- @react-aria/combobox@3.4.3
- @react-aria/datepicker@3.2.0
- @react-aria/dialog@3.4.1
- @react-aria/dnd@3.0.0
- @react-aria/focus@3.10.0
- @react-aria/grid@3.5.1
- @react-aria/gridlist@3.1.1
- @react-aria/i18n@3.6.2
- @react-aria/interactions@3.13.0
- @react-aria/label@3.4.3
- @react-aria/landmark@3.0.0-alpha.4
- @react-aria/link@3.3.5
- @react-aria/listbox@3.7.1
- @react-aria/menu@3.7.0
- @react-aria/meter@3.3.3
- @react-aria/numberfield@3.3.3
- @react-aria/overlays@3.12.0
- @react-aria/progress@3.3.3
- @react-aria/radio@3.4.1
- @react-aria/searchfield@3.4.3
- @react-aria/select@3.8.3
- @react-aria/selection@3.12.0
- @react-aria/separator@3.2.5
- @react-aria/slider@3.2.3
- @react-aria/spinbutton@3.2.0
- @react-aria/ssr@3.4.0
- @react-aria/switch@3.3.0
- @react-aria/table@3.6.0
- @react-aria/tabs@3.3.3
- @react-aria/tag@3.0.0-beta.0
- @react-aria/textfield@3.8.0
- @react-aria/toggle@3.4.1
- @react-aria/tooltip@3.3.3
- @react-aria/utils@3.14.1
- @react-aria/virtualizer@3.6.0
- @react-aria/visually-hidden@3.6.0
- @react-spectrum/accordion@3.0.0-alpha.14
- @react-spectrum/actionbar@3.0.0-alpha.14
- @react-spectrum/actiongroup@3.7.1
- @react-spectrum/autocomplete@3.0.0-alpha.12
- @react-spectrum/avatar@3.0.0-alpha.11
- @react-spectrum/badge@3.0.1
- @react-spectrum/breadcrumbs@3.6.0
- @react-spectrum/button@3.11.0
- @react-spectrum/buttongroup@3.5.0
- @react-spectrum/calendar@3.1.3
- @react-spectrum/card@3.0.0-alpha.13
- @react-spectrum/checkbox@3.6.1
- @react-spectrum/color@3.0.0-beta.17
- @react-spectrum/combobox@3.7.0
- @react-spectrum/contextualhelp@3.4.0
- @react-spectrum/datepicker@3.3.0
- @react-spectrum/dialog@3.6.0
- @react-spectrum/divider@3.4.3
- @react-spectrum/dnd@3.0.0
- @react-spectrum/form@3.5.1
- @react-spectrum/icon@3.6.2
- @react-spectrum/illustratedmessage@3.3.3
- @react-spectrum/image@3.3.3
- @react-spectrum/label@3.9.0
- @react-spectrum/labeledvalue@3.0.1
- @react-spectrum/layout@3.4.3
- @react-spectrum/link@3.4.3
- @react-spectrum/list@3.2.0
- @react-spectrum/listbox@3.8.1
- @react-spectrum/menu@3.9.0
- @react-spectrum/meter@3.3.3
- @react-spectrum/numberfield@3.5.0
- @react-spectrum/overlays@4.0.0
- @react-spectrum/picker@3.9.0
- @react-spectrum/progress@3.3.3
- @react-spectrum/provider@3.6.0
- @react-spectrum/radio@3.4.1
- @react-spectrum/searchfield@3.6.0
- @react-spectrum/searchwithin@3.0.0-alpha.12
- @react-spectrum/slider@3.4.0
- @react-spectrum/statuslight@3.4.3
- @react-spectrum/switch@3.3.3
- @react-spectrum/table@3.5.0
- @react-spectrum/tabs@3.3.3
- @react-spectrum/tag@3.0.0-beta.0
- @react-spectrum/text@3.3.3
- @react-spectrum/textfield@3.9.0
- @react-spectrum/theme-dark@3.4.0
- @react-spectrum/theme-default@3.4.0
- @react-spectrum/theme-express@3.0.0-alpha.0
- @react-spectrum/theme-light@3.3.0
- @react-spectrum/tooltip@3.3.3
- @react-spectrum/utils@3.8.0
- @react-spectrum/view@3.4.0
- @react-spectrum/well@3.3.3
- @react-stately/calendar@3.0.4
- @react-stately/checkbox@3.3.1
- @react-stately/collections@3.5.0
- @react-stately/color@3.2.1
- @react-stately/combobox@3.3.0
- @react-stately/data@3.8.0
- @react-stately/datepicker@3.2.0
- @react-stately/dnd@3.0.0
- @react-stately/grid@3.4.1
- @react-stately/layout@3.9.0
- @react-stately/list@3.6.0
- @react-stately/menu@3.4.3
- @react-stately/numberfield@3.3.0
- @react-stately/overlays@3.4.3
- @react-stately/radio@3.6.1
- @react-stately/searchfield@3.3.3
- @react-stately/select@3.3.3
- @react-stately/selection@3.11.1
- @react-stately/slider@3.2.3
- @react-stately/table@3.6.0
- @react-stately/tabs@3.2.3
- @react-stately/toggle@3.4.3
- @react-stately/tooltip@3.2.3
- @react-stately/tree@3.4.0
- @react-stately/virtualizer@3.4.0
- @react-types/accordion@3.0.0-alpha.11
- @react-types/actionbar@3.0.0-alpha.11
- @react-types/actiongroup@3.3.5
- @react-types/autocomplete@3.0.0-alpha.10
- @react-types/avatar@3.0.0-alpha.10
- @react-types/badge@3.0.1
- @react-types/breadcrumbs@3.4.5
- @react-types/button@3.7.0
- @react-types/buttongroup@3.2.5
- @react-types/calendar@3.0.4
- @react-types/card@3.0.0-alpha.11
- @react-types/checkbox@3.4.1
- @react-types/color@3.0.0-beta.14
- @react-types/combobox@3.5.5
- @react-types/contextualhelp@3.1.5
- @react-types/datepicker@3.1.3
- @react-types/dialog@3.4.5
- @react-types/divider@3.2.5
- @react-types/form@3.4.1
- @react-types/grid@3.1.5
- @react-types/illustratedmessage@3.2.5
- @react-types/image@3.2.5
- @react-types/label@3.7.1
- @react-types/layout@3.3.5
- @react-types/link@3.3.5
- @react-types/list@3.1.1
- @react-types/listbox@3.3.5
- @react-types/menu@3.7.3
- @react-types/meter@3.2.5
- @react-types/numberfield@3.3.5
- @react-types/overlays@3.6.5
- @react-types/progress@3.2.5
- @react-types/provider@3.5.5
- @react-types/radio@3.3.1
- @react-types/searchfield@3.3.5
- @react-types/searchwithin@3.0.0-alpha.10
- @react-types/select@3.6.5
- @react-types/shared@3.16.0
- @react-types/slider@3.3.1
- @react-types/statuslight@3.2.5
- @react-types/switch@3.2.5
- @react-types/table@3.3.3
- @react-types/tabs@3.1.5
- @react-types/tag@3.0.0-beta.0
- @react-types/text@3.2.5
- @react-types/textfield@3.6.1
- @react-types/tooltip@3.2.5
- @react-types/view@3.3.0
- @react-types/well@3.2.5
- @spectrum-icons/color@3.4.4
- @spectrum-icons/express@3.0.0-alpha.0
- @spectrum-icons/illustrations@3.5.1
- @spectrum-icons/ui@3.4.0
- @spectrum-icons/workflow@4.0.4
- react-aria@3.21.0
- react-stately@3.19.0