BS5 Modal
Bootstrap 5 Modal is a dialog box or popup window for displaying content, such as forms, alerts, or additional information.
Key Topics
Basic Modal
Create a modal using the .modal
class with a button to trigger it.
<!-- Trigger Button -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
Launch Modal
</button>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal Title</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Modal content goes here.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Explanation: Use the .modal
class to create a modal container, and the data-bs-toggle
and data-bs-target
attributes to link a button to the modal.
Scrollable Modal
Make a modal scrollable by adding the .modal-dialog-scrollable
class.
<div class="modal fade" id="scrollableModal" tabindex="-1" aria-labelledby="scrollableModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="scrollableModalLabel">Scrollable Modal</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Long content goes here to make the modal scrollable.
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
Explanation: Adding the .modal-dialog-scrollable
class makes the modal body scrollable for large content.
Modal with Forms
Include a form inside a modal for user input.
<div class="modal fade" id="formModal" tabindex="-1" aria-labelledby="formModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="formModalLabel">Modal Form</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<form>
<div class="modal-body">
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1">
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</form>
</div>
</div>
</div>
Explanation: Forms can be included in the modal body for collecting user input.
Complete Modal Example
This example combines basic, scrollable, and form modals into one cohesive layout.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Bootstrap 5 Modal 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 Modal</h2>
<!-- Buttons to Trigger Modals -->
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
Launch Basic Modal
</button>
<button type="button" class="btn btn-secondary" data-bs-toggle="modal" data-bs-target="#scrollableModal">
Launch Scrollable Modal
</button>
<button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#formModal">
Launch Form Modal
</button>
<!-- Modals Here -->
<!-- Basic Modal Code -->
<!-- Scrollable Modal Code -->
<!-- Form Modal Code -->
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Explanation: This layout integrates all modal variations, showcasing Bootstrap's flexibility.
Key Takeaways
- Use
.modal
for creating modals anddata-bs-toggle
for triggering them. - Add
.modal-dialog-scrollable
for scrollable modals. - Include forms inside modals for user interaction.