label | LocalizedMessage | — | Accessible name at rest. The button is icon-only, so this is never drawn. |
pendingLabel | LocalizedMessage | — | Accessible name while {@link SendButtonOwnProps.pending} is true. Announced when the send starts. |
active | boolean | — | Non-toggle pressed or transient current marker; hosts write the pressed state key through stateAttributes (data-pressed).
A toggle host (Button toggle variant) uses aria-pressed and styles with [aria-pressed="true"] without also writing data-pressed for that toggle state (ADR 0001 rule 1).
Link "current" within a set uses aria-current, not active. |
aria-controls | string | — | Id of the element controlled by this control. |
aria-current | boolean | "time" | "false" | "true" | "page" | "step" | "location" | "date" | — | Whether this item is current within a set. |
aria-describedby | string | — | Id of the element that describes this control. |
aria-description | LocalizedMessage | — | Accessible description when it cannot be referenced by id. |
aria-expanded | boolean | — | Whether the controlled region is expanded. |
aria-haspopup | boolean | "dialog" | "menu" | "false" | "true" | "listbox" | "tree" | "grid" | — | Type of popup triggered by this control, if any. |
aria-label | LocalizedMessage | — | Accessible name when the visible label is insufficient. |
aria-labelledby | string | — | Id of the element that names this control. |
className | string | — | Classes appended after generated paint classes. |
disabled | boolean | — | Inert state per host: native disabled on a button; on Link, ADR 0006 link host (no href, aria-disabled="true", tabIndex={0}).
Never tabIndex={-1}. |
id | string | — | Element id for ARIA relationships. |
intent | ButtonIntent | — | Visual intent. Defaults to {@link ButtonIntent.Neutral}. |
pending | boolean | false | Whether the send is in flight. A pending button swaps its arrow for the spinner, sets aria-busy and
aria-disabled instead of disabled, so focus stays where it is, and ignores clicks, Enter and Space. Pending
outranks {@link InteractableProps.disabled}: a composer that clears its value on send can set both at once and
the button still shows the spinner. |
ref | Ref<HTMLButtonElement> | — | Ref to the rendered button. |
restoreFocusTo | RefObject<HTMLElement | null> | — | Element that takes focus after a keyboard activation (Enter or Space on the button), typically the composer's
input. A pointer press never moves focus off the input, so a pointer click needs no restore. Without it, a
keyboard send leaves focus on the button, which may become disabled as the value clears. |
size | ButtonSize | — | Control size. Defaults to {@link ButtonSize.Large}. |
tooltip | LocalizedMessage | — | Short text shown in a Tooltip while the pointer hovers the button or a navigation key focuses it. Button
composes Tooltip's trigger, content and root, so it behaves like Tooltip > TooltipTrigger > Button and also works
while disabled (pointer only) and on toggle buttons. A labelled button points aria-describedby at the tooltip.
An icon-only button does not: label already names it, so the tooltip is visual only and never read twice.
Adding or removing the prop after mount remounts the button. |
type | "button" | "submit" | "reset" | — | Native button type. Defaults to button. |
variant | ButtonVariant | — | Surface variant. Defaults to {@link ButtonVariant.Soft}. |