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.
Link
The link component makes text interactive, allowing users to navigate to other pages or perform specific actions. Use link for navigation, external references, or triggering actions while maintaining standard link semantics and accessibility.
Supported targets
- Customer
Account::Kitchen Sink - customer-account.
footer. render-after - customer-account.
order-index. announcement. render - customer-account.
order-index. block. render - customer-account.
order-status. announcement. render - customer-account.
order-status. block. render - customer-account.
order-status. cart-line-item. render-after - customer-account.
order-status. cart-line-list. render-after - customer-account.
order-status. customer-information. render-after - customer-account.
order-status. fulfillment-details. render-after - customer-account.
order-status. payment-details. render-after - customer-account.
order-status. return-details. render-after - customer-account.
order-status. unfulfilled-items. render-after - customer-account.
order. action. menu-item. render - customer-account.
order. action. render - customer-account.
order. page. render - customer-account.
page. render - customer-account.
profile. addresses. render-after - customer-account.
profile. announcement. render - customer-account.
profile. block. render - customer-account.
profile. company-details. render-after - customer-account.
profile. company-location-addresses. render-after - customer-account.
profile. company-location-payment. render-after - customer-account.
profile. company-location-staff. render-after - customer-account.
profile. payment. render-after
Supported targets
- Customer
Account::Kitchen Sink - customer-account.
footer. render-after - customer-account.
order-index. announcement. render - customer-account.
order-index. block. render - customer-account.
order-status. announcement. render - customer-account.
order-status. block. render - customer-account.
order-status. cart-line-item. render-after - customer-account.
order-status. cart-line-list. render-after - customer-account.
order-status. customer-information. render-after - customer-account.
order-status. fulfillment-details. render-after - customer-account.
order-status. payment-details. render-after - customer-account.
order-status. return-details. render-after - customer-account.
order-status. unfulfilled-items. render-after - customer-account.
order. action. menu-item. render - customer-account.
order. action. render - customer-account.
order. page. render - customer-account.
page. render - customer-account.
profile. addresses. render-after - customer-account.
profile. announcement. render - customer-account.
profile. block. render - customer-account.
profile. company-details. render-after - customer-account.
profile. company-location-addresses. render-after - customer-account.
profile. company-location-payment. render-after - customer-account.
profile. company-location-staff. render-after - customer-account.
profile. payment. render-after
Anchor to PropertiesProperties
Configure the following properties on the Link component.
- Anchor to accessibilityLabelaccessibilityLabelaccessibilityLabelstringstring
A label used for buyers using assistive technologies. When set, any
childrensupplied to this component will not be announced to screen reader users.- Anchor to activateActionactivateActionactivateAction'auto' | 'copy''auto' | 'copy'Default: 'auto' - a default action for the target component.Default: 'auto' - a default action for the target component.
- Anchor to activateTargetactivateTargetactivateTargetstringstring
ID of a component that should respond to activations (e.g. clicks) on this pressable.
See
for how to control the behavior of the target.- Anchor to appearanceappearanceappearance'monochrome''monochrome'
Specify the color of the link.
monochromewill take the color of its parent.- Anchor to externalexternalexternalbooleanboolean
Open the link in a new window or tab. If the link points to a domain other than your Storefront, it will always open in a new tab.
- Anchor to idididstringstring
Unique identifier.
Typically used as a target for another component’s controls to associate an accessible label with an action.
- Anchor to languagelanguagelanguagestringstring
Indicate the text language. Useful when the text is in a different language than the rest of the page. It will allow assistive technologies such as screen readers to invoke the correct pronunciation. Reference of values ("subtag" label)
- Anchor to onPressonPressonPress() => void() => void
Callback when pressed. If
tois set, it will execute the callback and then navigate to the location specified byto.- Anchor to overlayoverlayoverlayRemoteFragmentRemoteFragment
An overlay component to render when the user interacts with the component.
- Anchor to tototostringstring
Destination to navigate to. You must provide either this property,
, or both.- Anchor to togglestogglestogglesstringstring
The component's identifier whose visibility will be toggled when this component is actioned.
Anchor to ExamplesExamples
Anchor to Link to a pageLink to a page
Add a text link that navigates to an external page. This example displays a link pointing to a sustainability fund URL.Link to a page

Link to a page
React
import {
reactExtension,
Link,
} from '@shopify/ui-extensions-react/customer-account';
export default reactExtension(
'customer-account.page.render',
() => <Extension />,
);
function Extension() {
return (
<Link to="https://www.shopify.ca/climate/sustainability-fund">
Sustainability fund
</Link>
);
}JS
import {extension, Link} from '@shopify/ui-extensions/customer-account';
export default extension('customer-account.page.render', (root) => {
const link = root.createComponent(
Link,
{to: 'https://www.shopify.ca/climate/sustainability-fund'},
'Sustainability fund',
);
root.appendChild(link);
});Anchor to Open a link in a new tabOpen a link in a new tab
Navigate to an external page without leaving the current page by opening it in a separate tab. This example shows a link with the external prop for a terms of service page.Open a link in a new tab
React
import {
reactExtension,
Link,
} from '@shopify/ui-extensions-react/customer-account';
export default reactExtension(
'customer-account.page.render',
() => <Extension />,
);
function Extension() {
return (
<Link to="https://www.shopify.com/legal/terms" external>
Terms of service
</Link>
);
}JS
import {extension, Link} from '@shopify/ui-extensions/customer-account';
export default extension('customer-account.page.render', (root) => {
const link = root.createComponent(
Link,
{to: 'https://www.shopify.com/legal/terms', external: true},
'Terms of service',
);
root.appendChild(link);
});Anchor to Use a monochrome linkUse a monochrome link
Render a link that inherits its parent's color using the appearance="monochrome" prop. This is useful for links within colored containers or banners.Use a monochrome link
React
import {
reactExtension,
Link,
} from '@shopify/ui-extensions-react/customer-account';
export default reactExtension(
'customer-account.page.render',
() => <Extension />,
);
function Extension() {
return (
<Link to="https://www.shopify.com" appearance="monochrome">
Learn more
</Link>
);
}JS
import {extension, Link} from '@shopify/ui-extensions/customer-account';
export default extension('customer-account.page.render', (root) => {
const link = root.createComponent(
Link,
{to: 'https://www.shopify.com', appearance: 'monochrome'},
'Learn more',
);
root.appendChild(link);
});Anchor to Best practicesBest practices
- Use links for navigation: Reserve links for navigation and use buttons for actions.
- Consider button for standalone links: If the link isn't in a paragraph, consider using a plain button instead for a larger hit area.
- Use consistently with buttons: Links and buttons include style and accessibility information. Use these components intentionally and consistently to provide a more inclusive experience.
Anchor to LimitationsLimitations
- Links can't be disabled. If you need a disabled interactive element, use button instead.