--- title: Pressable description: Pressable wraps components to add interactivity with rendering a UI element. api_name: product-subscription-extensions source_url: html: >- https://shopify.dev/docs/api/product-subscription-extensions/components/pressable md: >- https://shopify.dev/docs/api/product-subscription-extensions/components/pressable.md --- ExpandOn this page * [Props](https://shopify.dev/docs/api/product-subscription-extensions/components/pressable.md#props) * [Guidelines](https://shopify.dev/docs/api/product-subscription-extensions/components/pressable.md#guidelines) # Pressable Deprecated Product subscription app extensions won't be supported as of February 9, 2026. You should migrate existing product subscription app extensions to [purchase options extensions](https://shopify.dev/docs/apps/build/purchase-options/purchase-options-extensions). Pressable wraps components to add interactivity with rendering a UI element. Wrap small UI elements in Pressable to perform actions that don’t fit Button or Link. ##### JavaScript ```ts import {extend, Pressable, Text} from '@shopify/admin-ui-extensions'; extend('Playground', (root) => { const pressable = root.createComponent(Pressable, { onPress: () => console.log('I’ve been pressed!'), }); const pressableText = root.createComponent(Text); pressableText.appendChild('I can be pressed'); pressable.appendChild(pressableText); root.appendChild(pressable); root.mount(); }); ``` ##### React ```tsx import React from 'react'; import {extend, render, Pressable} from '@shopify/admin-ui-extensions-react'; function App() { return console.log('I’ve been pressed!')}>I can be pressed; } extend( 'Playground', render(() => ), ); ``` *** ## Props optional = ? | Name | Type | Description | | - | - | - | | onPress | `() => void` | Callback for the pressable. | *** ## Guidelines * 📱 All children of Pressables are placed in a single view object, which makes recycling the views expensive. Consider keeping your Pressable simple. * 📱 Do not nest Layouts within Pressable. This will result in unintended behavior * Do not nest other Action components (Button, Link) within Pressable. This will result in unexpected behavior. * 📱 A child of Pressable with `onPress` will take precedence and not call Pressable's `onPress` * 🖥 Both the child of Pressable with `onPress` and Pressable's `onPress` will activate if the child is pressed. | ✅ Do | 🛑 Don't | | - | - | | 📱 Keep Pressable shallow. Complex hierarchies have performance penalties | Wrap Button or Link | | Wrap small UI elements in Pressable to perform actions that don’t fit Button or Link. | Wrap Layout components | *** * [Props](https://shopify.dev/docs/api/product-subscription-extensions/components/pressable.md#props) * [Guidelines](https://shopify.dev/docs/api/product-subscription-extensions/components/pressable.md#guidelines)