Button

Buttons are controls that let users take action, make choices, and move forward.

Variants

The Button comes with four variants: primary (default), accent, secondary, and ghost.

Size

The Button comes with 5 sizes: 32, 36, 40 (default), 44, and 48.

Icons

You can place icons before the label (iconStart), after the label (iconEnd), or use an icon as the button label when the action is clearly represented by the icon.

You don't need to explicitly set the icon size. Icons inherit the correct sizing from the Button component by default.

Disabled

Use the disabled prop to prevent a button from being interacted with. Disabled buttons communicate that an action is currently unavailable.

Loading

Use the loading prop to indicate that an action is in progress. While loading, the button shows a spinner and cannot be interacted with.

Do not add disabled when using loading, as the button is automatically non-interactive while loading.

Full width

Use the fullWidth prop to make the button expand to the full width of its container.

Rounded

Use the rounded prop to give the button fully rounded corners.

Button link

Use the ButtonLink component to create a link that looks like a button. It renders an <a> element by default.

Use the as prop to render a custom link component, such as your router's Link.

<ButtonLink as={Link} label="Home" to="/" />