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
string
"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
string
"md"
spinner
spinner
Replace the spinner component when isLoading
is set to true
React.ReactElement
variant
variant
string
"solid"