Spinners
Border spinner #
Use the border spinners for a lightweight loading indicator.
<div class="spinner-border d-block" role="status">
<span class="visually-hidden">Loading...</span>
</div>
Colors #
The border spinner uses
currentColor
for its
border-color
, meaning you can customize the color with
text color utilities
. You can use any of our text color utilities on the standard spinner.
<div class="row g-3">
<div class="col-auto">
<div class="spinner-border d-block text-primary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-border d-block text-secondary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-border d-block text-success" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-border d-block text-danger" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-border d-block text-warning" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-border d-block text-info" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-border d-block text-light" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-border d-block text-dark" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
Growing spinner #
If you don't fancy a border spinner, switch to the grow spinner. While it doesn't technically spin, it does repeatedly grow!
<div class="row g-3">
<div class="col-auto">
<div class="spinner-grow d-block text-primary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow d-block text-secondary" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow d-block text-success" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow d-block text-danger" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow d-block text-warning" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow d-block text-info" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow d-block text-light" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow d-block text-dark" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
Alignment #
Use flexbox utilities , float utilities , or text alignment utilities to place spinners exactly where you need them in any situation.
<div class="d-flex align-items-center">
<div class="text-muted">Loading...</div>
<div class="spinner-border ms-auto" role="status" aria-hidden="true"></div>
</div>
Size #
Add
.spinner-border-sm
and
.spinner-grow-sm
to make a smaller spinner that can quickly be used within other components.
<div class="row g-3">
<div class="col-auto">
<div class="spinner-border spinner-border-sm d-block" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
<div class="col-auto">
<div class="spinner-grow spinner-grow-sm d-block" role="status">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
Buttons #
Use spinners within buttons to indicate an action is currently processing or taking place. You may also swap the text out of the spinner element and utilize button text as needed.
<div class="row g-3">
<div class="col-auto">
<button class="btn btn-primary" type="button" disabled="">
<span
class="spinner-border spinner-border-sm"
role="status"
aria-hidden="true"
></span
><span class="visually-hidden">Loading...</span>
</button>
</div>
<div class="col-auto">
<button class="btn btn-primary" type="button" disabled="">
<span
class="spinner-border spinner-border-sm me-3"
role="status"
aria-hidden="true"
></span
>Loading...
</button>
</div>
<div class="col-auto">
<button class="btn btn-primary" type="button" disabled="">
<span
class="spinner-grow spinner-grow-sm"
role="status"
aria-hidden="true"
></span
><span class="visually-hidden">Loading...</span>
</button>
</div>
<div class="col-auto">
<button class="btn btn-primary" type="button" disabled="">
<span
class="spinner-grow spinner-grow-sm me-3"
role="status"
aria-hidden="true"
></span
>Loading...
</button>
</div>
</div>