Version 2025-07 is the last API version to support React-based UI components. Later versions use web components, native UI elements with built-in accessibility, better performance, and consistent styling with Shopify's design system. Check out the migration guide to upgrade your extension.
UI components
Actions
Button
Buttons are used for actions, such as “Add”, “Continue”, “Pay now”, or “Save”.


Clipboard
Enables clipboard functionality when its id is referenced by the property of a Button, Pressable, or Link component.
Customer
A modal to complete an order action flow.
Link
Link makes text interactive so customers can perform an action, such as navigating to another location.
Menu
Use a menu to display a list of actions in a popover.
Pressable
Pressable is a generic interactive component.
Resource
Use to represent a specific object within a collection, that a customer can take action on.
Feedback and status indicators
Badge
Use badges to highlight contextual information, like a label or a status, about an object.
Banner
Use banners to communicate important messages to customers in a prominent way.
Progress
Use to visually represent the completion of a task or process.
Spinner
Spinner is used to notify buyers that their action is being processed.
Forms
Checkbox
Use checkboxes to give customers a single binary option, such as signing up for marketing, or agreeing to terms and conditions.
Choice
Options inside a .
Choice
Use choice lists to present a list of choices where buyers can make a single selection or multiple selections.
Consent
Use buyer consent checkboxes for collecting the buyer's approval for a given policy.
Consent
Display a phone field for customers to sign up for text message marketing, noting that the phone field value will be automatically saved during checkout.
Date
Use a date field to get a date input from a customer.
Date
The DatePicker component is a calendar picker UI that allows users to select a single date or a date range
Drop
DropZone allows file uploads through drag-and-drop functionality into a designated area on a page, or by activating a button.
Form
The form component should be used to wrap one or more form controls.
Phone
A PhoneField is an input field that merchants can type into optimized for phone numbers with a country code base auto-formatting.
Select
Selects let buyers choose one option from an options menu.
Stepper
Use a stepper to increase or decrease a value, like changing the quantity from 1 to 2.
Switch
Use a switch to represent an on or off state that takes effect immediately when tapped.
Text
Use a text field to get text input from a customer.
Toggle
Options inside a ToggleButtonGroup.
Toggle
allows you to make a single choice out of the number of options provided.
Layout and structure
Block
BlockLayout is used to lay out content over multiple rows.
Block
BlockSpacer is used to create empty block space, typically when variable spacing is needed between multiple elements.
Block
BlockStack is used to vertically stack elements.
Card
Group related content and functionality together in a familiar and consistent style, for customers to scan, read, and get things done.
Divider
A divider separates content and represents a thematic break between elements.
Grid
Grid is used to lay out content in a matrix of rows and columns.
Grid
GridItem can be used as children of Grid.
Inline
InlineLayout is used to lay out content over multiple columns.
Inline
InlineSpacer is used to create empty inline space, typically when variable spacing is needed between multiple elements.
Inline
InlineStack is used to lay out a horizontal row of elements.
Page
The outer wrapper of the page—including the page title, subtitle, and page-level actions—displayed in a familiar and consistent style that sets expectations about the purpose of the page.
Scroll
ScrollView 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.
Style
This is a helper for authoring conditional values for property styles.
View
View is a generic container component.
Media and visuals
Avatar
Avatar component is used to show a thumbnail representation of an individual or business in the interface.
Icon
Icons are pictograms or graphic symbols.
Image
Image is used for large format, responsive images.
Image
Display up to 4 images in a grid or stacked layout.
Map
Use the Map component to provide visual representation of geographic data such as verifying address, package or pickup locations.
Map
MapMarker represents a specific location or point of interest on a map.
Map
MapPopover provides additional information or context about a specific location or point of interest on a map.
Payment
Payment icons can be used for displaying payment-related information or features such as a user’s saved or available payment methods.
Product
Product thumbnail is a representation of a product image.
QR
Used to quickly access scannable data.
Skeleton
SkeletonImage is used to provide a low fidelity representation of an image before it appears on the page.
Overlays
Chat
Use the Chat component to create real-time chat applications.
Modal
Modals are a special type of overlay that shift focus towards a specific action/set of information before the main flow can proceed.
Popover
Popovers are similar to tooltips.
Sheet
The Sheet component displays essential information for customers at the bottom of the screen, appearing above other elements.
Tooltip
Tooltips are floating labels that briefly explain the function of a user interface element.
Typography and content
Disclosure
Disclosure 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.
Heading
Headings control the visual style of headings.
Heading
Heading group controls the heading level of headings nested within it, like H1, H2, H3.
List
Lists display a set of related content.
List
List items are used as children of the List component.
Skeleton
SkeletonText is used to provide a low fidelity representation of text content before it appears on the page.
Skeleton
SkeletonTextBlock is used to provide a low fidelity representation of a block of text before it appears on the page.
Tag
A Tag is used to help label, organize or categorize objects.
Text
Text is used to visually style and provide semantic value for a small piece of text content.
Text
Text block is used to render a block of text that occupies the full width available, like a paragraph.