Skip to Content
Referencefusion-uiComponentsControlsIconButton

IconButton

The IconButton component is a clickable element that displays only an icon, designed for actions where a text label is not necessary. It’s a square button with minimal styling, perfect for toolbars and compact interfaces.


<IconButton icon={Icon.Favorite} />

Features

The IconButton component is a versatile component that can be used in a variety of ways.

Variants

Icon buttons come in different variants to indicate different levels of emphasis:


<Row gap={400}>
  <IconButton variant="primary" icon={Icon.Favorite} />
  <IconButton variant="secondary" icon={Icon.Favorite} />
  <IconButton variant="tertiary" icon={Icon.Favorite} />
</Row>

Sizes

Adjust the size of icon buttons with the size prop:


<Row gap={400} align="center">
  <IconButton size="small" icon={Icon.Close} />
  <IconButton size="medium" icon={Icon.Close} />
  <IconButton size="large" icon={Icon.Close} />
</Row>

Disabled State

You can disable an IconButton to prevent user interaction.


<IconButton icon={Icon.Favorite} disabled />

Anatomy

1.ButtonThe button element.
2.IconThe icon component.

Reference

Props

The IconButton component inherits all of the props from the HTMLButtonElement and adds the following props.

NameTypeDefaultDescription
variant"primary" | "secondary" | "tertiary""primary"The visual style of the icon button.
size"small" | "medium" | "large""medium"The size of the icon button.
iconIcon-The icon component to display.
disabledbooleanfalseWhether the icon button is disabled.

Events

The IconButton component supports the following events.

EventDescription
clickFired when the icon button is clicked.

Tokens

KeyDefault Value
icon.icon.variants.size.small.height20px
icon.icon.variants.size.small.width20px
icon.icon.variants.size.small.paddingnone
icon.icon.variants.size.medium.heightvar(--gpqiqcc)
icon.icon.variants.size.medium.widthvar(--gpqiqcc)
icon.icon.variants.size.medium.paddingnone
icon.icon.variants.size.large.height28px
icon.icon.variants.size.large.width28px
icon.icon.variants.size.large.paddingnone
iconButton.button.variants.variant.primary.backgroundColorvar(--_1i4ikbk0)
iconButton.button.variants.variant.primary.colorvar(--_1i4ikbk1)
iconButton.button.variants.variant.primary.borderWidthvar(--gpqiqbg)
iconButton.button.variants.variant.primary.borderStylesolid
iconButton.button.variants.variant.primary.borderColortransparent
iconButton.button.variants.variant.primary.borderRadiusvar(--gpqiqe6)
iconButton.button.variants.variant.primary.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.primary.:hover.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk0) 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.primary.:hover.borderColortransparent
iconButton.button.variants.variant.primary.:hover.colorvar(--_1i4ikbk1)
iconButton.button.variants.variant.primary.:hover.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.primary.:focus-visible.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk0) 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.primary.:focus-visible.borderColortransparent
iconButton.button.variants.variant.primary.:focus-visible.colorvar(--_1i4ikbk1)
iconButton.button.variants.variant.primary.:focus-visible.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.primary.:focus-visible.outlineWidthvar(--_1i4ikbk2e)
iconButton.button.variants.variant.primary.:focus-visible.outlineStylevar(--_1i4ikbk2f)
iconButton.button.variants.variant.primary.:focus-visible.outlineColorvar(--_1i4ikbk2g)
iconButton.button.variants.variant.primary.:focus-visible.outlineOffsetvar(--_1i4ikbk2h)
iconButton.button.variants.variant.primary.:active.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk0) 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.primary.:active.borderColortransparent
iconButton.button.variants.variant.primary.:active.colorvar(--_1i4ikbk1)
iconButton.button.variants.variant.primary.:active.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.primary.:disabled.opacityvar(--_1i4ikbk2i)
iconButton.button.variants.variant.secondary.backgroundColorvar(--_1i4ikbk11)
iconButton.button.variants.variant.secondary.colorvar(--_1i4ikbkv)
iconButton.button.variants.variant.secondary.borderWidthvar(--gpqiqbg)
iconButton.button.variants.variant.secondary.borderStylesolid
iconButton.button.variants.variant.secondary.borderRadiusvar(--gpqiqe6)
iconButton.button.variants.variant.secondary.borderColortransparent
iconButton.button.variants.variant.secondary.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.secondary.:hover.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk11) 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.secondary.:hover.colorvar(--_1i4ikbkv)
iconButton.button.variants.variant.secondary.:hover.borderColortransparent
iconButton.button.variants.variant.secondary.:hover.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.secondary.:focus-visible.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk11) 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.secondary.:focus-visible.colorvar(--_1i4ikbkv)
iconButton.button.variants.variant.secondary.:focus-visible.borderColortransparent
iconButton.button.variants.variant.secondary.:focus-visible.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.secondary.:focus-visible.outlineWidthvar(--_1i4ikbk2e)
iconButton.button.variants.variant.secondary.:focus-visible.outlineStylevar(--_1i4ikbk2f)
iconButton.button.variants.variant.secondary.:focus-visible.outlineColorvar(--_1i4ikbk2g)
iconButton.button.variants.variant.secondary.:focus-visible.outlineOffsetvar(--_1i4ikbk2h)
iconButton.button.variants.variant.secondary.:active.backgroundColorcolor-mix(in srgb, var(--_1i4ikbk11) 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.secondary.:active.colorvar(--_1i4ikbkv)
iconButton.button.variants.variant.secondary.:active.borderColortransparent
iconButton.button.variants.variant.secondary.:active.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.secondary.:disabled.opacityvar(--_1i4ikbk2i)
iconButton.button.variants.variant.tertiary.backgroundColortransparent
iconButton.button.variants.variant.tertiary.colorinherit
iconButton.button.variants.variant.tertiary.borderWidthvar(--gpqiqbg)
iconButton.button.variants.variant.tertiary.borderStylesolid
iconButton.button.variants.variant.tertiary.borderColortransparent
iconButton.button.variants.variant.tertiary.borderRadiusvar(--gpqiqe6)
iconButton.button.variants.variant.tertiary.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.tertiary.:hover.backgroundColorcolor-mix(in srgb, transparent 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.tertiary.:hover.colorinherit
iconButton.button.variants.variant.tertiary.:hover.borderColortransparent
iconButton.button.variants.variant.tertiary.:hover.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.tertiary.:focus-visible.backgroundColorcolor-mix(in srgb, transparent 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.tertiary.:focus-visible.colorinherit
iconButton.button.variants.variant.tertiary.:focus-visible.borderColortransparent
iconButton.button.variants.variant.tertiary.:focus-visible.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.tertiary.:focus-visible.outlineWidthvar(--_1i4ikbk2e)
iconButton.button.variants.variant.tertiary.:focus-visible.outlineStylevar(--_1i4ikbk2f)
iconButton.button.variants.variant.tertiary.:focus-visible.outlineColorvar(--_1i4ikbk2g)
iconButton.button.variants.variant.tertiary.:focus-visible.outlineOffsetvar(--_1i4ikbk2h)
iconButton.button.variants.variant.tertiary.:active.backgroundColorcolor-mix(in srgb, transparent 95%, var(--_1i4ikbkv) 5%)
iconButton.button.variants.variant.tertiary.:active.colorinherit
iconButton.button.variants.variant.tertiary.:active.borderColortransparent
iconButton.button.variants.variant.tertiary.:active.boxShadowvar(--gpqiqe8)
iconButton.button.variants.variant.tertiary.:disabled.opacityvar(--_1i4ikbk2i)
iconButton.button.variants.size.small.widthvar(--gpqiqcc)
iconButton.button.variants.size.small.heightvar(--gpqiqcc)
iconButton.button.variants.size.medium.widthvar(--gpqiqce)
iconButton.button.variants.size.medium.heightvar(--gpqiqce)
iconButton.button.variants.size.large.widthvar(--gpqiqcf)
iconButton.button.variants.size.large.heightvar(--gpqiqcf)
iconButton.icon.base.colorinherit
iconButton.icon.base.:hover.colorinherit
iconButton.icon.base.:focus-visible.colorinherit
iconButton.icon.base.:active.colorinherit
iconButton.icon.base.:disabled.colorinherit
Last updated on