EEnterUI
DocsComponentsThemesDonation
Get Started
  • Component onboarding
    • Button
    • ButtonGroup
    • IconButton
    • Link
EnterUIDocsFoundationsActionsButton
FoundationsUpdated 6 May 2026

Button

Trigger actions with refined default, secondary, ghost, and danger styles.

Button defines how EnterUI handles trigger actions with refined default, secondary, ghost, and danger styles, including default structure, accessible states, and token-driven styling.

#Default usage

Button variants

Use primary for the main action and quieter variants for supporting actions.

Code
<div className="docs-preview-row">
  <Button>Deploy</Button>
  <Button variant="secondary">Preview</Button>
  <Button variant="ghost">Cancel</Button>
  <Button variant="danger">Delete</Button>
  <Button disabled>Disabled</Button>
</div>

#Import

Code
import { Button } from "@froggdesign/enter-ui-react";

#Patterns

Sizes

Sizes stay compact for product surfaces.

Loading

Pass loading to disable the button and show a centered spinner. Pair with async submit handlers.

Code
<Button loading>Saving</Button>
<Button loading variant="secondary">Saving</Button>
<Button loading variant="danger">Deleting</Button>

#Accessibility

Button renders a native button, defaults to type="button", supports disabled state, and keeps focus-visible styling available through the theme ring. When loading is set, the button announces aria-busy="true", stays disabled, and exposes data-loading="true" so consumers can hook custom states.

#API

  • variant: primary, secondary, ghost, or danger.
  • size: sm, md, or lg.
  • loading: when true, disables the button, shows a centered spinner, sets aria-busy="true", and sets data-loading="true".
  • Includes native button props such as disabled, aria-label, and type.

#Styling

Every exported component accepts className when it renders an element. EnterUI styles use .eui-* classes and --eui-* variables mapped from FroggDesign theme tokens.

PreviousComponent onboarding
NextButtonGroup

On this page

  1. Default usage
  2. Import
  3. Patterns
  4. Accessibility
  5. API
  6. Styling