A11y: A label that describes the button
Icon Button
IconButton composes the Button
component except that it renders only an icon.
Since IconButton
only renders an icon, you must pass the aria-label
prop, so
screen readers can give meaning to the button.
Import#
import { IconButton } from '@chakra-ui/react'
Usage#
<IconButton aria-label='Search database' icon={<SearchIcon />} />
Button Colors#
The IconButton
component accepts most of the props from the Button
component, so we can use colorScheme
prop to change the color of the button.
<IconButtoncolorScheme='blue'aria-label='Search database'icon={<SearchIcon />}/>
Button Sizes#
Like the Button component
, pass the size
prop to change the size of the
button.
<IconButtoncolorScheme='teal'aria-label='Call Segun'size='lg'icon={<PhoneIcon />}/>
Button Variants#
Like the Button
component, pass the variant
prop to change the style of the
button.
<IconButtonvariant='outline'colorScheme='teal'aria-label='Send email'icon={<EmailIcon />}/>
With custom icon#
You can also use icons from popular libraries like react-icons and just pass it into the button.
<IconButtonvariant='outline'colorScheme='teal'aria-label='Call Sage'fontSize='20px'icon={<MdPhone />}/>
Props#
aria-label
required
aria-label
required
string
colorScheme
colorScheme
"whiteAlpha" | "blackAlpha" | "gray" | "red" | "orange" | "yellow" | "green" | "teal" | "blue" | "cyan" | "purple" | "pink" | "linkedin" | "facebook" | "messenger" | "whatsapp" | "twitter" | "telegram"
"gray"
icon
icon
The icon to be used in the button.
React.ReactElement
isActive
isActive
If true
, the button will be styled in its active state.
boolean
isDisabled
isDisabled
If true
, the button will be disabled.
boolean
isLoading
isLoading
If true
, the button will show a spinner.
boolean
isRound
isRound
If true
, the button will be perfectly round. Else, it'll be slightly round
boolean
size
size
"lg" | "md" | "sm" | "xs"
"md"
spinner
spinner
Replace the spinner component when isLoading
is set to true
React.ReactElement
variant
variant
"ghost" | "outline" | "solid" | "link" | "unstyled"
"solid"