Shopify / ui-extensions

MIT License
269 stars 35 forks source link

UI Extensions

This repo contains the public definition of Shopify’s UI extension API. App developers can use these libraries for a strongly-typed, optimized development experience that lets them focus on integrating their app’s features deep into Shopify workflows. You can learn more about what is possible with UI extensions in Shopify’s developer documentation.

Note: UI extensions are a versioned API. This branch contains the APIs for the unstable API version. The following API versions are available as separate branches in this repo: 2023-04, 2023-07

Shopify provides different “variants” of UI extension APIs that are suitable for different developers:

What are “UI extensions”?

A UI extension is a JavaScript-based module that can hook in to client-side behaviors on any of Shopify’s first party UI surface areas. The most minimal definition of a UI extension has the following properties, which are configured in a shopify.extension.toml file in your project:

The types in this package allow us to represent additional details about the targets developers can implement. Each target can have a custom set of APIs available to it, which includes:

UI extensions are built on an open source project called, remote-ui, which allows them to render native UI elements while being safely sandboxed. If you want to learn more, we’ve written a technical explanation of how extensions work under the hood.