--- title: Button description: Triggers actions or events, such as submitting forms, opening dialogs, or navigating to other pages. Use Button to let users perform specific tasks or initiate interactions throughout the interface. Buttons can also function as links, guiding users to internal or external destinations. api_name: app-home source_url: html: https://shopify.dev/docs/api/app-home/polaris-web-components/actions/button md: https://shopify.dev/docs/api/app-home/polaris-web-components/actions/button.md --- # Button Triggers actions or events, such as submitting forms, opening dialogs, or navigating to other pages. Use Button to let users perform specific tasks or initiate interactions throughout the interface. Buttons can also function as links, guiding users to internal or external destinations. ## Properties * accessibilityLabel string A label that describes the purpose or contents of the Button. It will be read to users using assistive technologies such as screen readers. Use this when using only an icon or the Button text is not enough context for users using assistive technologies. * command '--auto' | '--show' | '--hide' | '--toggle' Default: '--auto' Sets the action the [command](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#command) should take when this clickable is activated. See the documentation of particular components for the actions they support. * `--auto`: a default action for the target component. * `--show`: shows the target component. * `--hide`: hides the target component. * `--toggle`: toggles the target component. * commandFor string Sets the element the [commandFor](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button#commandfor) should act on when this clickable is activated. * disabled boolean Disables the Button meaning it cannot be clicked or receive focus. * download string Causes the browser to treat the linked URL as a download with the string being the file name. Download only works for same-origin URLs or the `blob:` and `data:` schemes. * href string The URL to link to. * If set, it will navigate to the location specified by `href` after executing the `click` event. * If a `commandFor` is set, the `command` will be executed instead of the navigation. * icon "" | "replace" | "search" | "split" | "link" | "edit" | "product" | "variant" | "collection" | "select" | "info" | "incomplete" | "complete" | "color" | "money" | "adjust" | "affiliate" | "airplane" | "alert-bubble" | "alert-circle" | "alert-diamond" | "alert-location" | "alert-octagon" | "alert-octagon-filled" | "alert-triangle" The type of icon to be displayed in the Button. * interestFor string Sets the element the [interestFor](https://open-ui.org/components/interest-invokers.explainer/#the-pitch-in-code) should act on when this clickable is activated. * loading boolean Replaces content with a loading indicator while a background action is being performed. This also disables the Button. * target "auto" | AnyString | "\_blank" | "\_self" | "\_parent" | "\_top" Specifies where to display the linked URL. * tone "critical" | "auto" | "neutral" Sets the tone of the Button based on the intention of the information being conveyed. * type "button" | "reset" | "submit" The behavior of the Button. * `submit`: Used to indicate the component acts as a submit button, meaning it submits the closest form. * `button`: Used to indicate the component acts as a button, meaning it has no default action. * `reset`: Used to indicate the component acts as a reset button, meaning it resets the closest form (returning fields to their default values). This property is ignored if the component supports `href` or `commandFor`/`command` and one of them is set. * variant "auto" | "primary" | "secondary" | "tertiary" Changes the visual appearance of the Button. ### AnyString Prevents widening string literal types in a union to \`string\`. ```ts string & {} ``` ## Events Learn more about [registering events](https://shopify.dev/docs/api/app-home/using-polaris-components#event-handling). * blur CallbackEventListener\ | null * click CallbackEventListener\ | null * focus CallbackEventListener\ | null ### CallbackEventListener ```ts (EventListener & { (event: CallbackEvent): void; }) | null ``` ### CallbackEvent ```ts Event & { currentTarget: HTMLElementTagNameMap[T]; } ``` ## Slots * children HTMLElement The content of the Button. ### Examples * #### Code ##### Default ```html Add Product Save Theme ```