Option list
The option list component lets you create a list of grouped items that merchants can pick from. This can include single selection or multiple selection of options. Option list usually appears in a popover, and sometimes in a modal or a sidebar. Option lists are styled differently than choice lists and should not be used within a form, but as a standalone menu.
Option list component examples
Use for a group of similar selectable items when only one should be selectable at once.
import {LegacyCard, OptionList} from '@shopify/polaris';
import {useState} from 'react';
function OptionListExample() {
const [selected, setSelected] = useState<string[]>([]);
return (
<LegacyCard>
<OptionList
title="Inventory Location"
onChange={setSelected}
options={[
{value: 'byward_market', label: 'Byward Market'},
{value: 'centretown', label: 'Centretown'},
{value: 'hintonburg', label: 'Hintonburg'},
{value: 'westboro', label: 'Westboro'},
{value: 'downtown', label: 'Downtown'},
]}
selected={selected}
/>
</LegacyCard>
);
}
Props
- id?string
A unique identifier for the option list.
- title?string
List title.
- options?[]
Collection of options to be listed.
- role?string
Defines a specific role attribute for the list itself.
- sections?[]
Sections containing a header and related options.
- selectedstring[]
The selected options.
- allowMultiple?boolean
Allow more than one option to be selected.
- verticalAlign?'top' | 'center' | 'bottom'
Vertically align child content to the center, top, or bottom.
- onChange(selected: string[]) => void
Callback when selection is changed.
- onPointerEnterOption?(selected: string) => void
Callback when pointer enters an option.
- onFocusOption?(selected: string) => void
Callback when focusing an option.
Best practices
The option list component should:
- Be placed on its own inside a container. Usually the container behaves like a menu, as it does with popover. Don’t place other components within the same container.
- Not be used when a select component will do.
Content guidelines
Option lists
Each item in an option list should be clear and descriptive.
- Traffic referrer source
- Source
Related components
- To render a list of actions, use the action list component
- To create a list of grouped radio buttons or checkboxes, use the choice list component
- For a basic version of option list as a single choice menu, use the select component
Accessibility
Items in an option list are organized as list items (<li>) in an unordered list (<ul>) and are conveyed as a group of related elements to assistive technology users.
Controls in simple option lists are buttons, and controls in multiple option lists are checkboxes.
If you customize the option list, you can provide ARIA roles that fit the context. These roles must be valid according to the W3C ARIA specification to be conveyed correctly to screen reader users.
- The role prop adds an ARIA role to the option list wrapper