OudsButton class

OUDS Button design guidelines

Buttons are interactive elements designed to trigger specific actions or events when tapped by a user.

This version of the button uses the text only layout which is the most used layout. Other layouts are available for this component: text + icon and icon only.

Note that in the case it is placed in an OudsColoredBox, its monochrome variant is automatically displayed. Some tokens associated with these specific colors can be customized and are identified with the Mono suffix (for instance OudsButtonTokens.colorBgDefaultEnabledMono).

Parameters:

  • label: Label displayed in the button which describes the button action. Use action verbs or phrases to tell the user what will happen next.

  • icon: Icon displayed in the button. Use an icon to add additional affordance where the icon has a clear and well-established meaning.

  • onPressed: Callback invoked when the button is clicked.

    Controls the enabled state of the button when loader is equal to null. When false, this button will not be clickable. Has no effect when loader is not null.

  • loader: An optional loading progress indicator displayed in the button to indicate an ongoing operation.

  • hierarchy: The button appearance based on its OudsButtonHierarchy. A button with OudsButtonHierarchy.negative hierarchy is not allowed as a direct or indirect child of an OudsColoredBox and will throw an IllegalStateException.

You can use OudsButton like this :

Text only button :

This is the default layout of the component.

OudsButton(
      label: 'Button',
      hierarchy: OudsButtonHierarchy.defaultHierarchy,
      onPressed: () {
        // Handle button tap.
     },
    );

This is the Loading layout of the component.

OudsButton(
      label: 'Button',
      loader: Loader(progress: null),
      hierarchy: OudsButtonHierarchy.defaultHierarchy,
      onPressed: () {
        // Handle button tap.
     },
    );
Inheritance

Constructors

OudsButton.new({Key? key, String? label, String? icon, VoidCallback? onPressed, Loader? loader, required OudsButtonHierarchy hierarchy})
const

Properties

hashCode int
The hash code for this object.
no setterinherited
hierarchy OudsButtonHierarchy
final
icon String?
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
label String?
final
layout OudsButtonLayout
Property that detects and returns the button layout based on the provided elements (text and/or icon)
no setter
loader Loader?
final
onPressed VoidCallback?
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

createElement() StatefulElement
Creates a StatefulElement to manage this widget's location in the tree.
inherited
createState() State<OudsButton>
Creates the mutable state for this widget at a given location in the tree.
override
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
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
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

Operators

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