Growing Spinner

The growing spinner uses currentColor, so you can change its color with text color utilities.

Loading...
<div class="spinner-border text-primary" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
Colors Spinner

The growing spinner uses currentColor, so you can change its color with text color utilities.

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
<div class="spinner-border text-primary" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-secondary" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-success" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-danger" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-warning" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-info" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-light" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-border text-dark" role="status">
    <span class="visually-hidden">Loading...</span>
</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!

Loading...
<div class="spinner-grow text-dark" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
Color 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!

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
<div class="spinner-grow text-primary" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-secondary" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-success" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-danger" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-warning" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-info" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-light" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
<div class="spinner-grow text-dark" role="status">
    <span class="visually-hidden">Loading...</span>
</div>
Button spinner

Use spinners within buttons to indicate an action is currently processing or taking place.

<div class="d-flex flex-wrap align-items-center justify-content-between gap-3">
    <div class="d-flex flex-wrap align-items-center gap-3">
        <button class="btn btn-primary icon-btn" type="button" disabled>
            <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
            <span class="visually-hidden" role="status">Loading...</span>
        </button>
        <button class="btn btn-primary bg-primary" type="button" disabled>
            <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
            <span class="ms-1" role="status">Loading...</span>
        </button>
    </div>
    <div class="d-flex flex-wrap align-items-center gap-3">
        <button class="btn btn-danger icon-btn" type="button" disabled>
            <span class="spinner-grow spinner-grow-sm" aria-hidden="true"></span>
            <span class="visually-hidden" role="status">Loading...</span>
        </button>
        <button class="btn btn-danger bg-danger" type="button" disabled>
            <span class="spinner-grow spinner-grow-sm" aria-hidden="true"></span>
            <span class="ms-1" role="status">Loading...</span>
        </button>
    </div>
    <div class="d-flex flex-wrap align-items-center gap-3">
        <button class="btn btn-success icon-btn text-success bg-success-subtle" type="button" disabled>
            <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
            <span class="visually-hidden" role="status">Loading...</span>
        </button>
        <button class="btn btn-success text-success bg-success-subtle" type="button" disabled>
            <span class="spinner-border spinner-border-sm" aria-hidden="true"></span>
            <span class="ms-1" role="status">Loading...</span>
        </button>
    </div>
    <div class="d-flex flex-wrap align-items-center gap-3">
        <button class="btn btn-info icon-btn text-info bg-info-subtle" type="button" disabled>
            <span class="spinner-grow spinner-grow-sm" aria-hidden="true"></span>
            <span class="visually-hidden" role="status">Loading...</span>
        </button>
        <button class="btn btn-info text-info bg-info-subtle" type="button" disabled>
            <span class="spinner-grow spinner-grow-sm" aria-hidden="true"></span>
            <span class="ms-1" role="status">Loading...</span>
        </button>
    </div>
</div>
Spinner Sizes

Display different sizes of spinners using utility classes or inline styles to visually indicate loading or processing states. Combine with color classes to represent various statuses.

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
<div class="d-flex flex-wrap align-items-center gap-5">
    <div class="spinner-border w-48px h-48px" role="status">
        <span class="visually-hidden">Loading...</span>
    </div>
    <div class="spinner-grow w-48px h-48px" role="status">
        <span class="visually-hidden">Loading...</span>
    </div>
</div>
<div class="d-flex flex-wrap align-items-center gap-5 ps-5">
    <div class="spinner-border" role="status">
        <span class="visually-hidden">Loading...</span>
    </div>
    <div class="spinner-grow" role="status">
        <span class="visually-hidden">Loading...</span>
    </div>
</div>
<div class="d-flex flex-wrap align-items-center gap-5 ps-5">
    <div class="spinner-border spinner-border-sm" role="status">
        <span class="visually-hidden">Loading...</span>
    </div>
    <div class="spinner-grow spinner-grow-sm" role="status">
        <span class="visually-hidden">Loading...</span>
    </div>
</div>

Theme Customization

Layout:
Vertical
Horizontal
Semi Box
Content Width:
Default
Box
Layout Direction:
LTR
RTL
Layout Mode:
Light
Dark
System
Sidebar Size:
Default
Medium
Icon
Icon hover