Button
A versatile button component with multiple variants, sizes, and states.
Import
import { Button } from '@akitectio/aki-ui'
Basic Usage
<Button>Default Button</Button>
<Button variant="primary">Primary Button</Button>
<Button variant="secondary">Secondary Button</Button>
<Button variant="outline">Outline Button</Button>
Sizes
<Button size="sm">Small</Button>
<Button size="md">Medium</Button>
<Button size="lg">Large</Button>
States
<Button disabled>Disabled</Button>
<Button loading={isLoading} onClick={handleClick}>
{isLoading ? 'Loading...' : 'Click for Loading'}
</Button>
With Icons
<Button>
<PlusIcon className="w-4 h-4 mr-2" />
Add Item
</Button>
<Button variant="outline">
Download
<DownloadIcon className="w-4 h-4 ml-2" />
</Button>
API Reference
Prop | Type | Default | Description |
---|---|---|---|
variant | 'default' | 'primary' | 'secondary' | 'outline' | 'ghost' | 'link' | 'default' | Visual style variant |
size | 'sm' | 'md' | 'lg' | 'md' | Button size |
loading | boolean | false | Show loading state |
disabled | boolean | false | Disable the button |
className | string | - | Additional CSS classes |
children | ReactNode | - | Button content |
Accessibility
The Button component follows WAI-ARIA guidelines:
- • Supports keyboard navigation with Enter and Space keys
- • Proper focus management and visual indicators
- • Screen reader friendly with proper role attributes
- • Loading state announced to assistive technologies
- • Disabled state properly communicated