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

interface OptionListProps
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.

Do
  • Traffic referrer source
Don't
  • Source


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

    On this page