Buttons
Type-safe button components with variants and sizes.
Basic Usage
Variants
Primary
Main call-to-action buttons:
Secondary
Secondary actions:
Ghost
Minimal, transparent background:
Outline
Bordered style:
Destructive
Dangerous or irreversible actions:
Sizes
Buttons support multiple sizes:
// Using methods
Button::primary("Small").small()
Button::primary("Medium") // default
Button::primary("Large").large()
// Extra sizes
Button::primary("XS").extra_small()
Button::primary("XL").extra_large()
| Size | Padding | Font |
|---|---|---|
| Extra Small | Compact | 12px |
| Small | Tight | 14px |
| Medium | Normal | 16px |
| Large | Generous | 18px |
| Extra Large | Spacious | 20px |
States
Disabled
Loading
With Icons
use iced_plus_components::{Button, IconName, icon};
Button::primary("")
.push(icon(IconName::Plus))
.push(" Add Item")
Full Width
Type Safety
Button types encode variant and size at compile time:
// Full type annotation
let btn: Button<'_, Primary, Medium, Message> = Button::primary("Save");
// Type changes with methods
let btn: Button<'_, Primary, Small, Message> = Button::primary("Save").small();
let btn: Button<'_, Destructive, Large, Message> = Button::destructive("Delete").large();