Button in their variant forms typically allowusers to perform an action when clicked. They can be used in different components for different purposes. Like;

  • Alert Component
  • Form Component


Chakra UI Vue exports 2 button related components

  • CButton: The button component with support for other features like icons, and spinners.
  • CButtonGroup: The button group component for pair buttons with related functions
import { CButtton, CButtonGroup } from '@chakra-ui/vue-next';



Button Sizes

Use the size prop to change the size of the button. You can set the value to xs, sm, md, or lg.

<c-button size="xs" mr="3" color-scheme="teal"> Button </c-button><c-button size="sm" mr="3" color-scheme="teal"> Button </c-button><c-button size="md" mr="3" color-scheme="teal"> Button </c-button><c-button size="lg" mr="3" color-scheme="teal"> Button </c-button>

Button Variants

You can change the button style to either solid ghost outline or link by applying the variant prop.

<c-button mr="3" variant="luxury"> Button </c-button><c-button mr="3" variant="solid" color-scheme="teal"> Button </c-button><c-button mr="3" variant="outline" color-scheme="teal"> Button </c-button><c-button mr="3" variant="ghost" color-scheme="teal"> Button </c-button><c-button mr="3" variant="link" color-scheme="teal"> Button </c-button>

Button with Icon

You can change the button style to either solid ghost outline or link by applying the variant prop.

<c-button mr="3" left-icon="email" variant="solid" color-scheme="teal">  Base button
</c-button><c-button mr="3" right-icon="star" variant="outline" color-scheme="teal">  Base button

Button Loading State

You can set the loading props on a button when it is loading,to indicate it is carrying out an action by using the :is-loading props to set an onClick action.

<c-button  mr="3"  :is-loading="isLoading"  color-scheme="teal"  loading-text="Saving..."  size="lg"  color="white"  font-size="sm"  @click="doTask">  Click me
</c-button><c-button  mr="3"  :is-loading="isLoading"  @click="doTask"  color-scheme="purple"  size="lg"  font-size="sm">  Click me

Button Group

You can use the CButtonGroup component to group buttons. When you use the ButtonGroup component, it allows you to:

  • Set the size and variant of all buttons within it.
  • Add spacing between the buttons.
  • Flush the buttons together by removing the border radius of their children as needed.
<c-button-group variant="outline">  <c-button color-scheme="blue">Proceed</c-button>  <c-button>Cancel</c-button></c-button-group>


  • Button has role of button.
  • When Button has focus, Space or Enter activates it.


All props you pass variant, colorScheme, size etc are converted to style props. This therefore means you can override any style of the Button via props.

<c-button  size="md"  height="48px"  width="200px"  border="2px"  border-radius="sm"  color-scheme="blue"  variant="outline">  Button

Customizable Button

You can pass-in other props to make fully customizable buttons, you can do this easily by defining each props based on your button composition.

<c-button  border="1px solid rgba(47, 43, 67, 0.1)"  border-radius="12px"  mr="3"  variant="outline"  box-shadow="0px 1px 3px rgba(47, 43, 67, 0.1), inset 0px -1px 0px rgba(47, 43, 67, 0.1)"  bg="transparent"  size="lg">  Button

Edit this page on GitHub