# Button Buttons enable the merchant to initiate actions, like "add", "save", or "next". ```tsx import React from 'react' import { Button, Navigator, Screen, reactExtension, useApi } from '@shopify/ui-extensions-react/point-of-sale' const ModalComponent = () => { const api = useApi() return ( <Navigator> <Screen title="Home" name="Home"> <Button title="Press me!" onPress={() => api.toast.show('Button tapped!')} /> </Screen> </Navigator> ) } export default reactExtension('pos.home.modal.render', () => { return <ModalComponent /> }) ``` ```ts import { Button, Navigator, Screen, extension, } from '@shopify/ui-extensions/point-of-sale'; export default extension( 'pos.home.modal.render', (root, api) => { const button = root.createComponent(Button, { title: 'Press me!', onPress: () => { api.toast.show('Button tapped!'); }, }); const screen = root.createComponent(Screen, { name: 'Home', title: 'Home', }); screen.append(button); const navigator = root.createComponent(Navigator); navigator.append(screen); root.append(navigator); }, ); ``` ## Button ### ButtonProps ### isDisabled value: `boolean` Sets whether the `Button` can be tapped. ### isLoading value: `boolean` Sets whether the `Button` is displaying an animated loading state. ### onPress value: `() => void` The callback that is executed when the user taps the button. ### title value: `string` The text set on the `Button`. Note: When using a Button for menu-item targets, the title will be ignored. The text on the menu-item will be the extension's description. ### type value: `ButtonType` The type of `Button` to render. Determines the appearance of the button. ## ButtonType Determines the appearance of the button.