Skip to main content

Choice list

The choice list component presents multiple options for single or multiple selections. Use it when merchants need to choose from a defined set of options, such as filtering results or collecting preferences.

The component supports both single selection (radio button behavior) and multiple selection (checkbox behavior) modes. It includes configurable labels, help text, and validation. For compact dropdown selection with four or more options, use select.

Support
Targets (29)

Supported targets

  • purchase.checkout.actions.render-before
  • purchase.checkout.block.render
  • purchase.checkout.cart-line-item.render-after
  • purchase.checkout.cart-line-list.render-after
  • purchase.checkout.contact.render-after
  • purchase.checkout.delivery-address.render-after
  • purchase.checkout.delivery-address.render-before
  • purchase.checkout.footer.render-after
  • purchase.checkout.header.render-after
  • purchase.checkout.payment-method-list.render-after
  • purchase.checkout.payment-method-list.render-before
  • purchase.checkout.pickup-location-list.render-after
  • purchase.checkout.pickup-location-list.render-before
  • purchase.checkout.pickup-location-option-item.render-after
  • purchase.checkout.pickup-point-list.render-after
  • purchase.checkout.pickup-point-list.render-before
  • purchase.checkout.reductions.render-after
  • purchase.checkout.reductions.render-before
  • purchase.checkout.shipping-option-item.details.render
  • purchase.checkout.shipping-option-item.render-after
  • purchase.checkout.shipping-option-list.render-after
  • purchase.checkout.shipping-option-list.render-before
  • purchase.thank-you.announcement.render
  • purchase.thank-you.block.render
  • purchase.thank-you.cart-line-item.render-after
  • purchase.thank-you.cart-line-list.render-after
  • purchase.thank-you.customer-information.render-after
  • purchase.thank-you.footer.render-after
  • purchase.thank-you.header.render-after

Anchor to disabled
disabled
boolean
Default: false

Whether the field is disabled, preventing any user interaction.

disabled on any child choices is ignored when this is true.

Anchor to error
error
string

An error message displayed below the field to indicate validation problems. When set, the field is styled with error indicators and the message is announced to screen readers.

string

A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.

Anchor to label
label
string

The text displayed as the field label, which identifies the purpose of the field to users. This label is associated with the field for accessibility and helps users understand what information to provide.

Anchor to labelAccessibilityVisibility
labelAccessibilityVisibility
'visible' | 'exclusive'
Default: 'visible'

Controls whether the label is visible to all users or only to screen readers.

  • visible: The label is shown to everyone.
  • exclusive: The label is visually hidden but still announced by screen readers.
Anchor to multiple
multiple
boolean
Default: false

Whether multiple choices can be selected.

string

The name attribute for the field, used to identify the field's value when the form is submitted. Must be unique within the nearest containing form.

Anchor to values
values
string[]

An array of the values of the selected options.

This is a convenience prop for setting the selected prop on child options.

Anchor to variant
variant
'auto' | 'list' | 'inline' | 'block' | 'grid'
Default: 'auto'

The variant of the choice grid.

  • auto: The variant is determined by the context.
  • list: The choices are displayed in a list.
  • inline: The choices are displayed on the inline axis.
  • block: The choices are displayed on the block axis.
  • grid: The choices are displayed in a grid.

Learn more about registering events.

Anchor to change
change
<typeof tagName>

A callback fired when the choice list value changes.

Learn more about the change event.

The choice component creates individual selectable options within a choice list. Use choice to define each option that merchants can select, supporting both single selection (radio buttons) and multiple selection (checkboxes) modes.

Choice components support labels, help text, and custom content through slots, providing flexible option presentation within choice lists.

Anchor to accessibilityLabel
accessibilityLabel
string

A label used for users using assistive technologies like screen readers. When set, any children or label supplied will not be announced. This can also be used to display a control without a visual label, while still providing context to users using screen readers.

Anchor to defaultSelected
defaultSelected
boolean
Default: false

Whether the control is selected by default.

Anchor to disabled
disabled
boolean
Default: false

Whether the control is disabled, preventing any user interaction.

Anchor to error
error
boolean
Default: false

Whether this choice is associated with the error state of the parent choice list. When true, the choice is visually marked as having an error.

string

A unique identifier for the element. Use this to reference the element in JavaScript, link labels to form controls, or target specific elements for styling or scripting.

Anchor to selected
selected
boolean
Default: false

Whether the control is currently selected.

Anchor to value
value
string

The value used in form data when the control is checked.

Learn more about component slots.

Anchor to details
details
HTMLElement

Additional text to provide context or guidance for the input.

This text is displayed along with the input and its label to offer more information or instructions to the user.

Anchor to secondaryContent
secondaryContent
HTMLElement

Secondary content for a choice.

Anchor to selectedContent
selectedContent
HTMLElement

Content to display when the option is selected.

This can be used to provide additional information or options related to the choice.

Examples
<s-choice-list>
<s-choice defaultSelected value="location-1"
>Yonge-Dundas Square locations</s-choice
>
<s-choice value="location-2">Distillery District location</s-choice>
<s-choice value="location-3">Yorkville location</s-choice>
</s-choice-list>

Preview

Was this page helpful?