BS5 Spinners

Bootstrap 5 Spinners are used to indicate the loading state of a component or process. They are lightweight and fully customizable with utility classes.

Key Topics

Basic Spinners

Bootstrap spinners are created with the .spinner-border or .spinner-grow class.

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

Explanation: Use .spinner-border for a circular spinner and .spinner-grow for a growing spinner. The .visually-hidden class ensures accessibility.

Spinner Colors

Add contextual classes like .text-primary or .text-danger to change spinner colors.

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

Explanation: Add color classes like .text-primary or .text-success to match the spinners with your theme.

Spinner Sizes

Use size classes like .spinner-border-sm or .spinner-grow-sm for smaller spinners.

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

Explanation: The -sm suffix creates smaller spinners suitable for compact layouts.

Complete Spinner Example

Below is a complete HTML page demonstrating Bootstrap spinners with different styles and sizes.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bootstrap 5 Spinners Demo</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-4">
        <h2>Bootstrap Spinners</h2>

        <h3>Basic Spinners</h3>
        <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>

        <h3>Colored Spinners</h3>
        <div class="spinner-border text-primary" role="status">
            <span class="visually-hidden">Loading...</span>
        </div>
        <div class="spinner-grow text-danger" role="status">
            <span class="visually-hidden">Loading...</span>
        </div>

        <h3>Small Spinners</h3>
        <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>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

Explanation: This example combines all spinner styles and sizes in a responsive layout.

Key Takeaways

  • Use .spinner-border or .spinner-grow for spinners.
  • Apply contextual classes like .text-primary for color.
  • Adjust spinner sizes with .spinner-border-sm or .spinner-grow-sm.