Buttons

The e-button component covers primary, secondary, and navigation actions. It supports visual variants, sizes, states like disabled/loading, plus icon and link integration. This page helps you compare real usage patterns so you can quickly choose the right setup for visual hierarchy, context, and accessibility.

Usage

Use this playground to tune visual hierarchy with color, outlined, and text; try block for form/mobile layouts; and validate state feedback with disabled and loading.

primary

Button size variants

Set visual scale based on density and priority. Options: x-small, small, default, large, x-large.

Visual variants

Icon mode

With the icon prop you can create compact icon-driven buttons. Recommended for toolbars and frequent actions. You can learn more about how icons work on the Icon Configuration page.

Prepend and append icons

Add visual context by placing icons on the left (prepend) or right (append) side of the label.

Custom size

Adjust dimensions with width and height when the layout requires exact measurements.

Common use cases

Recommended app bar pattern: navigation at the start, brand in the main flow, a tonal primary action for creation, and utility actions grouped at the end.

avatar

Props

Complete reference of props, types, and behavior to configure Button precisely.

PropertyTypeDefault
size"x-small" | "small" | "default" | "large" | "x-large""default" (visual fallback)

Sets button size preset.

colorstringundefined

Applies theme color to the button (background/state layers depending on style).

hoverColorstringundefined

Optional color applied while pointer is hovering the button.

disabledbooleanfalse

Disables interactions and applies disabled styles.

loadingbooleanfalse

Shows the loading indicator and blocks click interactions.

ripplebooleantrue

Enables or disables the ripple interaction effect.

linkbooleanfalse

Forces anchor rendering mode when true.

typestring"button" (when tag is button)

Native button type when rendered as <button>.

ariaLabelstringundefined

Explicit aria-label for accessibility, useful for icon-only buttons.

outlinedbooleanfalse

Uses outlined visual style instead of filled background.

textbooleanfalse

Uses text style with transparent background.

tonalbooleanfalse

Uses tonal style variant.

fabbooleanfalse

Enables FAB presentation; combined with icon for icon-centric layout.

stackedbooleanfalse

Applies stacked layout variant class.

roundedbooleanfalse

Applies rounded pill corners to the button.

blockbooleanfalse

Expands button width to fill the available horizontal space.

useContrastColorbooleanfalse

Forces contrast color class strategy for text/outlined-like cases.

elevation"none" | "xs" | "sm" | "md" | "lg" | "xl""sm"

Controls elevation level when style supports elevation.

iconIconPath | IconPath[] | stringundefined

Icon payload for button content; supports icon-only behavior when no default slot content exists.

prependIconIconPath | IconPath[] | stringundefined

Adds an icon before the default slot content.

appendIconIconPath | IconPath[] | stringundefined

Adds an icon after the default slot content.

widthnumber | stringundefined

Sets explicit button width using number (px) or CSS length string.

heightnumber | stringundefined

Sets explicit button height using number (px) or CSS length string.