Skip to main content

Card

Deprecated

Product subscription app extensions won't be supported as of December 3, 2025. You should migrate existing product subscription app extensions to purchase options extensions.

Cards are used to group similar concepts and tasks together to make Shopify easier for merchants to scan, read, and get things done.

The action API should be used to create actionable components for the card. Cards should be contained, independent, and individual.

import {extend, Card} from '@shopify/admin-ui-extensions';

extend('Playground', (root) => {
const card = root.createComponent(Card, {});

card.appendChild('This is the best extension.');
root.appendChild(card);

root.mount();
});
import React from 'react';
import {extend, render, Card} from '@shopify/admin-ui-extensions-react';

function App() {
return <Card>This is the best extension.</Card>;
}

extend(
'Playground',
render(() => <App />),
);

optional = ?

NameTypeDescription
title?stringTitle content for the card
sectioned?booleanAutomatically wrap each child component in a Card.Section
primaryFooterAction?DestructableActionPrimary action for the card footer
secondaryFooterActions?DestructableAction[]Secondary actions for the card footer
actions?DisableableAction[]Card header action

NameTypeDescription
contentstringAction label text.
onAction?() => voidCallback for the action.
disabled?boolean

NameTypeDescription
contentstringAction label text.
onAction?() => voidCallback for the action.
destructive?booleanIndicates a dangerous or potentially negative action.

  • 📱 Do not nest Cards within another component. This will result in unintended behavior, and will not render correctly
✅ Do🛑 Don't
Cards should be at the top level of the component hierarchyUse too many secondary actions

For more guidelines, refer to Polaris' Card best practices.


Was this page helpful?