IconButton

Icon buttons help people take actions with a single tap.

Props

React props
NameTypeRequiredDefaultDescription
labelstringYes—Accessible name announced for the icon-only control.
iconIconYes—Icon shown in the resting state.
tooltipstring | falseNo—Visual tooltip text. Defaults to `label`; set to `false` to hide it.
pressedIconIconNo—Optional icon shown while a toggle icon button is pressed.
variantIconButtonVariantNo'standard'Visual style.
sizeIconButtonSizeNo'medium'Visual size; every option retains at least a 48px touch target.
widthIconButtonWidthNo'default'Horizontal container width.
stateColorstringNo—Colour token for the state layer, without the `--color-` prefix. Defaults to the token matching `variant`. Set it when custom classes repaint the button so hover and press feedback keeps enough contrast.
disabledbooleanNofalseDisables interaction.
shape"rounded" | "squared"No'rounded'Resting container shape.
shapeFeedbackButtonShapeFeedbackNo'morph'Shape feedback shown for accepted press and toggle interactions.
transitionTransitionNo—Motion transition shared by every framework for shape changes.
toggleablebooleanNofalseEnables semantic pressed state for action buttons.
pressedbooleanNo—Controlled pressed state.
defaultPressedbooleanNofalseInitial pressed state when `pressed` is not controlled.
classNamestring | ClassNameComponent<IconButtonInterface> | Partial<Record<"icon" | "stateLayer" | "touchTarget" | "iconButton", string>>No—Classes or state-aware element classes applied through the shared style contract.
onPressedChange(pressed: boolean) => voidNo—Notifies an accepted toggle-state request.