Tutorials References Exercises Videos Menu
Create Website Get Certified Upgrade

Bootstrap 5 Forms


Stacked Form

All textual <input> and  <textarea> elements with class .form-control get proper form styling:

Example

<form action="/action_page.php">
  <div class="mb-3 mt-3">
    <label for="email" class="form-label">Email:</label>
    <input type="email" class="form-control" id="email" placeholder="Enter email" name="email">
  </div>
  <div class="mb-3">
    <label for="pwd" class="form-label">Password:</label>
    <input type="password" class="form-control" id="pwd" placeholder="Enter password" name="pswd">
  </div>
  <div class="form-check mb-3">
    <label class="form-check-label">
      <input class="form-check-input" type="checkbox" name="remember"> Remember me
    </label>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>
Try it Yourself »

Also note that we add a .form-label class to each label element to ensure correct padding.

Checkboxes have different markup. They are wrapped around a container element with .form-check, and labels have a class of .form-check-label, while checkboxes and radio buttons use .form-check-input.


Textarea

Example

<label for="comment">Comments:</label>
<textarea class="form-control" rows="5" id="comment" name="text"></textarea>
Try it Yourself »


Form Row/Grid (Inline Forms)

If you want your form elements to appear side by side, use .row and .col:

Example

<form>
  <div class="row">
    <div class="col">
      <input type="text" class="form-control" placeholder="Enter email" name="email">
    </div>
    <div class="col">
      <input type="password" class="form-control" placeholder="Enter password" name="pswd">
    </div>
  </div>
</form>
Try it Yourself »

You will learn much more about columns and rows in the Bootstrap Grids Chapter.


Form Control Size

You can change the size of .form-control inputs with .form-control-lg or .form-control-sm:

Example

<input type="text" class="form-control form-control-lg" placeholder="Large input">
<input type="text" class="form-control" placeholder="Normal input">
<input type="text" class="form-control form-control-sm" placeholder="Small input">
Try it Yourself »

Disabled and Readonly

Use the disabled and/or readonly attributes to disable the input field:

Example

<input type="text" class="form-control" placeholder="Normal input">
<input type="text" class="form-control" placeholder="Disabled input" disabled>
<input type="text" class="form-control" placeholder="Readonly input" readonly>
Try it Yourself »

Plain text Inputs

Use the .form-control-plaintext class to style an input field without borders, but keep proper marigins and padding:

Example

<input type="text" class="form-control-plaintext" placeholder="Plaintext input">
<input type="text" class="form-control" placeholder="Normal input">
Try it Yourself »

Color Picker

To style an input with type="color" properly, use the .form-control-color class:

Example

<input type="color" class="form-control form-control-color" value="#CCCCCC">
Try it Yourself »