Progress Indicators

Provides continuous feedback regarding the progress of an operation.

Progress indicators provide users continuous feedback regarding the progress of an operation. The visual element helps the user understand something is happening and makes the action feel faster and more responsive.

A progress indicator bar should be used when the completion status can be estimated in real-time. The bar gradually fills with color as the operation progresses.

A loading indicator animation should be used when the completion status cannot be estimated, or when a visual element is updating. The animation reinforces that the operation is occurring.

Some operations can be controlled by the user. In these cases, the user controlled progress indicator is accompanied by options such as Cancel or Pause. Such controls appear beneath the bar and are left-aligned.

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 Progress Indicator

Standard Progress Indicator with Percentage

<div class="dds__progress-bar"> <div class="dds__progress-bar-standard" role="progressbar" style="width: 52%;" aria-valuenow="52" aria-valuemin="0" aria-valuemax="100" data-toggle="dds__progress" data-showtext="true">52%</div>
</div>

Standard Progress Indicator with Animation and Percentage

<div class="dds__progress-bar"> <div class="dds__progress-bar-standard dds__progress-bar-striped dds__progress-bar-animated" role="progressbar" style="width: 52%;" aria-valuenow="52" aria-valuemin="0" aria-valuemax="100" data-toggle="dds__progress" data-showtext="true">52%</div>
</div>

User Controlled Progress Indicator

No items found.

Loading Indicators

Standard Loading Indicator

<div> <svg style="height: 32px; width: 32px;"> <use xlink:href="#dds__loading-sqrs"></use>
#shadow-root (closed)
<svg id="dds__loading-sqrs" viewBox="0 0 32 32"> <title>loading-sqrs</title> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: 0.05s; animation-delay: 0.05s; fill: #000000;" d="M1.802 2h11.915v11.915h-11.915v-11.915z"></path> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: 0.45s; animation-delay: 0.45s; fill: #000000;" d="M18.085 18.282h11.915v11.915h-11.915v-11.915z"></path> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: .85s; animation-delay: .85s; fill: #000000;" d="M18.085 2h11.915v11.915h-11.915v-11.915z"></path> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: 1.25s; animation-delay: 1.25s; fill: #000000;" d="M1.802 18.282h11.915v11.915h-11.915v-11.915z"></path> </svg>
</svg> </div>

Loading Indicator Modal

<div> <!-- The below svg definition was taken from the dds__loading-sqrs.svg and was added to this HTML snippet for use element. The way this def gets included/loaded is independent of its use implementation as long as its available. -->
<svg aria-hidden="true" style="position: absolute; width: 0; height: 0; overflow: hidden;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <style> /* */ @-webkit-keyframes loading-sqrs { 0%, 100% { opacity: .05; } 25% { opacity: .5; } 50% { opacity: 1; } 75% { opacity: .5; } } @keyframes loading-sqrs { 0%, 100% { opacity: .05; } 25% { opacity: .5; } 50% { opacity: 1; } 75% { opacity: .5; } } /* */ </style> <defs> <symbol id="loading-sqrs" viewBox="0 0 32 32"> <title>loading-sqrs</title> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: 0.05s; animation-delay: 0.05s; fill: #000000;" d="M1.802 2h11.915v11.915h-11.915v-11.915z"></path> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: 0.45s; animation-delay: 0.45s; fill: #000000;" d="M18.085 18.282h11.915v11.915h-11.915v-11.915z"></path> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: .85s; animation-delay: .85s; fill: #000000;" d="M18.085 2h11.915v11.915h-11.915v-11.915z"></path> <path style="-webkit-animation: loading-sqrs 1.65s infinite ease-in-out both; animation: loading-sqrs 1.65s infinite ease-in-out both; -webkit-animation-delay: 1.25s; animation-delay: 1.25s; fill: #000000;" d="M1.802 18.282h11.915v11.915h-11.915v-11.915z"></path> </symbol> </defs>
</svg> <!-- The first div is used as a full screen background overlay. There are a few components that use this overlay so it only needs to be added once preferably at the top of the page below the body tag. This is a usable example. <div id="dds__full-screen-overlay" class="dds__overlay"></div> --> <!-- This is the actual HTML used to represent the Loading Modal -->
<div id="exampleModalLoading" class="dds__modal dds__loading-modal" tabindex="-1" role="dialog" aria-hidden="true" style=""> <div class="dds__modal-dialog" role="document"> <div class="dds__modal-content"> <div class="dds__modal-body dds__text-center"> <div class="dds__mb-3"> <div> <svg style="height: 32px; width: 32px;"> <use xlink:href="#dds__loading-sqrs"></use>
</svg> </div> </div> <p>Processing… Please wait.</p> </div> </div> </div>
</div>
<button id="loading-test-button" class="dds__btn dds__btn-primary" data-target="#exampleModalLoading">Programmatic Modal Launch</button>
<!-- Example usage of initializing the loading modal and controlling it via javascript
<script> // Construct the Loading the Modal and assign it to a variable so we control it programatically var loadingModal = new UIC.Modal(document.getElementById("loading-test-button"), { backdrop: 'static' } ); // This is just to show how you could programatically launch the loading modal (eg. On HTTP request) using the loadingModal variable reference document.querySelector("#loading-test-button").addEventListener("click", function (e){ loadingModal.show(); }); //This is just to show how to programatically hide the loading modal (eg. HTTP request completes) using the loadingModal variable reference document.querySelector("#exampleModalLoading").addEventListener("click", function (e){ loadingModal.hide(); });
</script> --> </div>

No items found.

To be determined.

The W3C Web Accessibility Initiative (WAI) develops standards and support materials to help you understand and implement accessibility.

Progress Bar Indicators

Please refer to the recommendations for a progressbar from WAI-ARIA 1.1.

Loading Indicators

Please follow the best practices for alerts from WAI-ARIA authoring practices 1.1.

Please also refer to the recommendations for alerts from WAI-ARIA 1.1.

You may refer to this example of an alert from WAI-ARIA practices 1.1.

For loading indicator modals, please refer to the accessibility guidelines for modals.