Button

Interactive button primitive with six semantic variants, four sizes, and built-in loading spinner support.

Installation

You can add this button component using our CLI or manually:

Dark mode ready - this component follows Ethereal UI semantic tokens automatically. Set up theme switching.

The CLI copies the component source (with its internal dependencies) into your project and installs any required npm packages.

npx @etherealui/cli@latest add button

Sizes

Available in small (32px), default (36px), large (40px), and square icon sizes.

Loading state

Pass loading={true} to disable interaction and render an inline spinner.