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
leftIconReactNodeIcon before text
rightIconReactNodeIcon 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