Button
A button with multiple variants, sizes, and icon support.
Variants
<x-boson::button>Primary</x-boson::button>
<x-boson::button variant="secondary">Secondary</x-boson::button>
<x-boson::button variant="outline">Outline</x-boson::button>
<x-boson::button variant="ghost">Ghost</x-boson::button>
<x-boson::button variant="subtle">Subtle</x-boson::button>
<x-boson::button variant="danger">Danger</x-boson::button>
<x-boson::button variant="danger-soft">Danger Soft</x-boson::button>
Sizes
<x-boson::button variant="outline" size="xs">Extra Small</x-boson::button>
<x-boson::button variant="outline" size="sm">Small</x-boson::button>
<x-boson::button variant="outline" size="md">Medium</x-boson::button>
<x-boson::button variant="outline" size="lg">Large</x-boson::button>
<x-boson::button variant="outline" size="xl">Extra Large</x-boson::button>
With icons
<x-boson::button variant="outline" icon="check">Save</x-boson::button>
<x-boson::button variant="outline" icon:trailing="arrow-right">Next</x-boson::button>
<x-boson::button variant="outline" icon="plus" square />
Turbo
{{-- Confirmation dialog before Turbo processes the action --}}
<x-boson::button turbo:confirm="Are you sure?">Archive</x-boson::button>
{{-- Change button text while submitting --}}
<x-boson::button type="submit" turbo:submits-with="Saving...">Save</x-boson::button>
{{-- Combine both --}}
<x-boson::button
type="submit"
variant="danger"
turbo:confirm="Delete this item?"
turbo:submits-with="Deleting..."
>
Delete
</x-boson::button>
{{-- Disable Turbo on a button rendered as a link --}}
<x-boson::button :turbo="false" as="a" href="/external">External</x-boson::button>
Props
| Prop | Type | Default | Description |
|---|---|---|---|
variant |
string |
primary |
Visual style: primary, secondary, outline, ghost, subtle, danger, danger-soft |
size |
string |
md |
Button size: xs, sm, md, lg, xl |
icon |
string |
null |
Leading Heroicon name |
icon:trailing |
string |
null |
Trailing Heroicon name |
square |
bool |
false |
Square shape for icon-only buttons |
turbo |
bool |
true |
Allow Turbo to process this element. Set :turbo="false" to opt out. |
turbo:* |
string |
— |
Turbo data attributes (e.g. turbo:confirm, turbo:submits-with). Maps to data-turbo-*. |