label | string | Yes | — | Accessible name announced for the icon-only control. |
icon | Icon | Yes | — | Icon shown in the resting state. |
tooltip | string | false | No | — | Visual tooltip text. Defaults to `label`; set to `false` to hide it. |
pressedIcon | Icon | No | — | Optional icon shown while a toggle icon button is pressed. |
variant | IconButtonVariant | No | 'standard' | Visual style. |
size | IconButtonSize | No | 'medium' | Visual size; every option retains at least a 48px touch target. |
width | IconButtonWidth | No | 'default' | Horizontal container width. |
disabled | boolean | No | false | Disables interaction. |
shape | "rounded" | "squared" | No | 'rounded' | Resting container shape. |
shapeFeedback | ButtonShapeFeedback | No | 'morph' | Shape feedback shown for accepted press and toggle interactions. |
transition | Transition | No | — | Motion transition shared by every framework for shape changes. |
toggleable | boolean | No | false | Enables semantic pressed state for action buttons. |
pressed | boolean | No | — | Controlled pressed state. |
defaultPressed | boolean | No | false | Initial pressed state when `pressed` is not controlled. |
className | string | ClassNameComponent<IconButtonInterface> | Partial<Record<"stateLayer" | "touchTarget" | "icon" | "iconButton", string>> | No | — | Classes or state-aware element classes applied through the shared style contract. |
onPressedChange | (pressed: boolean) => void | No | — | Notifies an accepted toggle-state request. |