Skip to main content

Button

Buttons trigger actions or navigate to new pages. Available in multiple variants and sizes.

Import​

import { Button } from '@kikumi3n/ui';

Usage​

<Button>Default Button</Button>
<Button variant="secondary">Secondary</Button>
<Button variant="ghost">Ghost</Button>
<Button variant="danger">Danger</Button>

Variants​

VariantUsage
primaryPrimary actions (Submit, Save)
secondarySecondary actions (Cancel, Back)
ghostTertiary actions, toolbar buttons
dangerDestructive actions (Delete, Remove)

Sizes​

<Button size="sm">Small</Button>
<Button size="md">Medium (default)</Button>
<Button size="lg">Large</Button>

With Icons​

<Button leftIcon={<PlusIcon />}>Add Item</Button>
<Button rightIcon={<ArrowRightIcon />}>Continue</Button>

Loading State​

<Button loading>Saving...</Button>

When loading is true, the button shows a spinner and becomes non-interactive.

API​

PropTypeDefaultDescription
variant'primary' | 'secondary' | 'ghost' | 'danger''primary'Visual variant
size'sm' | 'md' | 'lg''md'Button size
loadingbooleanfalseShow loading spinner
leftIconReactNode—Icon before text
rightIconReactNode—Icon after text
disabledbooleanfalseDisable interaction

Also accepts all standard <button> HTML attributes.

Accessibility​

  • Renders as a native <button> element
  • Supports aria-label for icon-only buttons
  • Disabled state set via native disabled attribute
  • Focus visible styling for keyboard navigation
  • IconButton — Icon-only button variant
  • Link — For navigation actions