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:
- Button.primary: Prominent primary actions with filled background
- Button.secondary: Secondary actions with muted background
- Button.outline: Actions with outline border and transparent background
- Button.ghost: Subtle actions with minimal visual weight
- Button.link: Text-only actions that appear as links
- Button.text: Plain text actions with hover effects
- Button.destructive: Dangerous actions with destructive styling
- Button.card: Card-like appearance for container buttons
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
-
Button.link({Key? key, WidgetStatesController? statesController, Widget? leading, Widget? trailing, required Widget child, VoidCallback? onPressed, FocusNode? focusNode, AlignmentGeometry? alignment, bool? enabled, AbstractButtonStyle style = ButtonVariance.link, 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.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 toAnimate(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 -
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 -
padBottom(
double value) → Widget -
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 -
padOnly(
{double left = 0, double top = 0, double right = 0, double bottom = 0}) → Widget -
padRight(
double value) → Widget -
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 -
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 -
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