Skip to content
Browse the guide
Components

Actions

Choose links and buttons, define emphasis and preserve state.

On this page

Use a button to act on the current task and a link to navigate to a destination. Their appearance can share a visual language; their semantics and behavior should remain distinct.

#Choose emphasis

Give the main action in a decision clear emphasis. Secondary actions remain available with less weight. Use destructive styling for consequences such as deletion, not for any negative answer. A quiet close or cancel action should not look destructive.

Write labels that name the result: “Save changes”, “Create project” or “Delete draft”. Add enough context to repeated row actions through visible or accessible labels. An icon-only action needs a meaningful name; a tooltip is supplementary and must not be the only accessible label.

#Define the states

Preserve the control's geometry across hover, pressed, focus, busy and disabled states. Keep focus distinguishable when the control is also pressed or selected. A toggle button exposes its pressed state; an ordinary action button does not pretend to be a toggle.

For asynchronous submission, prevent duplicate work, preserve the action's identity and show progress or a concise busy label. Decide whether the control remains focusable based on the interaction, and communicate why it is unavailable when that reason is not apparent. Do not use a visually disabled link that still navigates.

#Compose safely

Specify button type inside forms. A secondary button should not submit accidentally. Keep grouped actions close enough to read together but with nonoverlapping targets. Do not nest a button inside a link or another button.

#Verify

Activate with keyboard and pointer, submit through the form's native mechanism, and retry after failure. Check long labels, focus rings, busy transitions, disabled behavior and first-touch discoverability. Master UI implementations: Button and Link. Read their current contracts for supported classes and attributes.