Form Layout

Give your forms some structure—from inline to horizontal to custom grid implementations—with our form layout options.

Utilities

We recommend sticking to margin-bottom utilities, and using a single direction throughout the form for consistency.

														
<div class="mb-3">
	<label for="formGroupExampleInput" class="form-label">Example label</label>
	<input type="text" class="form-control" id="formGroupExampleInput" placeholder="Example input placeholder">
	</div>
<div>
	<label for="formGroupExampleInput2" class="form-label">Another label</label>
	<input type="text" class="form-control" id="formGroupExampleInput2" placeholder="Another input placeholder">
</div>
													
Form grid

More complex forms can be built using our grid classes. Use these for form layouts that require multiple columns, varied widths, and additional alignment options.

														
<div class="row">
	<div class="col">
		<input type="text" class="form-control" placeholder="First name" aria-label="First name">
	</div>
	<div class="col">
		<input type="text" class="form-control" placeholder="Last name" aria-label="Last name">
	</div>
</div>
												
Gutters

y adding gutter modifier classes, you can have control over the gutter width in as well the inline as block direction.

														
<form class="row g-3">
	<div class="col-md-6">
		<label for="inputEmail4" class="form-label">Email</label>
		<input type="email" class="form-control" id="inputEmail4">
	</div>
	<div class="col-md-6">
		<label for="inputPassword4" class="form-label">Password</label>
		<input type="password" class="form-control" id="inputPassword4">
	</div>
	<div class="col-12">
		<label for="inputAddress" class="form-label">Address</label>
		<input type="text" class="form-control" id="inputAddress" placeholder="1234 Main St">
	</div>
	<div class="col-12">
		<label for="inputAddress2" class="form-label">Address 2</label>
		<input type="text" class="form-control" id="inputAddress2" placeholder="Apartment, studio, or floor">
	</div>
	<div class="col-md-6">
		<label for="inputCity" class="form-label">City</label>
		<input type="text" class="form-control" id="inputCity">
	</div>
	<div class="col-md-4">
		<label for="inputState" class="form-label">State</label>
		<select id="inputState" class="form-select">
		<option selected>Choose...</option>
		<option>...</option>
		</select>
	</div>
	<div class="col-md-2">
		<label for="inputZip" class="form-label">Zip</label>
		<input type="text" class="form-control" id="inputZip">
	</div>
	<div class="col-12">
		<div class="form-check">
			<input class="form-check-input" type="checkbox" id="gridCheck">
			<label class="form-check-label" for="gridCheck">
				Check me out
			</label>
		</div>
	</div>
	<div class="col-12">
		<button type="submit" class="btn btn-primary">Sign in</button>
	</div>
</form>
													
Horizontal form

reate horizontal forms with the grid by adding the .row class to form groups and using the .col-*-* classes to specify the width of your labels and controls.

Radios
														
<form>
<div class="row mb-3">
	<label for="inputEmail3" class="col-sm-2 col-form-label">Email</label>
	<div class="col-sm-10">
		<input type="email" class="form-control" id="inputEmail3">
	</div>
</div>
<div class="row mb-3">
	<label for="inputPassword3" class="col-sm-2 col-form-label">Password</label>
	<div class="col-sm-10">
		<input type="password" class="form-control" id="inputPassword3">
	</div>
</div>
<fieldset class="row mb-3">
	<legend class="col-form-label col-sm-2 pt-0">Radios</legend>
	<div class="col-sm-10">
		<div class="form-check">
			<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios1" value="option1" checked>
			<label class="form-check-label" for="gridRadios1">
				First radio
			</label>
		</div>
		<div class="form-check">
			<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios2" value="option2">
			<label class="form-check-label" for="gridRadios2">
				Second radio
			</label>
		</div>
		<div class="form-check disabled">
			<input class="form-check-input" type="radio" name="gridRadios" id="gridRadios3" value="option3" disabled>
			<label class="form-check-label" for="gridRadios3">
				Third disabled radio
			</label>
		</div>
	</div>
</fieldset>
<div class="row mb-3">
	<div class="col-sm-10 offset-sm-2">
		<div class="form-check">
			<input class="form-check-input" type="checkbox" id="gridCheck1">
			<label class="form-check-label" for="gridCheck1">
				Example checkbox
			</label>
		</div>
	</div>
</div>
<button type="submit" class="btn btn-primary">Sign in</button>
</form>
												
Inline forms

Use the .row-cols-* classes to create responsive horizontal layouts. By adding gutter modifier classes, we’ll have gutters in horizontal and vertical directions.

@
														
<form class="row row-cols-lg-auto g-3 align-items-center">
	<div class="col-12">
		<label class="visually-hidden" for="inlineFormInputGroupUsername">Username</label>
		<div class="input-group">
			<div class="input-group-text">@</div>
			<input type="text" class="form-control" id="inlineFormInputGroupUsername" placeholder="Username">
		</div>
	</div>
	
	<div class="col-12">
		<label class="visually-hidden" for="inlineFormSelectPref">Preference</label>
		<select class="form-select" id="inlineFormSelectPref">
			<option selected>Choose...</option>
			<option value="1">One</option>
			<option value="2">Two</option>
			<option value="3">Three</option>
		</select>
	</div>
	
	<div class="col-12">
		<div class="form-check">
			<input class="form-check-input" type="checkbox" id="inlineFormCheck">
			<label class="form-check-label" for="inlineFormCheck">
			Remember me
			</label>
		</div>
	</div>
	
	<div class="col-12">
			<button type="submit" class="btn btn-primary">Submit</button>
	</div>
</form>
													
Form with icon

Place an icon inside add-on on either side of an input. You may also place one on right side of an input.

														
<form>
	<div class="form-group">
		<label class="form-label" for="exampleInputuname_1">User Name</label>
		<div class="input-group">
			<span class="input-group-text"><i class="fa fa-user"></i></span>
			<input type="text" class="form-control" id="exampleInputuname_1" placeholder="Username">
		</div>
	</div>
	<div class="form-group">
		<label class="form-label" for="exampleInputEmail_1">Email address</label>
		<div class="input-group">
			<span class="input-group-text"><i class="fa fa-inbox"></i></span>
			<input type="email" class="form-control" id="exampleInputEmail_1" placeholder="Enter email">
		</div>
	</div>
	<div class="form-group">
		<label class="form-label" for="exampleInputpwd_1">Password</label>
		<div class="input-group">
			<span class="input-group-text"><i class="fa fa-lock"></i></span>
			<input type="password" class="form-control" id="exampleInputpwd_1" placeholder="Enter email">
		</div>
	</div>
	<div class="form-group">
		<label class="form-label" for="exampleInputpwd_2">Confirm Password</label>
		<div class="input-group">
			<span class="input-group-text"><i class="fa fa-lock"></i></span>
			<input type="password" class="form-control" id="exampleInputpwd_2" placeholder="Enter email">
		</div>
	</div>
	<div class="form-group">
		<label class="form-label">Gender</label>
		<div>
			<div class="form-check mb-1">
				<input id="radio_1" name="radio1" class="form-check-input" checked="" type="radio">
				<label class="form-check-label" for="radio_1">M</label>
			</div>
			<div class="form-check">
				<input id="radio_2" name="radio1" class="form-check-input" checked="" type="radio">
				<label class="form-check-label" for="radio_1">F</label>
			</div>
		</div>
	</div>
	<div class="form-group">
		<div class="form-check">
			<input class="form-check-input" id="checkbox_1" type="checkbox" checked>
			<label class="form-check-label" for="checkbox_1">Remember me</label>
		</div>
	</div>
	<button type="submit" class="btn btn-primary me-1">Submit</button>
	<button type="submit" class="btn btn-light">Cancel</button>
</form>