Skip to content

Bootstrap Spinners

🎯 Overview

Bootstrap Spinners are loading indicators that can be used to show the loading state in your projects. They're built with HTML, CSS, and no JavaScript.

📦 Border Spinner

html
<div class="spinner-border" role="status">
    <span class="visually-hidden">Loading...</span>
</div>

🎨 Colors

html
<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>

💫 Growing Spinner

html
<div class="spinner-grow" role="status">
    <span class="visually-hidden">Loading...</span>
</div>

📏 Sizes

html
<!-- Small -->
<div class="spinner-border spinner-border-sm" role="status">
    <span class="visually-hidden">Loading...</span>
</div>

<!-- Large (custom) -->
<div class="spinner-border" style="width: 3rem; height: 3rem;" role="status">
    <span class="visually-hidden">Loading...</span>
</div>

🔘 Buttons

html
<button class="btn btn-primary" type="button" disabled>
    <span class="spinner-border spinner-border-sm" role="status"></span>
    <span class="visually-hidden">Loading...</span>
</button>

<button class="btn btn-primary" type="button" disabled>
    <span class="spinner-border spinner-border-sm" role="status"></span>
    Loading...
</button>

🌟 Example

html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap Spinners Example</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container my-5">
        <h1>Bootstrap Spinners Example</h1>
        
        <h2>Border Spinners</h2>
        <div class="mb-4">
            <div class="spinner-border text-primary me-2" role="status">
                <span class="visually-hidden">Loading...</span>
            </div>
            <div class="spinner-border text-success me-2" 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>
        
        <h2>Growing Spinners</h2>
        <div class="mb-4">
            <div class="spinner-grow text-primary me-2" role="status">
                <span class="visually-hidden">Loading...</span>
            </div>
            <div class="spinner-grow text-success me-2" 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>
        
        <h2>Buttons with Spinners</h2>
        <div class="mb-4">
            <button class="btn btn-primary me-2" type="button" disabled>
                <span class="spinner-border spinner-border-sm me-2" role="status"></span>
                Loading...
            </button>
            <button class="btn btn-success" type="button" disabled>
                <span class="spinner-grow spinner-grow-sm me-2" role="status"></span>
                Processing...
            </button>
        </div>
    </div>
    
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

Next Steps

Next: Bootstrap Pagination →

Content is for learning and research only.