---
title: Media card
description: >
The media card composition pattern pairs visual content (images, videos,
illustrations) with actionable text to help merchants understand features or
follow tutorials.
Use media cards on your homepage to introduce features, in settings to explain options, or anywhere visual context helps merchants make decisions. This composition follows proven design guidelines that help your app feel native to the Shopify admin. See [Built for Shopify requirements](/docs/apps/launch/built-for-shopify/requirements) for more details on these guidelines for apps.
api_name: app-home
source_url:
html: 'https://shopify.dev/docs/api/app-home/patterns/compositions/media-card'
md: 'https://shopify.dev/docs/api/app-home/patterns/compositions/media-card.md'
---
# Media card
The media card composition pattern pairs visual content (images, videos, illustrations) with actionable text to help merchants understand features or follow tutorials.
Use media cards on your homepage to introduce features, in settings to explain options, or anywhere visual context helps merchants make decisions. This composition follows proven design guidelines that help your app feel native to the Shopify admin. See [Built for Shopify requirements](https://shopify.dev/docs/apps/launch/built-for-shopify/requirements) for more details on these guidelines for apps.
#### Use cases
* Showcasing templates, themes, or presets with visual previews
* Displaying product or collection thumbnails with quick actions
* Presenting tutorials or guides with video or image previews
Examples
### Examples
* #### Display a media card with tappable image and footer
##### Description
Merchants can see visual content (images, illustrations) paired with actions, like tutorials or feature highlights. This pattern displays a media card with a tappable image and footer layout. The \[box]\(/docs/api/app-home/web-components/layout-and-structure/box) uses \`border\` and \`borderRadius\` for the container, the \[clickable]\(/docs/api/app-home/web-components/actions/clickable) component makes the image tappable, and the \[grid]\(/docs/api/app-home/web-components/layout-and-structure/grid) lays out the footer with title and action button.
##### jsx
```jsx
4-Pieces
View
```
##### html
```html
4-Pieces
View
```
* #### Confirm delete with Modal API
##### Description
Use the \[Modal API]\(/docs/api/app-home/apis/modal-api) to confirm deletion before removing a media card item.
##### jsx
```jsx
4-Pieces
View
Are you sure you want to delete the 4-Pieces template? This action cannot be undone.
Delete
Cancel
```
##### html
```html
4-Pieces
View
Are you sure you want to delete the 4-Pieces template? This action cannot be undone.
Delete
Cancel
```
* #### Copy link with Toast API
##### Description
Use the \[Toast API]\(/docs/api/app-home/apis/toast) to show feedback when a link is copied to the clipboard.
##### jsx
```jsx
4-Pieces
View
{
shopify.toast.show('Link copied to clipboard');
}}
/>
```
##### html
```html
4-Pieces
View
```
* #### Edit resources with Intents API
##### Description
Use the \[Intents API]\(/docs/api/app-home/apis/intents) to open Shopify's resource editor when merchants click the edit button.
##### jsx
```jsx
4-Pieces
{
await shopify.intents.invoke('edit:shopify/Product,gid://shopify/Product/123');
}}
>
Edit
```
##### html
```html
4-Pieces
Edit
```
* #### Share template with Share API
##### Description
Use the \[Share API]\(/docs/api/app-home/apis/share) to let merchants share templates via the native share sheet on mobile devices.
##### jsx
```jsx
4-Pieces
View
{
try {
await navigator.share({
text: 'Check out this puzzle template!',
url: 'https://example.com/puzzles/4-pieces',
});
} catch (err) {
console.log('Share cancelled or failed');
}
}}
/>
```
##### html
```html
4-Pieces
View
```