--- title: BlockStack description: Use to achieve no-fuss vertical centering. api_name: product-subscription-extensions source_url: html: >- https://shopify.dev/docs/api/product-subscription-extensions/components/blockstack md: >- https://shopify.dev/docs/api/product-subscription-extensions/components/blockstack.md --- ExpandOn this page * [Props](https://shopify.dev/docs/api/product-subscription-extensions/components/blockstack.md#props) * [Guidelines](https://shopify.dev/docs/api/product-subscription-extensions/components/blockstack.md#guidelines) # BlockStack 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). Use to achieve no-fuss vertical centering. A stack is made of flexible items that wrap each of the stack’s children. Options provide control of the alignment and spacing of the items in the stack. Use `StackItem` to group multiple elements inside a `BlockStack` together. ##### JavaScript ```ts import {extend, BlockStack, Text} from '@shopify/admin-ui-extensions'; function buildStackText(root) { const text = root.createComponent(Text); text.appendChild('Items to stack'); return text; } extend('Playground', (root) => { const blockStack = root.createComponent(BlockStack, { inlineAlignment: 'center', spacing: 'loose', }); blockStack.appendChild(buildStackText(root)); blockStack.appendChild(buildStackText(root)); blockStack.appendChild(buildStackText(root)); root.appendChild(blockStack); root.mount(); }); ``` ##### React ```tsx import React from 'react'; import {extend, render, BlockStack, Text} from '@shopify/admin-ui-extensions-react'; function App() { return ( Items to stack Items to stack Items to stack ); } extend( 'Playground', render(() => ), ); ``` *** ## Props optional = ? | Name | Type | Description | | - | - | - | | inlineAlignment? | `"leading" \| "center" \| "trailing"` | Specifies the inline alignment. This affects the horizontal flow of elements. Default value: `"leading"` | | spacing? | `Spacing` | Adjusts spacing between children. Default value: `"base"` | *** ## Guidelines * 📱 All children of `BlockStack` are placed in a single view object, which makes recycling the views expensive and results in poorer performance when scrolling. Consider keeping your Stacks simple. * By default, `BlockStack` alignment is `'leading’`. | ✅ Do | 🛑 Don't | | - | - | | Keep Stacks narrow. There is typically more vertical space than horizontal | Use complex and deep Stack layouts | For more guidelines, refer to Polaris' [Stack best practices](https://polaris.shopify.com/components/layout-and-structure/stack#best-practices). *** * [Props](https://shopify.dev/docs/api/product-subscription-extensions/components/blockstack.md#props) * [Guidelines](https://shopify.dev/docs/api/product-subscription-extensions/components/blockstack.md#guidelines)