A component which allows the user to trigger a "flow defined single action" (e.g. Apply, Continue, Expand) in context to a container its located in (e.g. screen, form, wizard, popup, popover etc...).
Example for a table with a row of buttons from different types (icon, Icon + name, split) at the top
Buttons differ from links in this regard, because links navigate the user to a new state in the application but never initialize any actions.
Types
Type
Usage
Primary / Secondary
Used for either main or secondary action on the page/pane/dialog
Icon / icon + label
Buttons used in buttons to better communicate what the button does.
split
Used when there are several possible actions related but only one primary action (e.g most frequent used).
Ribbon
Used in the ribbon pattern. see <<TBD link to pattern>>
Toggle
Link
Usage & Behavior
A button allows the user to trigger a "flow defined single action" (e.g. Apply) in context to a container its located in. Some examples includeAdd,Save,Delete,Cancel. Each pane or popup can have one primary button. Any remaining calls-to-action are represented as secondary buttons.
General guidelines
Labels
Button labels tell users what will happen when they click the button.
Choose a button text that is short and meaningful.
Use imperative verbs that describe the action, such as Add or Delete. Use sentence-style capitalization (only the first word in a phrase and any proper nouns are capitalised). In most cases, do not use more than three words for button labels.
For Sets of Buttons, use specific labels, such as Save or Discard, instead of using OK and Cancel. This is particularly helpful when the user is confirming an action.
In some instances a well understood acronym may be used.
Responssiveness
Only ribbon buttons of icon <<TBD link to appropriate place>>
The buttons themselves are not responsive
<<Future suggestion - to make the primary/secondary buttons change to icons in case for responsiveness>>
Interaction (general for all buttons)
When hovering, Mouse cursor change from - pointer To - Hand
Clicking (pressing and releasing the input source e.g. left mouse button) on the button will initiate its action
Validations and errors
Buttons can have an error or warning state depends on type <<and warning state?>>
If a page, pane or form has an error, the buttons are disabled and an error appears above or next to them.
link to validations? can the button error state occur? If yes then when. If no - then we need to move from the design.
Transitions
Described in Ribbon buttons
Best practices
Use buttons in situations where users might need to:
submit a form
begin a new task
trigger a new UI element to appear on the page
specify a new or next step in a process
Don’t combine an icon and text within one button
Do not use Buttons as navigational elements. Instead, useLinks.
Accessibility compliance
Focus management
<<How will the component work with keyboard only - without a mouse. Can be reference if written above