Skip to main content

Upgrading to 2026-01

As of 2025-10, checkout UI extensions use Polaris web components. If you are upgrading from a version earlier than 2025-10, this guide describes how to upgrade your checkout UI extension to the latest version and adopt Polaris web components.


Info

Your compiled UI extension bundle can't exceed 64 KB. Shopify enforces this limit at deployment to ensure fast loading times and optimal performance. Learn how to analyze your bundle size.


Set the API version to 2026-01 in shopify.extension.toml to use Polaris web components.


Anchor to Adjust package dependenciesAdjust package dependencies

As of 2025-10, Shopify recommends Preact for UI extensions. Update the dependencies in your package.json file and re-install.

New dependencies with Preact
Previous dependencies with React
Previous dependencies with JavaScript

Anchor to TypeScript ConfigurationTypeScript Configuration

Get full IntelliSense and auto-complete support by adding a config file for your extension at extensions/{extension-name}/tsconfig.json. You do not need to change your app's root tsconfig.json file.

New tsconfig.json
Old tsconfig.json

Anchor to Upgrade the Shopifiy CLIUpgrade the Shopifiy CLI

The new CLI adds supoort for building 2026-01 extensions.

The shopify app dev command runs your app and also generates a shopify.d.ts file in your extension directory, adding support for the new global shopify object.


Anchor to Optional ESLint configurationOptional ESLint configuration

If your app is using ESLint, update your configuration to include the new global shopify object.


Instead of accessing APIs from a callback parameter, access them from the global shopify object. Here's an example of migrating the applyAttributeChange API call.

New API calls in Preact
Previous API calls in React
Previous API calls in JavaScript

If you had previously been using React hooks, import those same hooks from a new Preact-specific package. Here's an example of migrating the useAttributeValues hook.

New hooks in Preact
Previous hooks in React

Anchor to Migrate to Polaris web componentsMigrate to Polaris web components

Polaris web components are exposed as custom HTML elements. Update your React or JavaScript components to custom elements.

New components in Preact
Previous components in React
Previous components in JavaScript

Anchor to Mapping legacy components to Polaris web componentsMapping legacy components to Polaris web components

Legacy ComponentPolaris Web ComponentMigration Notes
AbbreviationAvailable
BadgeBadgeAvailable
BannerBannerAvailable
BlockLayoutRemoved. Use Grid
BlockSpacerRemoved. Use Stack with gap property
BlockStackRemoved. Use Stack with direction=block
ButtonButtonAvailable
ChatChatComing soon
CheckboxCheckboxAvailable
ChoiceChoiceAvailable
ChoiceListChoiceListAvailable
ClipboardItemClipboardItemAvailable
ConsentCheckboxConsentCheckboxAvailable
ConsentPhoneFieldConsentPhoneFieldAvailable
DateFieldDateFieldAvailable
DatePickerDatePickerAvailable
DisclosureDetails and SummaryAvailable
DividerDividerAvailable
DropZoneDropZoneAvailable
EmailFieldAvailable
FormFormAvailable
GridGridAvailable
GridItemGridItemAvailable
HeadingHeadingAvailable
HeadingGroupSectionAvailable
IconIconAvailable
ImageImageAvailable
InlineLayoutRemoved. Use Grid
InlineSpacerRemoved. Use Stack
InlineStackStackRemoved. Use Stack with direction=inline
LinkLinkAvailable
ListUnorderedList or OrderedListAvailable
ListItemListItemAvailable
MapMapAvailable
MapMarkerMapMarkerAvailable
MapPopoverPopoverAvailable
ModalModalAvailable
MoneyFieldAvailable
PaymentIconPaymentIconAvailable
PhoneFieldPhoneFieldAvailable
PopoverPopoverAvailable
PressableClickableAvailable
ProductThumbnailProductThumbnailAvailable
ProgressProgressAvailable
QRCodeQRCodeAvailable
ScrollViewScrollBoxAvailable
SelectSelectAvailable
SheetSheetAvailable
SkeletonImageRemoved
SkeletonTextSkeletonParagraphAvailable
SkeletonTextBlockSkeletonParagraphAvailable
SpinnerSpinnerAvailable
StepperNumberFieldAvailable
SwitchSwitchAvailable
TagChip and ClickableChipAvailable
TextTextAvailable
TextField with multilineTextAreaAvailable
TextBlockParagraphAvailable
TextFieldTextFieldAvailable
TimeAvailable
ToggleButtonPressButtonAvailable
ToggleButtonGroupChoiceList or PressButtonAvailable
TooltipTooltipAvailable
ViewBoxAvailable

Was this page helpful?