Tabs

Tabs are a component that subdivides page content into panes, which are displayed individually based upon which tab is active. They typically span the entire container width, and the active tab is clearly indicated.

Tabs are only used when there are two or more in the set.

When filtering the content of a tab, the filter controls should appear at the top of the active tab panel, beneath the row of tab links.

Tab Links

Content Guidelines

Only images and text may be displayed within a tab link.

  • A tab label is required.
  • A paragraph of supporting text, following the tab label, is optional.
  • An image, preceding the tab label, is optional.

Tab links should use meaningful text that clearly communicates what's within the corresponding tab panel.

Words within a tab link may hyphenate.

If there's insufficient space to display all of the text in a tab link, then truncate using ellipses "...". As always, mouse hover (or hold-press on touchscreen) should reveal the full text within a tooltip.

Overflow Controls

When the tab links exceed the available container width, they are clipped at the right fold.

Overflow controls (left/right arrows) are shown when the tab links are clipped. These function like the controls for filmstrip carousel.

Off-Canvas Modal

On smaller breakpoints, tab links become a vertical option list.

Select one of the options in the vertical list to open an off-canvas modal that contains the tab content.

Tab URL

Selecting a tab (other than the active default) should modify the page URL so that users can easily share or return to the context.

Localization

Tab links become right-aligned, and their order is reversed, for languages that read right-to-left.

Keyboard Interaction

Tab In/Out

When focus moves into a tab list, place focus on the active tab.

When the tab list already has focus, Tab key moves focus to the next element outside the tablist, which is either the first focusable element inside the tab panel or the tab panel itself.

Switching Between Tabs

When the tab list already has focus, Left Arrow moves focus to the previous tab. If focus is on the first tab, move focus to the last tab.

  • If the tabs are in a vertical list on a smaller breakpoint, Up Arrow key performs as Left Arrow described above.

When the tab list already has focus, Right Arrow moves focus to the next tab. If focus is on the last tab element, move focus to the first tab.

  • If the tabs are in a vertical list on a smaller breakpoint, Down Arrow key performs as Right Arrow described above.

Home key moves focus to the first tab.

End key moves focus to the last tab.

Tabs are automatically activated, and their corresponding panel is displayed, when they receive focus.

Do's and Don'ts

Types

Variants

Common Button Labels and Usage

Title case, 2-3 words maximum.
Do not combine actions in a label (exception: "Customize & Buy").
If standard labels don't fit the button's purpose, align label with the task the user is attempting.

Please refer to the Dell Technologies branding website, https://brand.delltechnologies.com/faq/#voice, for further information regarding call-to-action labels and usage.

Button Label:
Corresponding Action:
Add to Cart
Search
Cancel
Save
Edit
Delete
Continue
Next/Previous
Submit
Select
Sign In/Sign Out
View Details
Ok/Cancel
Learn More
Close
Takes users to Cart page, with item added
Used for search buttons
Takes users back to entry point for a task
Used to save an item
Navigates users to change an item
Deletes an item on the page, usually with a verification step
Used as progression
Used as forward and backward navigation (Next is primary, Previous is secondary)
Used to submit a task or info
Used for choosing items in a task flow
Authentication standard, for consistency do not use Log In/Log Out or Signin/Signout
Used instead of “Select” in cases of product details or within learn content
For use in modal verification steps when more specific CTAs will not fit due to space
Used to link users to more learning content or contextual help
Used within modal windows

Standard Tabs

<div class="dds__tabs-container"> <ul class="dds__tabs dds__mb-4" role="tablist" aria-label="Example description of tabs"> <li role="none"> <button id="home-tab" class="dds__tab-link dds__active" data-toggle="dds__tab" data-target="#exampleResponsiveTab" role="tab" aria-controls="home" aria-selected="true"> Home <i class="dds__icons dds__chevron-right" aria-hidden="true"></i> </button> </li> <li role="none"> <button id="profile-tab" class="dds__tab-link" tabindex="-1" data-toggle="dds__tab" data-target="#exampleResponsiveTab" role="tab" aria-controls="profile" aria-selected="false"> Profile <i class="dds__icons dds__chevron-right" aria-hidden="true"></i> </button> </li> <li role="none"> <button id="contact-tab" class="dds__tab-link" tabindex="-1" data-toggle="dds__tab" data-target="#exampleResponsiveTab" role="tab" aria-controls="contact" aria-selected="false"> Contact <i class="dds__icons dds__chevron-right" aria-hidden="true"></i> </button> </li> </ul> <div class="dds__tab-content"> <div id="home" class="dds__tab-pane dds__fade dds__show dds__active" role="tabpanel" tabindex="0" aria-labelledby="home-tab"><p>Home content</p></div> <div id="profile" class="dds__tab-pane dds__fade" role="tabpanel" tabindex="0" aria-labelledby="profile-tab"><p>Profile content</p></div> <div id="contact" class="dds__tab-pane dds__fade" role="tabpanel" tabindex="0" aria-labelledby="contact-tab"><p>Contact content</p></div> </div>
</div>

Justified Tabs with Optional Supporting Text

<div class="dds__tabs-container">
<ul class="dds__tabs dds__mb-4" role="tablist" aria-label="Example description of tabs"> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link dds__active" id="inspiron-tab" data-toggle="dds__tab" role="tab" aria-controls="inspiron" aria-selected="true"> <span> <span class="dds__h4">Inspiron Laptops</span> For home and home office </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="latitude-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="latitude" aria-selected="false"> <span> <span class="dds__h4">Latitude Laptops</span> For business-class security and reliability </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="vostro-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="vostro" aria-selected="false"> <span> <span class="dds__h4">Vostro Laptops</span> For small business computing </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="xps-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="xps" aria-selected="false"> <span> <span class="dds__h4">XPS Laptops</span> For ultimate experience </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="precision-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="precision" aria-selected="false"> <span> <span class="dds__h4">Dell Precision Mobile Workstations</span> For professional creators </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li>
</ul>
<div class="dds__tab-content" id="myTabContent"> <div class="dds__tab-pane dds__fade dds__show dds__active" id="inspiron" tabindex="0" role="tabpanel" aria-labelledby="inspiron-tab"> <h4>Inspiron Laptops</h4> <p>For home and home office</p> </div> <div class="dds__tab-pane dds__fade" id="latitude" tabindex="0" role="tabpanel" aria-labelledby="latitude-tab"> <h4>Latitude Laptops</h4> <p>For business-class security and reliability</p> </div> <div class="dds__tab-pane dds__fade" id="vostro" tabindex="0" role="tabpanel" aria-labelledby="vostro-tab"> <h4>Vostro Laptops</h4> <p>For small business computing</p> </div> <div class="dds__tab-pane dds__fade" id="xps" tabindex="0" role="tabpanel" aria-labelledby="xps-tab"> <h4>XPS Laptops</h4> <p>For ultimate experience</p> </div> <div class="dds__tab-pane dds__fade" id="precision" tabindex="0" role="tabpanel" aria-labelledby="precision-tab"> <h4>Dell Precision Mobile Workstations</h4> <p>For professional creators</p> </div>
</div>
</div>

Justified Tabs with Optional Supporting Text and Image

<div class="dds__tabs-container">
<ul class="dds__tabs dds__flex-nowrap dds__mb-4" role="tablist" aria-label="Example description of tabs"> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link dds__active" id="inspiron1-tab" data-toggle="dds__tab" role="tab" aria-controls="inspiron1" aria-selected="true"> <img src="https://via.placeholder.com/80" alt=""> <span class="dds__flex-grow-1"> <span class="dds__h4">Inspiron Laptops</span> For home and home office </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="latitude1-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="latitude1" aria-selected="false"> <img src="https://via.placeholder.com/80" alt=""> <span class="dds__flex-grow-1"> <span class="dds__h4">Latitude Laptops</span> For business-class security and reliability </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="vostro1-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="vostro1" aria-selected="false"> <img src="https://via.placeholder.com/80" alt=""> <span class="dds__flex-grow-1"> <span class="dds__h4">Vostro Laptops</span> For small business computing </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="xps1-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="xps1" aria-selected="false"> <img src="https://via.placeholder.com/80" alt=""> <span class="dds__flex-grow-1"> <span class="dds__h4">XPS Laptops</span> For ultimate experience </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> <li class="dds__flex-equal-fill" role="none"> <button class="dds__tab-link" id="precision1-tab" tabindex="-1" data-toggle="dds__tab" role="tab" aria-controls="precision1" aria-selected="false"> <img src="https://via.placeholder.com/80" alt=""> <span class="dds__flex-grow-1"> <span class="dds__h4">Dell Precision Mobile Workstations</span> For professional creators </span> <svg class="dti dds__chevron-right dds__d-md-none" aria-hidden="true"> <use xlink:href="#dds__chevron-right"></use> </svg> </button> </li> </ul> <div class="dds__tab-content" id="centeredImageTabContent"> <div id="inspiron1" class="dds__tab-pane dds__fade dds__show dds__active" tabindex="0" role="tabpanel" aria-labelledby="precision-tab"> <h4>Inspiron Laptops</h4> <p>For home and home office</p> </div> <div id="latitude1" class="dds__tab-pane dds__fade" tabindex="0" role="tabpanel" aria-labelledby="precision-tab"> <h4>Latitude Laptops</h4> <p>For business-class security and reliability</p> </div> <div id="vostro1" class="dds__tab-pane dds__fade" tabindex="0" role="tabpanel" aria-labelledby="precision-tab"> <h4>Vostro Laptops</h4> <p>For small business computing</p> </div> <div id="xps1" class="dds__tab-pane dds__fade" tabindex="0" role="tabpanel" aria-labelledby="precision-tab"> <h4>XPS Laptops</h4> <p>For ultimate experience</p> </div> <div id="precision1" class="dds__tab-pane dds__fade" tabindex="0" role="tabpanel" aria-labelledby="precision-tab"> <h4>Dell Precision Mobile Workstations</h4> <p>For professional creators</p> </div>
</div>
</div>

No items found.

No items found.

No items found.

To be determined.

Component Hierarchy

Tablist

The tablist role is used as a container for the set of tabs.

If the tab list has a visible label, the element with role tablist has aria-labelledby set to a value that refers to the labeling element. Otherwise, the tablist element has a label provided by aria-label.

To be keyboard accessible, authors should manage focus of descendants for all instances of this role.

Elements with the role tablist have an implicit aria-orientation value of horizontal.

If the tablist element is vertically oriented, it has the property aria-orientation set to vertical.

Tab

Authors must ensure elements with role tab are contained in or owned by an element with the role tablist.

The currently active tab role defines which tabpanel is in focus. Authors should ensure that a selected tab has its aria-selected attribute set to true, that inactive tab elements have their aria-selected attribute set to false.

Each element with role tab has the property aria-controls referring to its associated tabpanel element.

Tabpanel

A tabpanel role contains the content associated with a tab.

Authors should hide unselected tabpanel elements from the user until the user selects the tab associated with that tabpanel.

Each element with role tabpanel has the property aria-labelledby referring to its associated tab element.