IconButton
Reusable icon button component.
Usage
Components are auto-discovered. Use the component directly in any .wrn view:
<IconButton label="Action" icon="•" variant="ghost" disabled="false" />Legacy mount name: data-component="IconButton".
Props and attributes
| Prop | Type | Requirement | Default |
|---|---|---|---|
class | string | Optional | "" |
label | string | Optional | "Action" |
icon | string | Optional | "•" |
variant | string | Optional | "ghost" |
disabled | boolean | Optional | false |
Slots
This component does not declare a slot.
Events
This component does not declare a custom event.
Source contract
Installed source: components/IconButton.wrn
component IconButton {
props {
class = ""
label = "Action"
icon = "•"
variant = "ghost"
disabled = false
}
view { <button type="button" aria-label="{label}" title="{label}" disabled="{disabled}" class="inline-flex size-11 items-center justify-center rounded-xl transition duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-violet-500 disabled:opacity-50 {variant === 'primary' ? 'bg-violet-600 text-white hover:bg-violet-700' : 'text-slate-600 hover:bg-slate-100 dark:text-slate-300 dark:hover:bg-slate-800'} {class}"><span aria-hidden="true">{icon}</span></button> }
}