--- 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 ```