BS5 Input Groups

Bootstrap 5 Input Groups allow you to add text, icons, or buttons before, after, or on both sides of an input field for enhanced functionality and aesthetics.

Key Topics

Basic Input Group

Create a basic input group by wrapping the input field and the additional content in an .input-group container.

<div class="input-group mb-3">
    <span class="input-group-text" id="basic-addon1">@</span>
    <input type="text" class="form-control" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
</div>

Explanation: Use .input-group-text to add text or symbols as part of the input group.

Input Group with Buttons

Add buttons to input groups using .btn classes for interactivity.

<div class="input-group mb-3">
    <input type="text" class="form-control" placeholder="Recipient's username" aria-label="Recipient's username">
    <button class="btn btn-outline-secondary" type="button">Button</button>
</div>

Explanation: Place buttons inside the .input-group container to integrate them with input fields.

Input Group with Dropdowns

Add dropdowns to input groups for more complex functionality.

<div class="input-group mb-3">
    <button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">Dropdown</button>
    <ul class="dropdown-menu">
        <li><a class="dropdown-item" href="#">Action</a></li>
        <li><a class="dropdown-item" href="#">Another action</a></li>
    </ul>
    <input type="text" class="form-control" placeholder="Dropdown example" aria-label="Text input with dropdown button">
</div>

Explanation: Use a .dropdown-toggle button and a .dropdown-menu to create dropdown-enabled input groups.

Complete Input Group Example

Below is a complete example showcasing various input group configurations.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Bootstrap 5 Input Groups 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 class="text-center">Bootstrap Input Groups</h2>
        <div class="input-group mb-3">
            <span class="input-group-text">@</span>
            <input type="text" class="form-control" placeholder="Username">
        </div>
        <div class="input-group mb-3">
            <input type="text" class="form-control" placeholder="Recipient's username">
            <button class="btn btn-outline-secondary" type="button">Button</button>
        </div>
        <div class="input-group mb-3">
            <button class="btn btn-outline-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown">Dropdown</button>
            <ul class="dropdown-menu">
                <li><a class="dropdown-item" href="#">Action</a></li>
                <li><a class="dropdown-item" href="#">Another action</a></li>
            </ul>
            <input type="text" class="form-control" placeholder="Dropdown example">
        </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 demonstrates multiple configurations of input groups, including text, buttons, and dropdowns.

Key Takeaways

  • Use .input-group to group inputs with additional elements.
  • Add .input-group-text for static content and .btn for interactive buttons.
  • Combine dropdowns with input groups for advanced interactivity.