# React Spectrum Libraries > Complete documentation for React Spectrum libraries including React Spectrum (S2), React Aria, and Internationalized. ## Getting Started - [error](error.md) - [index](index.md) ## React Spectrum (S2) - [Accordion](s2/Accordion.md): An accordion is a container for multiple disclosures. - [ActionBar](s2/ActionBar.md): Action bars are used for single and bulk selection patterns when a user needs to perform actions on one or more items at the same time. - [ActionButton](s2/ActionButton.md): ActionButtons allow users to perform an action. - [ActionButtonGroup](s2/ActionButtonGroup.md): An ActionButtonGroup is a grouping of related ActionButtons. - [ActionMenu](s2/ActionMenu.md): ActionMenu combines an ActionButton with a Menu for simple "more actions" use cases. - [Avatar](s2/Avatar.md): An avatar is a thumbnail representation of an entity, such as a user or an organization. - [AvatarGroup](s2/AvatarGroup.md): An avatar group is a grouping of avatars that are related to each other. - [Badge](s2/Badge.md): Badges are used for showing a small amount of color-categorized metadata, ideal for getting a user's attention. - [Breadcrumbs](s2/Breadcrumbs.md): Breadcrumbs show hierarchy and navigational context for a user's location within an application. - [Button](s2/Button.md): Buttons allow users to perform an action. - [ButtonGroup](s2/ButtonGroup.md): ButtonGroup handles overflow for a grouping of buttons whose actions are related to each other. - [Calendar](s2/Calendar.md): Calendars display a grid of days in one or more months and allow users to select a single date. - [Card](s2/Card.md): A Card summarizes an object that a user can select or navigate to. - [CardView](s2/CardView.md): A CardView displays a group of related objects, with support for selection and bulk actions. - [Checkbox](s2/Checkbox.md): Checkboxes allow users to select multiple items from a list of individual items, - [CheckboxGroup](s2/CheckboxGroup.md): A CheckboxGroup allows users to select one or more items from a list of choices. - [Client Side Routing](s2/routing.md): Many React Spectrum components support rendering as HTML links. This page discusses how to set up your app to integrate React Spectrum links with your framework or client side router. - [Collections](s2/collections.md): Many components display a collection of items, and provide functionality such as keyboard navigation, selection, and more. React Spectrum has a consistent, compositional API to define the items displayed in these components. - [ColorArea](s2/ColorArea.md): A ColorArea allows users to adjust two channels of an RGB, HSL or HSB color value against a two-dimensional gradient background. - [ColorField](s2/ColorField.md): A color field allows users to edit a hex color or individual color channel value. - [ColorSlider](s2/ColorSlider.md): A ColorSlider allows users to adjust an individual channel of a color value. - [ColorSwatch](s2/ColorSwatch.md): A ColorSwatch displays a preview of a selected color. - [ColorSwatchPicker](s2/ColorSwatchPicker.md): A ColorSwatchPicker displays a list of color swatches and allows a user to select one of them. - [ColorWheel](s2/ColorWheel.md): A ColorWheel allows users to adjust the hue of an HSL or HSB color value on a circular track. - [ComboBox](s2/ComboBox.md): ComboBox allow users to choose a single option from a collapsible list of options when space is limited. - [ContextualHelp](s2/ContextualHelp.md): Contextual help shows a user extra information about the state of an adjacent component, or a total view. - [DateField](s2/DateField.md): DateFields allow users to enter and edit date and time values using a keyboard. - [DatePicker](s2/DatePicker.md): DatePickers combine a DateField and a Calendar popover to allow users to enter or select a date and time value. - [DateRangePicker](s2/DateRangePicker.md): DateRangePickers combine two DateFields and a RangeCalendar popover to allow users - [Dialog](s2/Dialog.md): Dialogs are windows containing contextual information, tasks, or workflows that appear over the user interface. - [Disclosure](s2/Disclosure.md): A disclosure is a collapsible section of content. It is composed of a a header with a heading and trigger button, and a panel that contains the content. - [Divider](s2/Divider.md): Dividers bring clarity to a layout by grouping and dividing content in close proximity. - [Drag and Drop](s2/dnd.md): Drag and drop is an intuitive way for users to transfer data between locations. React Spectrum implements drag and drop for mouse and touch interactions, and provides full keyboard and screen reader accessibility. - [DropZone](s2/DropZone.md): A drop zone is an area into which one or multiple objects can be dragged and dropped. - [Form](s2/Form.md): Forms allow users to enter data that can be submitted while providing alignment and styling for form fields. - [Forms](s2/forms.md): Forms allow users to enter and submit data, and provide them with feedback along the way. React Spectrum includes many components that integrate with HTML forms, with support for custom validation, labels, and help text. - [Getting started](s2/getting-started.md): ## Installation - [Icons](s2/Icons.md): React Spectrum offers a set of open source icons that can be imported from . - [IllustratedMessage](s2/IllustratedMessage.md): An IllustratedMessage displays an illustration and a message, usually - [Illustrations](s2/Illustrations.md): React Spectrum offers a collection of illustrations that can be imported from . - [Image](s2/Image.md): An image with support for skeleton loading and custom error states. - [InlineAlert](s2/InlineAlert.md): Inline alerts display a non-modal message associated with objects in a view. - [Link](s2/Link.md): Links allow users to navigate to a different location. - [LinkButton](s2/LinkButton.md) - [MCP Server](s2/mcp.md): The `@react-spectrum/mcp` package allows you to run [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) servers for React Spectrum (S2) and React Aria locally. It exposes a set of tools that MCP clients can discover and call to browse the docs. - [Menu](s2/Menu.md): Menus display a list of actions or options that a user can choose. - [Meter](s2/Meter.md): Meters are visual representations of a quantity or an achievement. - [Migrating to Spectrum 2](s2/migrating.md): An automated upgrade assistant is available by running the following command in the project you want to upgrade: - [NumberField](s2/NumberField.md): NumberFields allow users to input number values with a keyboard or increment/decrement with step buttons. - [Picker](s2/Picker.md): Pickers allow users to choose a single option from a collapsible list of options when space is limited. - [Popover](s2/Popover.md): A popover is an overlay element positioned relative to a trigger. - [ProgressBar](s2/ProgressBar.md): ProgressBars show the progression of a system operation: downloading, uploading, processing, etc., in a visual way. - [ProgressCircle](s2/ProgressCircle.md): ProgressCircles show the progression of a system operation such as downloading, uploading, or processing, in a visual way. - [RadioGroup](s2/RadioGroup.md): Radio groups allow users to select a single option from a list of mutually exclusive options. - [RangeCalendar](s2/RangeCalendar.md): RangeCalendars display a grid of days in one or more months and allow users to select a contiguous range of dates. - [RangeSlider](s2/RangeSlider.md): RangeSliders allow users to quickly select a subset range. They should be used when the upper and lower bounds to the range are invariable. - [React Spectrum](s2/index.md): A React implementation of Spectrum, Adobe's design system. - [Release Notes](s2/release-notes.md): ## v0.12.0 - [SearchField](s2/SearchField.md): A SearchField is a text field designed for searches. - [SegmentedControl](s2/SegmentedControl.md): A SegmentedControl is a mutually exclusive group of buttons used for view switching. - [SelectBoxGroup](s2/SelectBoxGroup.md): SelectBox is a single selectable item in a SelectBoxGroup. - [Selection](s2/selection.md): Many collection components support selecting items by clicking or tapping them, or by using the keyboard. This page discusses how to handle selection events, how to control selection programmatically, and the data structures used to represent a selection. - [Skeleton](s2/Skeleton.md): A Skeleton wraps around content to render it as a placeholder. - [Slider](s2/Slider.md): Sliders allow users to quickly select a value within a range. They should be used when the upper and lower bounds to the range are invariable. - [StatusLight](s2/StatusLight.md): Status lights are used to color code categories and labels commonly found in data visualization. - [Styling](s2/styling.md): React Spectrum includes a build-time style macro that generates atomic CSS and lets you apply Spectrum tokens directly in your components with type-safe autocompletion. - [Switch](s2/Switch.md): Switches allow users to turn an individual option on or off. - [TableView](s2/TableView.md): Tables are containers for displaying information. They allow users to quickly scan, sort, compare, and take action on large amounts of data. - [Tabs](s2/Tabs.md): Tabs organize content into multiple sections and allow users to navigate between them. The content under the set of tabs should be related and form a coherent unit. - [TagGroup](s2/TagGroup.md): Tags allow users to categorize content. They can represent keywords or people, and are grouped to describe an item or a search request. - [TextArea](s2/TextArea.md): A textarea allows a user to input mult-line text. - [TextField](s2/TextField.md): TextFields are text inputs that allow users to input custom text entries - [TimeField](s2/TimeField.md): TimeFields allow users to enter and edit time values using a keyboard. - [Toast](s2/Toast.md) - [ToggleButton](s2/ToggleButton.md): ToggleButtons allow users to toggle a selection on or off, for example - [ToggleButtonGroup](s2/ToggleButtonGroup.md): A ToggleButtonGroup is a grouping of related ToggleButtons, with single or multiple selection. - [Tooltip](s2/Tooltip.md): Display container for Tooltip content. Has a directional arrow dependent on its placement. - [TreeView](s2/TreeView.md): A tree view provides users with a way to navigate nested hierarchical information. ## React Aria Components - [Autocomplete](react-aria/Autocomplete.md): An autocomplete combines a TextField or SearchField with a Menu or ListBox, allowing users to search or filter a list of suggestions. - [Breadcrumbs](react-aria/Breadcrumbs.md): Breadcrumbs display a hierarchy of links to the current page or resource in an application. - [Button](react-aria/Button.md): A button allows a user to perform an action, with mouse, touch, and keyboard interactions. - [Calendar](react-aria/Calendar.md): A calendar displays one or more date grids and allows users to select a single date. - [Checkbox](react-aria/Checkbox.md): A checkbox allows a user to select multiple items from a list of individual items, or - [CheckboxGroup](react-aria/CheckboxGroup.md): A CheckboxGroup allows users to select one or more items from a list of choices. - [Collections](react-aria/collections.md): Many components display a collection of items, and provide functionality such as keyboard navigation, selection, and more. React Aria has a consistent, compositional API to define the items displayed in these components. - [ColorArea](react-aria/ColorArea.md): A color area allows users to adjust two channels of an RGB, HSL or HSB color value against a two-dimensional gradient background. - [ColorField](react-aria/ColorField.md): A color field allows users to edit a hex color or individual color channel value. - [ColorPicker](react-aria/ColorPicker.md): A ColorPicker synchronizes a color value between multiple React Aria color components. - [ColorSlider](react-aria/ColorSlider.md): A color slider allows users to adjust an individual channel of a color value. - [ColorSwatch](react-aria/ColorSwatch.md): A ColorSwatch displays a preview of a selected color. - [ColorSwatchPicker](react-aria/ColorSwatchPicker.md): A ColorSwatchPicker displays a list of color swatches and allows a user to select one of them. - [ColorWheel](react-aria/ColorWheel.md): A color wheel allows users to adjust the hue of an HSL or HSB color value on a circular track. - [ComboBox](react-aria/ComboBox.md): A combo box combines a text input with a listbox, allowing users to filter a list of options to items matching a query. - [DateField](react-aria/DateField.md): A date field allows users to enter and edit date and time values using a keyboard. - [DatePicker](react-aria/DatePicker.md): A date picker combines a DateField and a Calendar popover to allow users to enter or select a date and time value. - [DateRangePicker](react-aria/DateRangePicker.md): DateRangePickers combine two DateFields and a RangeCalendar popover to allow users - [Disclosure](react-aria/Disclosure.md): A disclosure is a collapsible section of content. It is composed of a a header with a heading and trigger button, and a panel that contains the content. - [DisclosureGroup](react-aria/DisclosureGroup.md) - [Drag and Drop](react-aria/dnd.md): Drag and drop is an intuitive way for users to transfer data between locations. React Aria implements drag and drop for mouse and touch interactions, and provides full keyboard and screen reader accessibility. - [DropZone](react-aria/DropZone.md): A drop zone is an area into which one or multiple objects can be dragged and dropped. - [Emoji Picker](react-aria/examples/emoji-picker.md): An emoji picker with autocomplete, virtualized scrolling, and arrow key navigation. - [Examples](react-aria/examples/index.md): - [FileTrigger](react-aria/FileTrigger.md): A FileTrigger allows a user to access the file system with any pressable React Aria or React Spectrum component, or custom components built with usePress. - [Filterable CRUD Table](react-aria/examples/crud.md): A plant tracking app with CRUD operations, search, filters, table column resizing, form validation, and more. - [Form](react-aria/Form.md): A form is a group of inputs that allows users to submit data to a server, - [Framework setup](react-aria/frameworks.md): How to integrate React Aria with your framework. - [Gesture Driven Sheet](react-aria/examples/sheet.md): An iOS-style gesture driven sheet built with React Aria Components, , and . - [Getting started](react-aria/getting-started.md): How to install React Aria and build your first component. - [GridList](react-aria/GridList.md): A grid list displays a list of interactive items, with support for keyboard navigation, - [Group](react-aria/Group.md): A group represents a set of related UI controls, and supports interactive states for styling. - [index](react-aria/index.md) - [iOS List View](react-aria/examples/ios-list.md): A re-creation of the iOS List View built with React Aria Components, , and with support for swipe gestures, layout animations, and multiple selection mode. - [Kanban Board](react-aria/examples/kanban.md): A kanban board with accessible drag and drop, styled with Tailwind CSS. - [Link](react-aria/Link.md): A link allows a user to navigate to another page or resource within a web page - [ListBox](react-aria/ListBox.md): A listbox displays a list of options and allows a user to select one or more of them. - [MCP Server](react-aria/mcp.md): The `@react-spectrum/mcp` package allows you to run [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) servers for React Aria locally. It exposes a set of tools that MCP clients can discover and call to browse the docs. - [Menu](react-aria/Menu.md): A menu displays a list of actions or options that a user can choose. - [Meter](react-aria/Meter.md): A meter represents a quantity within a known range, or a fractional value. - [Modal](react-aria/Modal.md): A modal is an overlay element which blocks interaction with elements outside it. - [NumberField](react-aria/NumberField.md): A number field allows a user to enter a number, and increment or decrement the value using stepper buttons. - [Photo Library](react-aria/examples/photos.md): A photo library app with virtualized scrolling, view transitions, adjustable waterfall layout, folder tree, search, multi-selection, and accessible drag and drop. - [Popover](react-aria/Popover.md): A popover is an overlay element positioned relative to a trigger. - [ProgressBar](react-aria/ProgressBar.md): Progress bars show either determinate or indeterminate progress of an operation - [RadioGroup](react-aria/RadioGroup.md): A radio group allows a user to select a single item from a list of mutually exclusive options. - [RangeCalendar](react-aria/RangeCalendar.md): RangeCalendars display a grid of days in one or more months and allow users to select a contiguous range of dates. - [Ripple Button](react-aria/examples/ripple-button.md): A with an animated ripple effect styled with . - [SearchField](react-aria/SearchField.md): A search field allows a user to enter and clear a search query. - [Select](react-aria/Select.md): A select displays a collapsible list of options and allows a user to select one of them. - [Selection](react-aria/selection.md): Many collection components support selecting items by clicking or tapping them, or by using the keyboard. This page discusses how to handle selection events, how to control selection programmatically, and the data structures used to represent a selection. - [Slider](react-aria/Slider.md): A slider allows a user to select one or more values within a range. - [Styling](react-aria/styling.md): React Aria Components do not include any styles by default, allowing you to build custom designs to fit your application or design system using any styling solution. - [Swipeable Tabs](react-aria/examples/swipeable-tabs.md): A swipeable component with , , and . - [Switch](react-aria/Switch.md): A switch allows a user to turn a setting on or off. - [Table](react-aria/Table.md): A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys, - [Tabs](react-aria/Tabs.md): Tabs organize content into multiple sections and allow users to navigate between them. - [TagGroup](react-aria/TagGroup.md): A tag group is a focusable list of labels, categories, keywords, filters, or other items, with support for keyboard navigation, selection, and removal. - [TextField](react-aria/TextField.md): A text field allows a user to enter a plain text value with a keyboard. - [TimeField](react-aria/TimeField.md): TimeFields allow users to enter and edit time values using a keyboard. - [ToggleButton](react-aria/ToggleButton.md): A toggle button allows a user to toggle a selection on or off, for example switching between two states or modes. - [ToggleButtonGroup](react-aria/ToggleButtonGroup.md): A toggle button group allows a user to toggle multiple options, with single or multiple selection. - [Toolbar](react-aria/Toolbar.md): A toolbar is a container for a set of interactive controls, such as buttons, dropdown menus, or checkboxes, - [Tooltip](react-aria/Tooltip.md): A tooltip displays a description of an element on hover or focus. - [Tree](react-aria/Tree.md): A tree provides users with a way to navigate nested hierarchical information, with support for keyboard navigation - [Virtualizer](react-aria/Virtualizer.md): A Virtualizer renders a scrollable collection of data using customizable layouts. ## Internationalized - [Calendar](internationalized/date/Calendar.md): Calendars display a grid of days in one or more months and allow users to select a single date. - [CalendarDate](internationalized/date/CalendarDate.md): A CalendarDate represents a date without any time components in a specific calendar system. - [CalendarDateTime](internationalized/date/CalendarDateTime.md) - [DateFormatter](internationalized/date/DateFormatter.md): A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. - [Introduction](internationalized/date/index.md): The `@internationalized/date` package provides objects and functions for representing and manipulating dates and times in a locale-aware manner. - [Introduction](internationalized/number/index.md): The `@internationalized/number` package provides utilities for formatting and parsing numbers across locales and numbering systems. - [NumberFormatter](internationalized/number/NumberFormatter.md): A wrapper around Intl.NumberFormat providing additional options, polyfills, and caching for performance. - [NumberParser](internationalized/number/NumberParser.md): A NumberParser can be used to perform locale-aware parsing of numbers from Unicode strings, - [Time](internationalized/date/Time.md) - [ZonedDateTime](internationalized/date/ZonedDateTime.md)