Use badges to highlight contextual information, like a label or a status, about an object. An object can be anything that has a status or label attributed to it, like an order or subscription.
View BadgeUse banners to communicate important messages to customers in a prominent way.
View BannerBlockLayout is used to lay out content over multiple rows. By default, all rows fill the available block space, sharing it equally.
View BlockLayoutBlockSpacer is used to create empty block space, typically when variable spacing is needed between multiple elements. Note that you should favor BlockStack when spacing between all elements is the same.
View BlockSpacerBlockStack is used to vertically stack elements.
View BlockStackButtons are used for actions, such as “Add”, “Continue”, “Pay now”, or “Save”.
View ButtonUse checkboxes to give customers a single binary option, such as signing up for marketing, or agreeing to terms and conditions.
View CheckboxOptions inside a `ChoiceList`. The wrapping `ChoiceList` component will dictate if the choice renders as radio buttons or checkboxes.
View ChoiceUse choice lists to present a list of choices where buyers can make a single selection or multiple selections.
View ChoiceListUse buyer consent checkboxes for collecting the buyer's approval for a given policy.
View ConsentCheckboxDisplay a phone field for customers to sign up for text message marketing, noting that the phone field value will be automatically saved during checkout.
View ConsentPhoneFieldUse a date field to get a date input from a customer.
View DateFieldThe DatePicker component is a calendar picker UI that allows users to select a single date or a date range
View DatePickerDisclosure is an optionally controlled component used to put long sections of information under content blocks that users can expand or collapse by pressing an activator. The activator can be specified as children using an action component (`Button`, `Link` or `Pressable`) or `Checkbox` component. The content blocks can be specified as children inside a structure component (`View`, `InlineLayout`, `BlockStack`, `Grid`, etc.). The library automatically applies the [WAI-ARIA Accordion pattern](https://www.w3.org/WAI/ARIA/apg/patterns/accordion/) to both the activator and the toggled content.
View DisclosureA divider separates content and represents a thematic break between elements.
View DividerThe form component should be used to wrap one or more form controls. This component provides an "implicit submit" behavior, where customers can submit the form from any input by pressing "Enter" on their keyboards. This behavior is widely expected, and should be respected as often as possible. Unlike an HTML `form` element, this component does not support configuring the descendant fields to be submitted via HTTP automatically. Instead, you must provide an `onSubmit` callback that will perform the necessary HTTP requests in JavaScript.
View FormGrid is used to lay out content in a matrix of rows and columns.
View GridGridItem can be used as children of Grid. It offers a way to span the element across a number of columns and rows.
View GridItemHeadings control the visual style of headings. Use headings to introduce major sections, like Contact information, Shipping address, or Shipping method. Unlike HTML headings, you don’t explicitly specify the position of the heading in the document outline. Nest headings within the heading group component to control the document outline structure used by assistive technologies.
View HeadingHeading group controls the heading level of headings nested within it, like H1, H2, H3. Use a heading group whenever you use a heading to ensure the experience is the same for screen reader users. When using a heading, any children related to that heading should be nested within the same heading group.
View HeadingGroupIcons are pictograms or graphic symbols. They can act as wayfinding tools or as a means of communicating functionality.
View IconImage is used for large format, responsive images.
View ImageInlineLayout is used to lay out content over multiple columns. By default, all columns are of equal size and fill the available inline space. Content does not wrap on new rows when not enough columns have been explicitly set, instead they are added as new column and fill the remaining inline space.
View InlineLayoutInlineSpacer is used to create empty inline space, typically when variable spacing is needed between multiple elements. Note that you should favor InlineStack when spacing between all elements is the same.
View InlineSpacerInlineStack is used to lay out a horizontal row of elements. Elements always wrap.
View InlineStackLink makes text interactive so customers can perform an action, such as navigating to another location.
View LinkLists display a set of related content. Each list item usually begins with a bullet or a number.
View ListList items are used as children of the `List` component. They usually begins with a bullet or a number.
View ListItemUse the Map component to provide visual representation of geographic data such as verifying address, package or pickup locations. Please note that the merchant or partner has to provide an API key and a set of allowed domains where the map would render. The 3 necessary domains needed are: - `https://*.[MERCHANT-DOMAIN].com` - `https://shop.app` - `https://shopify.com` Where `*` is a wildcard. Learn more about [match patterns](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns). Please refer to the [Google Maps Platform documentation](https://developers.google.com/maps/documentation/javascript/get-api-key) for more details on how to get an API key.
View MapMapMarker represents a specific location or point of interest on a map.
View MapMarkerMapPopover provides additional information or context about a specific location or point of interest on a map.
View MapPopoverModals are a special type of overlay that shift focus towards a specific action/set of information before the main flow can proceed. They must be specified inside the `overlay` prop of an activator component (`Button`, `Link` or `Pressable`). The library automatically applies the [WAI-ARIA Dialog pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/) to both the activator and the modal content.
View ModalPayment icons can be used for displaying payment-related information or features such as a user’s saved or available payment methods.
View PaymentIconA PhoneField is an input field that merchants can type into optimized for phone numbers with a country code base auto-formatting. The country code is required for the initial render of the field but it can be overriden later by the user either by selecting a country in the country selection dropdown or by manually editing the country phone code directly in the text field.
View PhoneFieldPopovers are similar to tooltips. They are small overlays that open on demand after a user interaction. The difference is that the popover can contain more content, without cluttering the page. They must be specified inside the `overlay` prop of an activator component (`Button`, `Link` or `Pressable`). The library automatically applies the WAI-ARIA Popover Widget pattern to both the activator and the popover content.
View PopoverPressable is a generic interactive component. It shares the same styling properties as View but also adds pressable behavior, meaning that you can execute some logic in response to user interaction. Use this component for creating interactive elements without the default styling that comes with `Button` and `Link`.
View PressableProduct thumbnail is a representation of a product image. It provides a visual preview of the item, so buyers can quickly identify products.
View ProductThumbnailUse to visually represent the completion of a task or process.
View ProgressScrollView is a container for long form content, such as order summary line items, that allows for scrolling so customers can expose more content as they view.
View ScrollViewSelects let buyers choose one option from an options menu. Consider select when you have 4 or more options, to avoid cluttering the interface.
View SelectThe Sheet component displays essential information for customers at the bottom of the screen, appearing above other elements. Use it sparingly to avoid distracting customers during checkout. This component requires access to [Customer Privacy API](/docs/api/checkout-ui-extensions/2024-07/configuration#collect-buyer-consent) to be rendered. The library automatically applies the [WAI-ARIA Dialog pattern](https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/) to both the activator and the sheet content.
View SheetSkeletonImage is used to provide a low fidelity representation of an image before it appears on the page.
View SkeletonImageSkeletonText is used to provide a low fidelity representation of text content before it appears on the page. Optionally you can use any text content inside `SkeletonText` to be used as a base for the rendered skeleton
View SkeletonTextSkeletonTextBlock is used to provide a low fidelity representation of a block of text before it appears on the page. Optionally you can use any text content inside `SkeletonTextBlock` to be used as a base for the rendered skeleton
View SkeletonTextBlockSpinner is used to notify buyers that their action is being processed. The Spinner is usually used when sending or receiving data from a server.
View SpinnerUse a stepper to increase or decrease a value, like changing the quantity from 1 to 2.
View StepperUse a switch to represent an on or off state that takes effect immediately when tapped.
View SwitchA Tag is used to help label, organize or categorize objects. It is commonly used in Checkout to display the discounts applied to a cart.
View TagText is used to visually style and provide semantic value for a small piece of text content.
View TextText block is used to render a block of text that occupies the full width available, like a paragraph.
View TextBlockUse a text field to get text input from a customer.
View TextFieldOptions inside a [ToggleButtonGroup](/docs/api/checkout-ui-extensions/components/forms/togglebuttongroup).
View ToggleButton`ToggleButtonGroup` allows you to make a single choice out of the number of options provided. This is similar to the [ChoiceList](/docs/api/checkout-ui-extensions/components/forms/choicelist) component, but without controls such as checkbox or radio button. You can utilize our layout components to arrange `ToggleButtonGroup`.
View ToggleButtonGroupTooltips are floating labels that briefly explain the function of a user interface element. They must be specified inside the `overlay` prop of an activator component. Currently, activator components are `Button`, `Link`, and `Pressable`. The library automatically applies the [WAI-ARIA Tooltip Widget pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/) to both the activator and the tooltip content. Expect screen readers to read the tooltip content when the user focuses the activator.
View TooltipView is a generic container component. Its contents will always be their “natural” size, so this component can be useful in layout components (like `Grid`, `BlockStack`, `InlineStack`) that would otherwise stretch their children to fit.
View ViewThis is a helper for authoring conditional values for property styles. Write complex conditional styles based on one or more conditions, such as viewport sizes and interactive states, in a concise and expressive way.
View StyleHelper