Button class

A styled button component.

Can render as either a <button> or <a> element depending on whether href is provided. Use href for CTA buttons that navigate to other pages. icon is the only semantic icon slot and iconPosition places that one icon before or after the label.

Inheritance

Constructors

Button({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonVariant variant = ButtonVariant.primary, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
Button.destructive({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
Button.ghost({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
Button.info({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
const
Button.outline({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
Button.primary({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
Button.secondary({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
Button.success({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const
Button.warning({String? label, ArcaneGlyph? icon, ButtonIconPosition iconPosition = ButtonIconPosition.leading, void onPressed()?, ArcaneInteraction? action, ButtonSize size = ButtonSize.medium, bool disabled = false, bool loading = false, bool fullWidth = false, Map<String, String>? attributes, String? id, ButtonType type = ButtonType.button, String? href, ArcaneStyleData? styles, ArcaneDecoration? decoration, Key? key})
const

Properties

action ArcaneInteraction?
final
attributes Map<String, String>?
final
decoration ArcaneDecoration?
Semantic, theme-interpreted decoration.
final
disabled bool
final
fullWidth bool
final
hashCode int
The hash code for this object.
no setterinherited
href String?
If provided, renders the button as an anchor tag (<a>) instead of <button>. Useful for CTA buttons that navigate to other pages.
final
icon ArcaneGlyph?
final
iconPosition ButtonIconPosition
final
id String?
final
key Key?
Controls how one component replaces another component in the tree.
finalinherited
label String?
final
loading bool
final
onPressed → void Function()?
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
size ButtonSize
final
styles ArcaneStyleData?
Literal, theme-permeable style override (always applied, wins over theme).
final
type ButtonType
Native <button type> used when this renders as a button. Ignored when href renders the control as an anchor.
final
variant ButtonVariant
final

Methods

build(BuildContext context) Widget
Describes the part of the user interface represented by this component.
override
createElement() Element
Creates a StatelessElement to manage this component's location in the tree.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
shouldRebuild(covariant Component newComponent) bool
Implement this method to determine whether a rebuild can be skipped.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited