...
Type | Usage | Image |
Main tabs | Single row above the associated content. Use it as tabbed navigation. | |
z2nd 2nd level tabs | Use only as a second level to main tabs. | |
Details panel tabs | Use only in the Details Panel. | |
Ribbon tabs | Use only in the Ribbon as tabbed navigation. |
...
Tab items, shown using short text labels.
Divider line between beneath the tabs, above the content.
Active tab. To differentiate the active tab from inactive tabs, apply a 3 px colored underline. (Designs for tabs in the Details Panel and Ribbon differ)An active tab, which is visually different.
The horizontal layout of tabs never changes.:
They always appear side by side in a single row.
There's always only one active tab selected at a any given time.
Default state
By default, the left tab is the first active tab. Note: This is the initial setting provided by the control. Technically you can override the initial selection, but it is not recommended.Subsequently, the tab last selected by the user can be shown instead.
Content
The label describes the content contained within each tab, and sets user expectations.
They should be short: one or two words maximum.
Icons are not permitted as tab labels.
...
Only one tab can be selected at a time.
A tab can be selected by clicking on the entire labelit.
Selecting a tab will change the view below to the new tab’s associated content.
Clicking on a new tab will automatically remove the selection from the previously-selected tab.
When the tab label is truncated, hovering over it will show a Tooltip with the full label.
...
Tab item error | ||
Tab item warning |
Best practices
Use
to switch between views, data sets, or functional options.
when the content needs to be organized into exclusive groups.
Don’t use
when there is not a lot of content. In this case consider using an Accordion.
when there are dependencies between tabs. In this case, consider using a Wizard.
when all the data needs to be visible in one place.
General
Use clear and short labels.
Do not use icons for tab labels.
Keep in mind reduced mobile widths and space for translated labels - the character length of a label will impact the experience.
A maximum of six tabs is recommended. This is to maintain an uncluttered UI and reduce cognitive load for users.
In the Details panel, a maximum of four tabs is recommended.
Tab Tabs should be ordered by importance, popularity or user’s workflow. The order should be consistent across an the experience.
Tabs with related content should be grouped adjacent to each other.
Accessibility compliance
Each component should be A11y complied. Please follow the 3 guidelines linked below. At the very least we should document that each component is in compliance with each of the 3.
Focus management
We already set a general guidelines described in Keyboard & Focus Management Guidelines
Screen reader support
Make sure the components support screen reader for content or behavior where needed - see Screen Reader Guidelines
...
Unless otherwise specified, see our general compliance information in Fundamentals - Accessibility
Design
Zeplin link | Screen thumbnail |
---|---|
Main Tabs | |
2nd Level Tabs | |
Details Pane Tabs | |
Ribbon Tabs - Expand |
Code
TBD
Current appearances in our products
Resources
https://tympanus.net/Development/TabStylesInspiration/
https://material.io/guidelines/components/tabs.html
Needs to be designed
Open issues
Maximum tab number - vertical and horizontal
Scroll tab - out of the window
Align tab solution between mobile and desktop (card / line)
Decide about maximum letter on title
Next Steps/Tasks
UX design
To see full view of tab with other components
General suggestion - implementation more interaction for update system to today design
...
Html macro | ||
---|---|---|
| ||
<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">Main Tabs <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"> <ul class="nav nav-tabs nav-tabs-sm nav-justified"> <li class="nav-item"> <a class="nav-link active show" data-toggle="tab" href="#design">Design</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#collect">Collect</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#analyze">Analyze</a> </li> </ul> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><ul class="nav nav-tabs nav-tabs-sm nav-justified"> <li class="nav-item"> <a class="nav-link active show" data-toggle="tab" href="#design">Design</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#collect">Collect</a> </li> <li class="nav-item"> <a class="nav-link" data-toggle="tab" href="#analyze">Analyze</a> </li> </ul> <div class="tab-content"> <div id="design" class="tab-pane fade active show"></div> <div id="collect" class="tab-pane fade"></div> <div id="analyze" class="tab-pane fade"></div> </div></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"> <ul class="nav nav-tabs nav-tabs-sm nav-justified"> <li class="nav-item"> <a class="nav-link disabled" data-toggle="tab" href="#design">Design</a> </li> <li class="nav-item"> <a class="nav-link disabled" data-toggle="tab" href="#collect">Collect</a> </li> <li class="nav-item"> <a class="nav-link disabled" data-toggle="tab" href="#analyze">Analyze</a> </li> </ul> </div> <div class="col-lg-6"> <pre class="language-html"><code><script type="prism-html-markup"><ul class="nav nav-tabs nav-tabs-sm nav-justified"> <li class="nav-item"> <a class="nav-link disabled" data-toggle="tab" href="#design">Design</a> </li> <li class="nav-item"> <a class="nav-link disabled" data-toggle="tab" href="#collect">Collect</a> </li> <li class="nav-item"> <a class="nav-link disabled" data-toggle="tab" href="#analyze">Analyze</a> </li> </ul> <div class="tab-content"> <div id="design" class="tab-pane fade active show"></div> <div id="collect" class="tab-pane fade"></div> <div id="analyze" class="tab-pane fade"></div> </div></script></code></pre> </div> </div> </form> </div> </div> |
...