Button | UI components (BETA)
APPLICABLE PRODUCTS
-
Sales Hub
- Enterprise
-
Service Hub
- Enterprise
The Button
component renders a single button. Use this component to enable users to perform actions, such as submitting a form, sending data to an external system, or deleting data.
Button text is passed into the component like a standard HTML element, rather than through a prop.
- Button text: the visible button text that describes the button's action.
- Variant: the color of the button. Learn more about available button variants below.
Prop | Type | Description |
---|---|---|
href |
Object | Include this prop to open a URL on click. Contains the following fields:
href and an onClick action, both will be executed on button click. |
onClick |
() => void | A function that will be invoked when the button is clicked. It receives no arguments and it's return value is ignored. |
disabled |
Boolean | When set to true , the button will render in a greyed-out state and cannot be clicked. |
variant |
'primary' | 'secondary' (default) | 'destructive' | 'transparent' |
Sets the color of the button. See variants section for more information. |
type |
'button' (default) | 'reset' | 'submit' |
Sets the role HTML attribute of the button. |
size |
'xs' , 'extra-small' | 'sm' , 'small' | 'med' , 'medium' (default) |
The size of the button. |
Using the
variant
prop, you can set the color of the button.- Primary: a dark blue button for the most frequently used or most important action on an extension. Each extension should only have one primary button.
- Secondary: a grey button to provide alternative or non-primary actions. Each extension should include no more than two secondary buttons.
- Destructive: a red button for actions that delete, disconnect, or perform any action that the user can't undo. Button text should clearly communicate what is being deleted or disconnected. After a destructive button is clicked, the user should have to verify or confirm the action.
- Transparent: a button with the background and border color removed, styled like a hyperlink.
Please note: HubSpot does not provide variant options for the orange buttons you’ll find across the app (both solid and outlined). Those color variants are reserved for the HubSpot product, which helps to maintain the hierarchy of available actions on a given page.
- Use a
primary
button at the end of a form to submit data to another system. - Use a
secondary
button next to a primary form submit button to reset form fields. - Use a
destructive
button to enable users to delete a contact's data from an external system. - Set a button to
disabled
when a contact doesn't qualify for a form submission due to missing criteria or other ineligibility.
- DO: set button text that clearly communicates what action will occur when a user clicks it. Text should be unambiguous and concise (~2-4 words).
- DO: use sentence-casing for button text (only the first word capitalized)
- DO: minimize the number of buttons that appear on a page record across all extensions.
- DO: always open links to pages outside of the HubSpot app in a new tab (
external: true
). - DON'T: include multiple primary buttons in a single extension.
- DON'T: use a destructive button unless the consequences are significant or irreversible.
Thank you for your feedback, it means a lot to us.
This form is used for documentation feedback only. Learn how to get help with HubSpot.