React Spectrum

A React implementation of Spectrum, Adobe’s design system.

React Spectrum hero image

Accessible

React Spectrum components are designed with accessibility top-of-mind and include full screen reader and keyboard navigation support.

Adaptive

React Spectrum components are designed to work with mouse, touch, and keyboard interactions. They’re built with responsive design principles to deliver a great experience, no matter the device.

Color schemes

React Spectrum includes automatic support for dark and light mode based on operating system settings.

International

React Spectrum components are designed to support over 30 languages, including support for right-to-left languages, date and number formatting, and more.

Components#


Buttons#

Button
A button allows a user to perform an action or to navigate to another page.
ActionButton
An action button allows a user to perform an action.
ToggleButton
A toggle button allows a user to toggle between two states.
ButtonGroup
A button group is a grouping of buttons whose actions are related to each other.
ActionGroup
An action group is a grouping of action buttons that are related to each other.

Pickers#

ComboBox
A combobox combines a text input with a listbox, and allows a user to filter a list of options.
Picker
A picker displays a collapsible list of options, and allows a user to select one of them.

Collections#

Menu
A menu displays a list of actions or options that a user can choose.
ListBox
A listbox displays a list of options, and allows a user to select one or more of them.
ListView
A ListView displays a list of interactive items, with keyboard navigation, row selection, and actions.
TableView
A table view displays data in rows and columns, with row selection and sorting.
TagGroup
A tag group displays a list of items, with support for keyboard navigation and removal.

Date and time#

DatePicker
A date picker combines a DateField and a Calendar popover.
DateRangePicker
A date range picker combines two DateFields and a RangeCalendar popover.
DateField
A date field allows a user to enter and edit date values using a keyboard.
TimeField
A time field allows a user to enter and edit time values using a keyboard.
Calendar
A calendar allows a user to select a single date from a date grid.
RangeCalendar
A range calendar allows a user to select a contiguous range of dates.

Overlays#

Dialog
A dialog is an overlay shown above other content in an application.
DialogTrigger
Displays a dialog in a popover, modal, or tray in response to a trigger.
Tooltip
A tooltip displays a description of an element on hover or focus.
ContextualHelp
Contextual help shows extra information about an adjacent component.

Forms#

Checkbox
A checkbox allows a user to select an individual option.
CheckboxGroup
A checkbox group allows a user to select one or more items in a list of options.
RadioGroup
A radio group allows a user to select a single item from a list of options.
Switch
A switch allows a user to turn a setting on or off.
TextField
A text field allows a user to enter a plain text value with a keyboard.
TextArea
A text area allows a user to enter a multi-line text value with a keyboard.
SearchField
A search field allows a user to enter and clear a search query.
NumberField
A number field allows a user to enter, increment, or decrement a numeric value.
Form
A form provides layout and alignment for a grouping of fields.
Slider
A slider allows a user to select a numeric value within a range.
RangeSlider
A range slider allows a user to select a range of values within a larger range.
Tabs
Tabs organize content into multiple sections, and allow a user to view one at a time.
Link
A link allows a user to navigate to another page.
Breadcrumbs
Breadcrumbs display a heirarchy of links to the current page or resource.

Status#

ProgressBar
A progress bar shows progress of an operation over time with a linear representation.
ProgressCircle
A progress circle shows progress of an operation over time with a circular representation.
Meter
A meter represents a quantity within a known range, or a fractional value.
LabeledValue
A labeled value displays a non-editable value with a label, with locale-specific formatting.
StatusLight
A status light displays the status or category of an entity.
Badge
A badge displays color-categorized metadata for an object.

Drag and drop#

DropZone
A drop zone is an area into which one or multiple objects can be dragged and dropped.