Examples and usage guidelines for form control styles, layout options, and custom components for creating a wide
variety of forms.
Read the official
Bootstrap Documentation for a full list of instructions
and
other options.
Float label (Outline)
Wrap <input class="form-control">
and <label>
in .form-floating .form-floating-outline
to enable floating label Outline with Bootstrap’s textual form fields.
<div class="form-floating form-floating-outline">
<input type="text" class="form-control" id="floatingInput" placeholder="John Doe" aria-describedby="floatingInputHelp" />
<label for="floatingInput">Name</label>
<div id="floatingInputHelp" class="form-text">We'll never share your details with anyone else.</div>
</div>
Float label (Filled)
Wrap <input class="form-control">
, <label>
and <span class="form-floating-focused">
in .form-floating
to enable floating label Filled with Bootstrap’s textual form fields.
<div class="form-floating">
<input type="text" class="form-control" id="floatingInputFilled" placeholder="John Doe" aria-describedby="floatingInputFilledHelp" />
<label for="floatingInputFilled">Name</label>
<span class="form-floating-focused"></span>
</div>
<div id="floatingInputFilledHelp" class="form-text">We'll never share your details with anyone else.</div>
Default
Default input style with .form-text
. For more details, read Form overview.
<div class="mb-3">
<label for="defaultFormControlInput" class="form-label">Name</label>
<input type="text" class="form-control" id="defaultFormControlInput" placeholder="John Doe" aria-describedby="defaultFormControlHelp" />
<div id="defaultFormControlHelp" class="form-text">We'll never share your details with anyone else.</div>
</div>
Textual form controls—like <input>
s, <select>
s, and <textarea>
s—are styled with the .form-control
class and wrapped with .form-floating .form-floating-outline
. Included are styles for general appearance, focus state, sizing, and more.
<div class="form-floating form-floating-outline mb-6">
<input type="email" class="form-control" id="exampleFormControlInput1" placeholder="name@example.com" />
<label for="exampleFormControlInput1">Email address</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<select class="form-select" id="exampleFormControlSelect1" aria-label="Default select example">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<label for="exampleFormControlSelect1">Example select</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" list="datalistOptions" id="exampleDataList" placeholder="Type to search...">
<datalist id="datalistOptions">
<option value="San Francisco"></option>
<option value="New York"></option>
<option value="Seattle"></option>
<option value="Los Angeles"></option>
<option value="Chicago"></option>
</datalist>
<label for="exampleDataList">Datalist example</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<select multiple class="form-select h-px-100" id="exampleFormControlSelect2" aria-label="Multiple select example">
<option selected>Open this select menu</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<label for="exampleFormControlSelect2">Example multiple select</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<textarea class="form-control h-px-100" id="exampleFormControlTextarea1" placeholder="Comments here..."></textarea>
<label for="exampleFormControlTextarea1">Example textarea</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="text" id="exampleFormControlReadOnlyInput1" placeholder="Readonly input here..." readonly />
<label for="exampleFormControlReadOnlyInput1">Read only without value</label>
</div>
<div class="form-floating form-floating-outline">
<input type="text" readonly class="form-control-plaintext" id="exampleFormControlReadOnlyInputPlain1" value="email@example.com" />
<label for="exampleFormControlReadOnlyInputPlain1">Read only with value</label>
</div>
Sizing Text Input
Set heights using classes like .form-control-lg
and .form-control-sm
.
<div class="mb-3">
<label for="largeInput" class="form-label">Large input</label>
<input id="largeInput" class="form-control form-control-lg" type="text" placeholder=".form-control-lg" />
</div>
<div class="mb-3">
<label for="defaultInput" class="form-label">Default input</label>
<input id="defaultInput" class="form-control" type="text" placeholder="Default input" />
</div>
<div class="mb-3">
<label for="smallInput" class="form-label">Small input</label>
<input id="smallInput" class="form-control form-control-sm" type="text" placeholder=".form-control-sm" />
</div>
Class | Value |
---|---|
class="form-control-{value}"
|
lg | sm |
Sizing Select Input
Set heights using classes like .form-select-lg
and .form-select-sm
.
<div class="mb-3">
<label for="largeSelect" class="form-label">Large select</label>
<select id="largeSelect" class="form-select form-select-lg">
<option>Large select</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div class="mb-3">
<label for="defaultSelect" class="form-label">Default select</label>
<select id="defaultSelect" class="form-select">
<option>Default select</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
<div>
<label for="smallSelect" class="form-label">Small select</label>
<select id="smallSelect" class="form-select form-select-sm">
<option>Small select</option>
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
</div>
Class | Value |
---|---|
class="form-select-{value}"
|
lg | sm |
File input
File input to upload single, multiple files with sizing options.
<div class="mb-3">
<label for="formFile" class="form-label">Default file input example</label>
<input class="form-control" type="file" id="formFile">
</div>
<div class="mb-3">
<label for="formFileMultiple" class="form-label">Multiple files input example</label>
<input class="form-control" type="file" id="formFileMultiple" multiple>
</div>
<div class="mb-3">
<label for="formFileDisabled" class="form-label">Disabled file input example</label>
<input class="form-control" type="file" id="formFileDisabled" disabled>
</div>
<div class="mb-3">
<label for="formFileSm" class="form-label">Small file input example</label>
<input class="form-control form-control-sm" id="formFileSm" type="file">
</div>
<div>
<label for="formFileLg" class="form-label">Large file input example</label>
<input class="form-control form-control-lg" id="formFileLg" type="file">
</div>
Create consistent cross-browser and cross-device checkboxes and radios with our checks component.
Default (stacked)
By default, any number of checkboxes and radios that are immediate sibling will be vertically stacked and
appropriately spaced with .form-check
.
<div class="row">
<div class="col-sm">
<small class="text-light fw-medium">Checkboxes</small>
<div class="form-check mt-4">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck1" />
<label class="form-check-label" for="defaultCheck1">
Unchecked
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck2" checked />
<label class="form-check-label" for="defaultCheck2">
Indeterminate
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="defaultCheck3" checked />
<label class="form-check-label" for="defaultCheck3">
Checked
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="disabledCheck1" disabled />
<label class="form-check-label" for="disabledCheck1">
Disabled Unchecked
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" value="" id="disabledCheck2" disabled checked />
<label class="form-check-label" for="disabledCheck2">
Disabled Checked
</label>
</div>
</div>
<div class="col-sm">
<small class="text-light fw-medium">Radio</small>
<div class="form-check mt-4">
<input name="default-radio-1" class="form-check-input" type="radio" value="" id="defaultRadio1" />
<label class="form-check-label" for="defaultRadio1">
Unchecked
</label>
</div>
<div class="form-check">
<input name="default-radio-1" class="form-check-input" type="radio" value="" id="defaultRadio2" checked />
<label class="form-check-label" for="defaultRadio2">
Checked
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" value="" id="disabledRadio1" disabled />
<label class="form-check-label" for="disabledRadio1">
Disabled unchecked
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" value="" id="disabledRadio2" disabled checked />
<label class="form-check-label" for="disabledRadio2">
Disabled checkbox
</label>
</div>
</div>
</div>
Inline
Group checkboxes or radios on the same horizontal row by adding .form-check-inline
to any .form-check
.
<div class="row">
<div class="col-md">
<small class="text-light fw-medium d-block">Inline Checkboxes</small>
<div class="form-check form-check-inline mt-4">
<input class="form-check-input" type="checkbox" id="inlineCheckbox1" value="option1" />
<label class="form-check-label" for="inlineCheckbox1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="option2" />
<label class="form-check-label" for="inlineCheckbox2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="checkbox" id="inlineCheckbox3" value="option3" disabled />
<label class="form-check-label" for="inlineCheckbox3">3 (disabled)</label>
</div>
</div>
<div class="col-md">
<small class="text-light fw-medium d-block">Inline Radio</small>
<div class="form-check form-check-inline mt-4">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio1" value="option1" />
<label class="form-check-label" for="inlineRadio1">1</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio2" value="option2" />
<label class="form-check-label" for="inlineRadio2">2</label>
</div>
<div class="form-check form-check-inline">
<input class="form-check-input" type="radio" name="inlineRadioOptions" id="inlineRadio3" value="option3" disabled />
<label class="form-check-label" for="inlineRadio3">3 (disabled)</label>
</div>
</div>
</div>
Variations
Materialize support several predefined checkbox & radio styles variations.
<div class="row">
<div class="col-md">
<small class="text-light fw-medium d-block">Checkboxes Colors</small>
<div class="form-check form-check-primary mt-4">
<input class="form-check-input" type="checkbox" value="" id="customCheckPrimary" checked />
<label class="form-check-label" for="customCheckPrimary">Primary</label>
</div>
<div class="form-check form-check-secondary">
<input class="form-check-input" type="checkbox" value="" id="customCheckSecondary" checked />
<label class="form-check-label" for="customCheckSecondary">Secondary</label>
</div>
<div class="form-check form-check-success">
<input class="form-check-input" type="checkbox" value="" id="customCheckSuccess" checked />
<label class="form-check-label" for="customCheckSuccess">Success</label>
</div>
<div class="form-check form-check-danger">
<input class="form-check-input" type="checkbox" value="" id="customCheckDanger" checked />
<label class="form-check-label" for="customCheckDanger">Danger</label>
</div>
<div class="form-check form-check-warning">
<input class="form-check-input" type="checkbox" value="" id="customCheckWarning" checked />
<label class="form-check-label" for="customCheckWarning"> Warning </label>
</div>
<div class="form-check form-check-info">
<input class="form-check-input" type="checkbox" value="" id="customCheckInfo" checked />
<label class="form-check-label" for="customCheckInfo"> Info </label>
</div>
<div class="form-check form-check-dark">
<input class="form-check-input" type="checkbox" value="" id="customCheckDark" checked />
<label class="form-check-label" for="customCheckDark"> Dark </label>
</div>
</div>
<div class="col-md">
<small class="text-light fw-medium d-block">Radio Color</small>
<div class="form-check form-check-primary mt-4">
<input name="customRadioPrimary" class="form-check-input" type="radio" value="" id="customRadioPrimary" checked />
<label class="form-check-label" for="customRadioPrimary"> Primary </label>
</div>
<div class="form-check form-check-secondary">
<input name="customRadioSecondary" class="form-check-input" type="radio" value="" id="customRadioSecondary" checked />
<label class="form-check-label" for="customRadioSecondary"> Secondary </label>
</div>
<div class="form-check form-check-success">
<input name="customRadioSuccess" class="form-check-input" type="radio" value="" id="customRadioSuccess" checked />
<label class="form-check-label" for="customRadioSuccess"> Success </label>
</div>
<div class="form-check form-check-danger">
<input name="customRadioDanger" class="form-check-input" type="radio" value="" id="customRadioDanger" checked />
<label class="form-check-label" for="customRadioDanger"> Danger </label>
</div>
<div class="form-check form-check-warning">
<input name="customRadioWarning" class="form-check-input" type="radio" value="" id="customRadioWarning" checked />
<label class="form-check-label" for="customRadioWarning"> Warning </label>
</div>
<div class="form-check form-check-info">
<input name="customRadioInfo" class="form-check-input" type="radio" value="" id="customRadioInfo" checked />
<label class="form-check-label" for="customRadioInfo"> Info </label>
</div>
<div class="form-check form-check-dark">
<input name="customRadioDark" class="form-check-input" type="radio" value="" id="customRadioDark" checked />
<label class="form-check-label" for="customRadioDark"> Dark </label>
</div>
</div>
</div>
Class | Value |
---|---|
class="form-check form-check-{value}"
|
primary | secondary | success | danger | warning | info | dark |
Use our custom range inputs for consistent cross-browser styling and built-in customization.
<div class="mb-3">
<label for="formRange1" class="form-label">Example range</label>
<input type="range" class="form-range" id="formRange1">
</div>
<div class="mb-3">
<label for="disabledRange" class="form-label">Disabled range</label>
<input type="range" class="form-range" id="disabledRange" disabled>
</div>
<div class="mb-3">
<label for="formRange2" class="form-label">Min and max</label>
<input type="range" class="form-range" min="0" max="5" id="formRange2">
</div>
<div>
<label for="formRange3" class="form-label">Steps</label>
<input type="range" class="form-range" min="0" max="5" step="0.5" id="formRange3">
</div>
Examples and usage HTML5 inputs.
<form>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="text" placeholder="Materialize" id="html5-text-input" />
<label for="html5-text-input">Text</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="search" placeholder="Search ..." id="html5-search-input" />
<label for="html5-search-input">Search</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="email" placeholder="john@example.com" id="html5-email-input" />
<label for="html5-email-input">Email</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="url" placeholder="https://pixinvent.com" id="html5-url-input" />
<label for="html5-url-input">URL</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="tel" placeholder="90-(164)-188-556" id="html5-tel-input" />
<label for="html5-tel-input">Phone</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="password" placeholder="password" id="html5-password-input" />
<label for="html5-password-input">Password</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="number" placeholder="18" id="html5-number-input" />
<label for="html5-number-input">Number</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="datetime-local" id="html5-datetime-local-input" />
<label for="html5-datetime-local-input">Datetime</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="date" id="html5-date-input" />
<label for="html5-date-input">Date</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="month" id="html5-month-input" />
<label for="html5-month-input">Month</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="week" id="html5-week-input" />
<label for="html5-week-input">Week</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="time" id="html5-time-input" />
<label for="html5-time-input">Time</label>
</div>
<div class="form-floating form-floating-outline mb-6">
<input class="form-control" type="color" id="html5-color-input" />
<label for="html5-color-input">Color</label>
</div>
<div>
<label for="html5-range" class="form-label">Range</label>
<input type="range" class="form-range mt-4" id="html5-range" />
</div>
</form>