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.
See also (split, icon button, ribbon button? link or text link? segmented buttons such as the zoomer? toggle button?)
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). |
Link ![]() | |
Ribbon ![]() | Used in the ribbon pattern. see <<TBD link to pattern>> |
Toggle ![]() |
A button allows the user to trigger a "flow defined single action" (e.g. Apply, Continue, Expand) in context to a container its located in. Some examples include Add, Save, Delete, Cancel. Do not use Buttons as navigational elements. Instead, use Links because it takes the user to a new page and is not associated with an action. Each pane or popup can have one primary button. Any remaining calls-to-action are represented as secondary buttons.
Button labels tell users what will happen when they click the button.
The buttons themselves are not responsive. The button text and position depend on the settings for the parent container.
Use buttons in situations where users might need to:
Buttons can be enabled or disabled.
Of the enabled buttons - only a single button can be the default button, this button activates the action when Enter is pressed.
If an action button is temporarily inactive, use the disabled status.
The button itself cannot have an error state. However, 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.
<link rel="stylesheet" href="https://ux.verint.com/fonts/css/verint_lux.css"> <link rel="stylesheet" href="https://ux.verint.com/bootstrap-4.0.0/dist/css/bootstrap.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://ux.verint.com/bootstrap-4.0.0/dist/js/bootstrap.bundle.js"></script> <script src="https://ux.verint.com/bootstrap-4.0.0/dist/other/accessibility.js"></script> <script src="https://ux.verint.com/bootstrap-4.0.0/dist/other/prism.min.js"></script> <link rel="stylesheet" href="https://ux.verint.com/bootstrap-4.0.0/dist/other/prism-coy.min.css"> <div class="card"> <div class="card-header">Emphasized Button <button id="toggleMarkup" type="button" class="btn btn-sm btn-outline-primary btn btn-fixed-width float-right m-0" onclick="$('pre' ).toggle()">Toggle Markup</button></div> <div class="card-body"> <form> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Regular</label> <div class="col-lg-4"> <button type="button" class="btn btn-secondary btn-sm btn-fixed-width">Empha Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-secondary btn-sm btn-fixed-width">Empha Button</button></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Disabled</label> <div class="col-lg-4"> <button type="button" class="btn btn-secondary btn-sm btn-fixed-width" disabled>Empha Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-secondary btn-sm btn-fixed-width" disabled>Empha Button</button></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Error</label> <div class="col-lg-4"> <button type="button" class="btn btn-secondary btn-sm btn-fixed-width is-invalid">Empha Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-secondary btn-sm btn-fixed-width is-invalid">Empha Button</button></script></code></pre> </div> </div> </form> </div> </div> <div class="card"> <div class="card-header">Enter Button</div> <div class="card-body"> <form> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Regular</label> <div class="col-lg-4"> <button type="button" class="btn btn-primary btn-sm btn-fixed-width">Enter Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-primary btn-sm btn-fixed-width">Enter Button</button></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Disabled</label> <div class="col-lg-4"> <button type="button" class="btn btn-primary btn-sm btn-fixed-width" disabled>Enter Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-primary btn-sm btn-fixed-width" disabled>Enter Button</button></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Error</label> <div class="col-lg-4"> <button type="button" class="btn btn-primary btn-sm btn-fixed-width is-invalid">Enter Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-primary btn-sm btn-fixed-width is-invalid">Enter Button</button></script></code></pre> </div> </div> </form> </div> </div> <div class="card"> <div class="card-header">Regular Button</div> <div class="card-body"> <form> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Regular</label> <div class="col-lg-4"> <button type="button" class="btn btn-light btn-sm btn-fixed-width">Default Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-light btn-sm btn-fixed-width">Default Button</button></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Disabled</label> <div class="col-lg-4"> <button type="button" class="btn btn-light btn-sm btn-fixed-width" disabled>Default Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-light btn-sm btn-fixed-width" disabled>Default Button</button></script></code></pre> </div> </div> <div class="form-group row"> <label for="inputKey" class="col-lg-2 col-form-label col-form-label-sm">Error</label> <div class="col-lg-4"> <button type="button" class="btn btn-light btn-sm btn-fixed-width is-invalid">Default Button</button> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><button type="button" class="btn btn-light btn-sm btn-fixed-width is-invalid">Default Button</button></script></code></pre> </div> </div> </form> </div> </div> |
Related