Button class

A versatile, customizable button widget with comprehensive styling and interaction support.

Button is the foundational interactive widget in the shadcn_flutter design system, providing a consistent and accessible button implementation with extensive customization options. It supports multiple visual variants, sizes, shapes, and interaction patterns while maintaining design system consistency.

Key Features

  • Multiple Variants: Primary, secondary, outline, ghost, link, text, destructive, and more
  • Flexible Sizing: From extra small to extra large with custom scaling
  • Shape Options: Rectangle and circle shapes with customizable borders
  • Rich Interactions: Hover, focus, press, and long press support
  • Accessibility: Full keyboard navigation and screen reader support
  • Theming: Deep integration with the design system theme
  • Form Integration: Works seamlessly with form validation and state management

Visual Variants

The button supports various visual styles through named constructors:

Layout and Content

Buttons can contain text, icons, or a combination of both using leading and trailing widgets. The child widget is automatically aligned and sized according to the button's style and density settings.

Interaction Handling

The button provides comprehensive gesture support including tap, long press, secondary clicks, and tertiary clicks. All interactions respect the enabled state and provide appropriate visual and haptic feedback.

Example:

Button.primary(
  onPressed: () => print('Primary action'),
  leading: Icon(Icons.add),
  trailing: Icon(Icons.arrow_forward),
  child: Text('Create New'),
);
Inheritance
Available extensions

Constructors

Button.new({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, required AbstractButtonStyle style, bool? enabled, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
Creates a Button with custom styling.
const
Button.card({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.card, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
const
Button.destructive({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.destructive, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
Creates a destructive button for actions that delete or destroy data.
const
Button.fixed({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.fixed, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
const
Button.ghost({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.ghost, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
Creates a ghost button with minimal styling for subtle actions.
const
const
Button.outline({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.outline, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
const
Button.primary({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.primary, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
Creates a primary button with prominent styling for main actions.
const
Button.secondary({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.secondary, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
Creates a secondary button with muted styling for supporting actions.
const
Button.text({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.text, bool disableTransition = false, ValueChanged<bool>? onFocus, ValueChanged<bool>? onHover, bool disableHoverEffect = false, bool? enableFeedback, GestureTapDownCallback? onTapDown, GestureTapUpCallback? onTapUp, GestureTapCancelCallback? onTapCancel, GestureTapDownCallback? onSecondaryTapDown, GestureTapUpCallback? onSecondaryTapUp, GestureTapCancelCallback? onSecondaryTapCancel, GestureTapDownCallback? onTertiaryTapDown, GestureTapUpCallback? onTertiaryTapUp, GestureTapCancelCallback? onTertiaryTapCancel, GestureLongPressStartCallback? onLongPressStart, GestureLongPressUpCallback? onLongPressUp, GestureLongPressMoveUpdateCallback? onLongPressMoveUpdate, GestureLongPressEndCallback? onLongPressEnd, GestureLongPressUpCallback? onSecondaryLongPress, GestureLongPressUpCallback? onTertiaryLongPress, AlignmentGeometry? marginAlignment, bool disableFocusOutline = false})
const

Properties

alignment AlignmentGeometry?
Alignment of the child content within the button.
final
asBuilder NeverWidgetBuilder

Available on Widget, provided by the WidgetExtension extension

no setter
asSliver Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
base TextModifier

Available on Widget, provided by the TextExtension extension

no setter
black TextModifier

Available on Widget, provided by the TextExtension extension

no setter
blockQuote TextModifier

Available on Widget, provided by the TextExtension extension

no setter
blurIn Widget

Available on Widget, provided by the XWidgetEffect extension

no setter
bold TextModifier

Available on Widget, provided by the TextExtension extension

no setter
centered Widget

Available on Widget, provided by the XWidget extension

no setter
child Widget
The primary content displayed in the button.
final
disableFocusOutline bool
Whether to disable the focus outline.
final
disableHoverEffect bool
Whether to disable hover visual effects.
final
disableTransition bool
Whether to disable visual state transition animations.
final
ellipsis TextModifier

Available on Widget, provided by the TextExtension extension

no setter
enabled bool?
Whether the button is interactive.
final
enableFeedback bool?
Whether to enable haptic feedback on press.
final
expand Widget

Available on Widget, provided by the XWidget extension

no setter
extraBold TextModifier

Available on Widget, provided by the TextExtension extension

no setter
extraLight TextModifier

Available on Widget, provided by the TextExtension extension

no setter
firstP TextModifier

Available on Widget, provided by the TextExtension extension

no setter
flexible Widget

Available on Widget, provided by the XWidget extension

no setter
focusNode FocusNode?
Focus node for keyboard navigation and focus management.
final
foreground TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h1 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h2 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h3 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
h4 TextModifier

Available on Widget, provided by the TextExtension extension

no setter
hashCode int
The hash code for this object.
no setterinherited
ih Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
inlineCode TextModifier

Available on Widget, provided by the TextExtension extension

no setter
intrinsicHeight Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicSize Widget

Available on Widget, provided by the XWidget extension

no setter
intrinsicWidth Widget

Available on Widget, provided by the XWidget extension

no setter
italic TextModifier

Available on Widget, provided by the TextExtension extension

no setter
iw Widget

Available on Widget, provided by the XWidgetArcane extension

no setter
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
lead TextModifier

Available on Widget, provided by the TextExtension extension

no setter
leading Widget?
Widget displayed to the left of the main child content.
final
li TextModifier

Available on Widget, provided by the TextExtension extension

no setter
light TextModifier

Available on Widget, provided by the TextExtension extension

no setter
marginAlignment AlignmentGeometry?
Alignment for the button's margin within its allocated space.
final
medium TextModifier

Available on Widget, provided by the TextExtension extension

no setter
modify TextModifier

Available on Widget, provided by the TextExtension extension

no setter
mono TextModifier

Available on Widget, provided by the TextExtension extension

no setter
muted TextModifier

Available on Widget, provided by the TextExtension extension

no setter
normal TextModifier

Available on Widget, provided by the TextExtension extension

no setter
onFocus ValueChanged<bool>?
Callback invoked when the button's focus state changes.
final
onHover ValueChanged<bool>?
Callback invoked when the button's hover state changes.
final
onLongPressEnd GestureLongPressEndCallback?
Callback invoked when a long press gesture ends.
final
onLongPressMoveUpdate GestureLongPressMoveUpdateCallback?
Callback invoked when a long press gesture moves.
final
onLongPressStart GestureLongPressStartCallback?
Callback invoked when a long press gesture begins.
final
onLongPressUp GestureLongPressUpCallback?
Callback invoked when a long press gesture completes.
final
onPressed VoidCallback?
Callback invoked when the button is pressed.
final
onSecondaryLongPress GestureLongPressUpCallback?
Callback invoked when a secondary button long press completes.
final
onSecondaryTapCancel GestureTapCancelCallback?
Callback invoked when a secondary button tap is canceled.
final
onSecondaryTapDown GestureTapDownCallback?
Callback invoked when a secondary button (right-click) tap down begins.
final
onSecondaryTapUp GestureTapUpCallback?
Callback invoked when a secondary button tap up completes.
final
onTapCancel GestureTapCancelCallback?
Callback invoked when a tap gesture is canceled.
final
onTapDown GestureTapDownCallback?
Callback invoked when a tap down gesture begins.
final
onTapUp GestureTapUpCallback?
Callback invoked when a tap up gesture completes.
final
onTertiaryLongPress GestureLongPressUpCallback?
Callback invoked when a tertiary button long press completes.
final
onTertiaryTapCancel GestureTapCancelCallback?
Callback invoked when a tertiary button tap is canceled.
final
onTertiaryTapDown GestureTapDownCallback?
Callback invoked when a tertiary button (middle-click) tap down begins.
final
onTertiaryTapUp GestureTapUpCallback?
Callback invoked when a tertiary button tap up completes.
final
p TextModifier

Available on Widget, provided by the TextExtension extension

no setter
primaryForeground TextModifier

Available on Widget, provided by the TextExtension extension

no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
safeArea Widget

Available on Widget, provided by the XWidget extension

no setter
sans TextModifier

Available on Widget, provided by the TextExtension extension

no setter
scrollable Widget

Available on Widget, provided by the XWidget extension

no setter
scrollableHorizontal Widget

Available on Widget, provided by the XWidget extension

no setter
secondaryForeground TextModifier

Available on Widget, provided by the TextExtension extension

no setter
semiBold TextModifier

Available on Widget, provided by the TextExtension extension

no setter
singleLine TextModifier

Available on Widget, provided by the TextExtension extension

no setter
small TextModifier

Available on Widget, provided by the TextExtension extension

no setter
statesController WidgetStatesController?
Controller for managing button widget states externally.
final
style AbstractButtonStyle
Visual styling configuration for the button.
final
textCenter TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textEnd TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textJustify TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textLarge TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textLeft TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textMuted TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textRight TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textSmall TextModifier

Available on Widget, provided by the TextExtension extension

no setter
textStart TextModifier

Available on Widget, provided by the TextExtension extension

no setter
thin TextModifier

Available on Widget, provided by the TextExtension extension

no setter
trailing Widget?
Widget displayed to the right of the main child content.
final
underline TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x2Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x3Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x4Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x5Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x6Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x7Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x8Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
x9Large TextModifier

Available on Widget, provided by the TextExtension extension

no setter
xLarge TextModifier

Available on Widget, provided by the TextExtension extension

no setter
xSmall TextModifier

Available on Widget, provided by the TextExtension extension

no setter

Methods

animate({Key? key, List<Effect>? effects, AnimateCallback? onInit, AnimateCallback? onPlay, AnimateCallback? onComplete, bool? autoPlay, Duration? delay, AnimationController? controller, Adapter? adapter, double? target, double? value}) Animate

Available on Widget, provided by the AnimateWidgetExtensions extension

Wraps the target Widget in an Animate instance, and returns the instance for chaining calls. Ex. myWidget.animate() is equivalent to Animate(child: myWidget).
asSkeleton({bool enabled = true, bool leaf = false, Widget? replacement, bool unite = false, AsyncSnapshot? snapshot}) Widget

Available on Widget, provided by the SkeletonExtension extension

Converts the widget to a skeleton with advanced configuration options.
asSkeletonSliver({bool enabled = true}) Widget

Available on Widget, provided by the SkeletonExtension extension

Converts the widget to a skeleton suitable for sliver layouts.
ast(int ml) Widget

Available on Widget, provided by the XAST extension

center({Key? key}) Widget

Available on Widget, provided by the WidgetExtension extension

clip({Clip clipBehavior = Clip.hardEdge}) Widget

Available on Widget, provided by the WidgetExtension extension

clipOval({Clip clipBehavior = Clip.antiAlias}) Widget

Available on Widget, provided by the WidgetExtension extension

clipPath({Clip clipBehavior = Clip.antiAlias, required CustomClipper<Path> clipper}) Widget

Available on Widget, provided by the WidgetExtension extension

clipRRect({BorderRadiusGeometry borderRadius = BorderRadius.zero, Clip clipBehavior = Clip.antiAlias}) Widget

Available on Widget, provided by the WidgetExtension extension

constrained({double? minWidth, double? maxWidth, double? minHeight, double? maxHeight, double? width, double? height}) Widget

Available on Widget, provided by the WidgetExtension extension

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() ButtonState<Button>
Creates the mutable state for this widget at a given location in the tree.
override
debugContainer([Color color = Colors.red]) Widget

Available on Widget, provided by the DebugContainer extension

debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
excludeSkeleton({bool exclude = true}) Widget

Available on Widget, provided by the SkeletonExtension extension

Controls whether the widget should be preserved in skeleton mode.
expanded({int flex = 1}) Widget

Available on Widget, provided by the WidgetExtension extension

iconDestructiveForeground() Widget

Available on Widget, provided by the IconExtension extension

iconLarge() Widget

Available on Widget, provided by the IconExtension extension

iconMedium() Widget

Available on Widget, provided by the IconExtension extension

iconMutedForeground() Widget

Available on Widget, provided by the IconExtension extension

iconPrimary() Widget

Available on Widget, provided by the IconExtension extension

iconPrimaryForeground() Widget

Available on Widget, provided by the IconExtension extension

iconSecondary() Widget

Available on Widget, provided by the IconExtension extension

iconSecondaryForeground() Widget

Available on Widget, provided by the IconExtension extension

iconSmall() Widget

Available on Widget, provided by the IconExtension extension

iconX2Large() Widget

Available on Widget, provided by the IconExtension extension

iconX2Small() Widget

Available on Widget, provided by the IconExtension extension

iconX3Large() Widget

Available on Widget, provided by the IconExtension extension

iconX3Small() Widget

Available on Widget, provided by the IconExtension extension

iconX4Large() Widget

Available on Widget, provided by the IconExtension extension

iconX4Small() Widget

Available on Widget, provided by the IconExtension extension

iconXLarge() Widget

Available on Widget, provided by the IconExtension extension

iconXSmall() Widget

Available on Widget, provided by the IconExtension extension

ignoreSkeleton() Widget

Available on Widget, provided by the SkeletonExtension extension

Excludes the widget from skeleton effects in its parent skeleton context.
intrinsic({double? stepWidth, double? stepHeight}) Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicHeight() Widget

Available on Widget, provided by the WidgetExtension extension

intrinsicWidth({double? stepWidth, double? stepHeight}) Widget

Available on Widget, provided by the WidgetExtension extension

isSliver(BuildContext context) bool

Available on Widget, provided by the XSliverWidget extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onDoublePressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for double press/tap gestures to this widget in Arcane UI.
onHover(void action(bool hovering)) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for hover events to this widget in Arcane UI.
onLongPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the primary button to this widget in Arcane UI.
onLongSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the secondary button to this widget in Arcane UI.
onLongTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for long press gestures with the tertiary button to this widget in Arcane UI.
onPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for primary press/tap gestures to this widget in Arcane UI.
onSecondaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for secondary press gestures (right-click) to this widget in Arcane UI.
onTertiaryPressed(VoidCallback action, {HitTestBehavior? behavior, Set<PointerDeviceKind>? supportedDevices}) Widget

Available on Widget, provided by the XOnGestureWidget extension

Adds a handler for tertiary press gestures (middle-click) to this widget in Arcane UI.
pad(double all) Widget

Available on Widget, provided by the XWidget extension

padBottom(double value) Widget

Available on Widget, provided by the XWidget extension

padBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) Widget

Available on Widget, provided by the XWidgetArcane extension

padHorizontal(double value) Widget

Available on Widget, provided by the XWidgetArcane extension

padLeft(double value) Widget

Available on Widget, provided by the XWidget extension

padOnly({double left = 0, double top = 0, double right = 0, double bottom = 0}) Widget

Available on Widget, provided by the XWidget extension

padRight(double value) Widget

Available on Widget, provided by the XWidget extension

padSliverBy({double? left, double? top, double? right, double? bottom, double? horizontal, double? vertical}) Widget

Available on Widget, provided by the XWidgetArcane extension

padSliverHorizontal(double value) Widget

Available on Widget, provided by the XWidgetArcane extension

padTop(double value) Widget

Available on Widget, provided by the XWidget extension

positioned({Key? key, double? left, double? top, double? right, double? bottom}) Widget

Available on Widget, provided by the WidgetExtension extension

shadeEdge(double radius) Widget

Available on Widget, provided by the XWidgetEdge extension

shadeFrost(double value) Widget

Available on Widget, provided by the XWidgetFrost extension

shadeInvert() Widget

Available on Widget, provided by the XWidgetInvert extension

shadePixelate(double radius) Widget

Available on Widget, provided by the XWidgetPixelate extension

shadePixelateBlur({int samples = 4, double pixelSize = 8, double radius = 2}) Widget

Available on Widget, provided by the XWidgetPixelateBlur extension

shadeRGB({double radius = 5, double spin = 1}) Widget

Available on Widget, provided by the XWidgetRGB extension

shadeWarp({double amplitude = 1, double frequency = 1, double z = 1, int octaves = 2}) Widget

Available on Widget, provided by the XWidgetWarp extension

shadeWarpAnimation({double amplitude = 1, double frequency = 1, double z = 1, double zSpeed = 1, int octaves = 2}) Widget

Available on Widget, provided by the XWidgetWarp extension

shimmer({bool loading = true}) Widget

Available on Widget, provided by the XWidgetArcane extension

sized({double? width, double? height}) Widget

Available on Widget, provided by the WidgetExtension extension

sized({double? width, double? height}) Widget

Available on Widget, provided by the XWidget extension

then(InlineSpan span) Widget

Available on Widget, provided by the TextExtension extension

thenButton({required VoidCallback onPressed, required Widget child}) Widget

Available on Widget, provided by the TextExtension extension

thenInlineCode(String text) Widget

Available on Widget, provided by the TextExtension extension

thenText(String text) Widget

Available on Widget, provided by the TextExtension extension

toBox(BuildContext context, {bool softWarn = true}) Widget

Available on Widget, provided by the XSliverWidget extension

toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toSliver(BuildContext context, {bool fillRemaining = false, bool softWarn = true}) Widget

Available on Widget, provided by the XSliverWidget extension

toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited
transform({Key? key, required Matrix4 transform}) Widget

Available on Widget, provided by the WidgetExtension extension

withAlign(AlignmentGeometry alignment) Widget

Available on Widget, provided by the WidgetExtension extension

withMargin({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all}) Widget

Available on Widget, provided by the WidgetExtension extension

withOpacity(double opacity) Widget

Available on Widget, provided by the WidgetExtension extension

withPadding({double? top, double? bottom, double? left, double? right, double? horizontal, double? vertical, double? all, EdgeInsetsGeometry? padding}) Widget

Available on Widget, provided by the WidgetExtension extension

withTooltip(String tooltip) Widget

Available on Widget, provided by the XWidgetArcane extension

Operators

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