Chakra provides multiple ways to use icons in your project:
🚨 Avoid passing
onClick
handlers to icon components. If you need a clickable icon, use the IconButton instead.
Chakra maintains an official library of icons for you to use in your project!
Import the icons from @chakra-ui/icons
and style them with
style props.
Below is a list of all of the icons in the library, along with the corresponding component names:
<AddIcon/>
<ArrowBackIcon/>
<ArrowDownIcon/>
<ArrowForwardIcon/>
<ArrowLeftIcon/>
<ArrowRightIcon/>
<ArrowUpIcon/>
<ArrowUpDownIcon/>
<AtSignIcon/>
<AttachmentIcon/>
<BellIcon/>
<CalendarIcon/>
<ChatIcon/>
<CheckIcon/>
<CheckCircleIcon/>
<ChevronDownIcon/>
<ChevronLeftIcon/>
<ChevronRightIcon/>
<ChevronUpIcon/>
<CloseIcon/>
<CopyIcon/>
<DeleteIcon/>
<DownloadIcon/>
<DragHandleIcon/>
<EditIcon/>
<EmailIcon/>
<ExternalLinkIcon/>
<HamburgerIcon/>
<InfoIcon/>
<InfoOutlineIcon/>
<LinkIcon/>
<LockIcon/>
<MinusIcon/>
<MoonIcon/>
<NotAllowedIcon/>
<PhoneIcon/>
<PlusSquareIcon/>
<QuestionIcon/>
<QuestionOutlineIcon/>
<RepeatIcon/>
<RepeatClockIcon/>
<SearchIcon/>
<Search2Icon/>
<SettingsIcon/>
<SmallAddIcon/>
<SmallCloseIcon/>
<SpinnerIcon/>
<StarIcon/>
<SunIcon/>
<TimeIcon/>
<TriangleDownIcon/>
<TriangleUpIcon/>
<UnlockIcon/>
<UpDownIcon/>
<ViewIcon/>
<ViewOffIcon/>
<WarningIcon/>
<WarningTwoIcon/>
Chakra makes it easy to use third-party icon libraries like
react-icons
.
Wrap your third-party icon of choice with the Icon
component using the as
prop and style them using style props.
Chakra provides two methods for creating your own icons:
They can be imported from @chakra-ui/core
:
Both Icon
and createIcon
enable you to style the icon using
style props.
Icon
component#The Icon
component renders as an svg
element.
This enables you to define your own custom icon components:
And style them with style props:
createIcon
function#The createIcon
function is a convenience wrapper around the process of
generating icons with Icon
, allowing you to achieve the same functionality
with less effort.
svg
from Figma,
Sketch, etc.When children
is not provided, the Icon
component renders a fallback icon.
Icon
props#Name | Type | Default | Description |
---|---|---|---|
viewBox | string | 0 0 24 24 | The viewBox of the icon. |
boxSize | string | 1em | The size of the icon. |
color | string | currentColor | The color of the icon. |
focusable | boolean | false | Denotes that the icon is not an interative element, and only used for presentation. |
role | presentation , img | presentation | The html role of the icon. |
children | React.ReactNode | The Path or Group of the icon |
createIcon
options#Name | Type | Default | Description |
---|---|---|---|
viewBox | string | 0 0 24 24 | The viewBox of the icon. |
d | string | The pathDefinition of the icon. | |
path | `React.ReactNode | React.ReactNode[]` | |
displayName | string | The display name useful in the dev tools |