Forms
Form control styles, layout options, and custom components.
To enable input text content formatting please make sure to link to Cleave.js plugin in your document: assets/vendor/cleave.js/dist/cleave.min.js. Use this page as a reference.
Supported input types
<!-- Text input -->
<div class="form-group">
<label for="text-input">Text</label>
<input class="form-control" type="text" id="text-input" value="Artisanal kale">
</div>
<!-- Search input -->
<div class="form-group">
<label for="search-input">Search</label>
<input class="form-control" type="search" id="search-input" value="How do I shoot web">
</div>
<!-- Email input -->
<div class="form-group">
<label for="email-input">Email</label>
<input class="form-control" type="email" id="email-input" value="email@example.com">
</div>
<!-- URL Input -->
<div class="form-group">
<label for="url-input">URL</label>
<input class="form-control" type="url" id="url-input" value="https://getbootstrap.com">
</div>
<!-- Phone Input -->
<div class="form-group">
<label for="tel-input">Phone</label>
<input class="form-control" type="tel" id="tel-input" value="1-(770)-334-2518">
</div>
<!-- Password Input -->
<div class="form-group">
<label for="pass-input">Password</label>
<input class="form-control" type="password" id="pass-input" value="mypasswordexample">
</div>
<!-- Textarea -->
<div class="form-group">
<label for="textarea-input">Textarea</label>
<textarea class="form-control" id="textarea-input" rows="5">Hello World!</textarea>
</div>
<!-- Select -->
<div class="form-group">
<label for="select-input">Select</label>
<select class="form-control custom-select" id="select-input">
<option>Choose option</option>
<option>Option item 1</option>
<option>Option item 2</option>
<option>Option item 3</option>
</select>
</div>
<!-- Multiselect -->
<div class="form-group">
<label for="multiselect-input">Multiselect</label>
<select class="form-control" id="multiselect-input" size="3" multiple>
<option>Option item 1</option>
<option>Option item 2</option>
<option>Option item 3</option>
<option>Option item 4</option>
<option>Option item 5</option>
<option>Option item 6</option>
</select>
</div>
<!-- File input -->
<div class="form-group">
<label for="file-input">File</label>
<div class="custom-file">
<input class="custom-file-input" type="file" id="file-input">
<label class="custom-file-label" for="file-input">Choose file</label>
</div>
</div>
<!-- Number input -->
<div class="form-group">
<label for="number-input">Number</label>
<input class="form-control" type="number" id="number-input" value="37">
</div>
<!-- Date time input -->
<div class="form-group">
<label for="date-time-input">Date and time</label>
<input class="form-control" type="datetime-local" id="date-time-input">
</div>
<!-- Date input -->
<div class="form-group">
<label for="date-input">Date</label>
<input class="form-control" type="date" id="date-input" value="2018-06-13">
</div>
<!-- Month input -->
<div class="form-group">
<label for="month-input">Month</label>
<input class="form-control" type="month" id="month-input" value="2018-06">
</div>
<!-- Week input -->
<div class="form-group">
<label for="week-input">Week</label>
<input class="form-control" type="week" id="week-input" value="2018-W33">
</div>
<!-- Time input -->
<div class="form-group">
<label for="time-input">Time</label>
<input class="form-control" type="time" id="time-input" value="14:45:00">
</div>
<!-- Color input -->
<div class="form-group">
<label for="color-input">Color</label>
<input class="form-control" type="color" id="color-input" value="#f5f5f5">
</div>
Password visibility toggle
<!-- Password visibility toggle -->
<div class="form-group">
<label class="form-label" for="pass-visibility">Password</label>
<div class="cs-password-toggle input-group-overlay">
<input class="form-control appended-form-control" type="password" id="pass-visibility" value="hidden@password" required>
<div class="input-group-append-overlay">
<label class="btn cs-password-toggle-btn input-group-text">
<input class="custom-control-input" type="checkbox">
<i class="cxi-eye cs-password-toggle-indicator"></i>
<span class="sr-only">Show password</span>
</label>
</div>
</div>
</div>
Checkboxes
<!-- Stacked checkboxes -->
<div class="custom-control custom-checkbox">
<input class="custom-control-input" type="checkbox" id="ex-check-1">
<label class="custom-control-label" for="ex-check-1">Check this checkbox</label>
</div>
<div class="custom-control custom-checkbox">
<input class="custom-control-input" type="checkbox" id="ex-check-2" checked>
<label class="custom-control-label" for="ex-check-2">Uncheck this checkbox</label>
</div>
<div class="custom-control custom-checkbox">
<input class="custom-control-input" type="checkbox" id="ex-check-3" disabled>
<label class="custom-control-label" for="ex-check-3">Disabled checkbox</label>
</div>
<!-- Inline checkboxes -->
<div class="custom-control custom-checkbox custom-control-inline">
<input class="custom-control-input" type="checkbox" id="ex-check-4">
<label class="custom-control-label" for="ex-check-4">Check this checkbox</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input class="custom-control-input" type="checkbox" id="ex-check-5" checked>
<label class="custom-control-label" for="ex-check-5">Uncheck this checkbox</label>
</div>
<div class="custom-control custom-checkbox custom-control-inline">
<input class="custom-control-input" type="checkbox" id="ex-check-6" disabled>
<label class="custom-control-label" for="ex-check-6">Disabled checkbox</label>
</div>
Radio buttons
<!-- Stacked radio buttons -->
<div class="custom-control custom-radio">
<input class="custom-control-input" type="radio" id="ex-radio-1" name="radio">
<label class="custom-control-label" for="ex-radio-1">Toggle this radio</label>
</div>
<div class="custom-control custom-radio">
<input class="custom-control-input" type="radio" id="ex-radio-2" name="radio" checked>
<label class="custom-control-label" for="ex-radio-2">Toggle this radio</label>
</div>
<div class="custom-control custom-radio">
<input class="custom-control-input" type="radio" id="ex-radio-3" name="radio" disabled>
<label class="custom-control-label" for="ex-radio-3">Disabled radio</label>
</div>
<!-- Inline radio buttons -->
<div class="custom-control custom-radio custom-control-inline">
<input class="custom-control-input" type="radio" id="ex-radio-4" name="radio2">
<label class="custom-control-label" for="ex-radio-4">Toggle this radio</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input class="custom-control-input" type="radio" id="ex-radio-5" name="radio2" checked>
<label class="custom-control-label" for="ex-radio-5">Toggle this radio</label>
</div>
<div class="custom-control custom-radio custom-control-inline">
<input class="custom-control-input" type="radio" id="ex-radio-6" name="radio2" disabled>
<label class="custom-control-label" for="ex-radio-6">Disabled radio</label>
</div>
Switches
<!-- Switch -->
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="customSwitch1">
<label class="custom-control-label" for="customSwitch1">Toggle this switch element</label>
</div>
<!-- Checked switch -->
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="customSwitch2" checked>
<label class="custom-control-label" for="customSwitch2">Toggle this switch element</label>
</div>
<!-- Disabled switch -->
<div class="custom-control custom-switch">
<input type="checkbox" class="custom-control-input" id="customSwitch3" disabled>
<label class="custom-control-label" for="customSwitch3">Disabled switch element</label>
</div>
Switch Alt
<!-- Switch Alt -->
<div class="cs-switch">
<input class="cs-switch-input custom-control-input" type="checkbox" id="switchAlt">
<label class="cs-switch-label" for="switchAlt">
<span class="cs-switch-label-item">Monthly</span>
<span class="cs-switch-label-item">Yearly
<small class="ml-2 font-size-xs font-weight-normal">-12% Off</small>
</span>
</label>
</div>
Drag & drop file upload
<!-- Drag and drop file upload -->
<div class="cs-file-drop-area">
<div class="cs-file-drop-icon cxi-upload"></div>
<span class="cs-file-drop-message">Drag and drop here to upload</span>
<input type="file" class="cs-file-drop-input">
<button type="button" class="cs-file-drop-btn btn btn-outline-primary btn-sm">Or select file</button>
</div>
Size / color options
Choose size
Choose color - Blue
<!-- Size options (radio buttons) -->
<h6 class="font-size-sm mb-3">Choose size</h6>
<div class="custom-control cs-custom-size-option custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="xl" name="size" checked>
<label for="xl" class="cs-custom-option-label">XL</label>
</div>
<div class="custom-control cs-custom-size-option custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="l" name="size">
<label for="l" class="cs-custom-option-label">L</label>
</div>
<div class="custom-control cs-custom-size-option custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="m" name="size">
<label for="m" class="cs-custom-option-label">M</label>
</div>
<div class="custom-control cs-custom-size-option custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="s" name="size">
<label for="s" class="cs-custom-option-label">S</label>
</div>
<div class="custom-control cs-custom-size-option custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="xs" name="size">
<label for="xs" class="cs-custom-option-label">XS</label>
</div>
<!-- Size options - small (radio buttons) -->
<h6 class="font-size-sm mb-3">Choose size</h6>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="xl" name="size" checked>
<label for="xl" class="cs-custom-option-label">XL</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="l" name="size">
<label for="l" class="cs-custom-option-label">L</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="m" name="size">
<label for="m" class="cs-custom-option-label">M</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="s" name="size">
<label for="s" class="cs-custom-option-label">S</label>
</div>
<div class="custom-control cs-custom-size-option cs-custom-size-option-sm custom-control-inline mb-2">
<input type="radio" class="custom-control-input" id="xs" name="size">
<label for="xs" class="cs-custom-option-label">XS</label>
</div>
<!-- Color options (radio buttons) -->
<h6 class="font-size-sm mb-3">Choose color -
<span class="ml-1" id="colorOptionText">Blue</span>
</h6>
<div class="custom-control cs-custom-color-option custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="blue" value="Blue" data-label="colorOptionText" checked>
<label class="cs-custom-option-label" for="blue">
<span class="cs-color-swatch" style="background-color: #6a9bf4;"></span>
</label>
<label class="cs-custom-color-option-description" for="blue">Blue</label>
</div>
<div class="custom-control cs-custom-color-option custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="orange" value="Orange" data-label="colorOptionText">
<label class="cs-custom-option-label" for="orange">
<span class="cs-color-swatch" style="background-color: #ff9d50;"></span>
</label>
<label class="cs-custom-color-option-description" for="orange">Orange</label>
</div>
<div class="custom-control cs-custom-color-option custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="green" value="Green" data-label="colorOptionText">
<label class="cs-custom-option-label" for="green">
<span class="cs-color-swatch" style="background-color: #16c995;"></span>
</label>
<label class="cs-custom-color-option-description" for="green">Green</label>
</div>
<div class="custom-control cs-custom-color-option custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="pink" value="Pink" data-label="colorOptionText">
<label class="cs-custom-option-label" for="pink">
<span class="cs-color-swatch" style="background-color: #f74f78;"></span>
</label>
<label class="cs-custom-color-option-description" for="pink">Pink</label>
</div>
<!-- Color options - small (radio buttons) -->
<h6 class="font-size-sm mb-3">Choose color -
<span class="ml-1" id="colorOptionText">Blue</span>
</h6>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="blue" value="Blue" data-label="colorOptionText" checked>
<label class="cs-custom-option-label" for="blue">
<span class="cs-color-swatch" style="background-color: #6a9bf4;"></span>
</label>
</div>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="orange" value="Orange" data-label="colorOptionText">
<label class="cs-custom-option-label" for="orange">
<span class="cs-color-swatch" style="background-color: #ff9d50;"></span>
</label>
</div>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="green" value="Green" data-label="colorOptionText">
<label class="cs-custom-option-label" for="green">
<span class="cs-color-swatch" style="background-color: #16c995;"></span>
</label>
</div>
<div class="custom-control cs-custom-color-option cs-custom-color-option-sm custom-control-inline mb-2">
<input class="custom-control-input" type="radio" name="color" id="pink" value="Pink" data-label="colorOptionText">
<label class="cs-custom-option-label" for="pink">
<span class="cs-color-swatch" style="background-color: #f74f78;"></span>
</label>
</div>
Button control
<!-- Button control (checkbox buttons) -->
<div class="cs-btn-control custom-control-inline">
<input type="checkbox" class="custom-control-input" id="btn-control-1" checked>
<label for="btn-control-1" class="cs-btn-control-label">Women</label>
</div>
<div class="cs-btn-control custom-control-inline">
<input type="checkbox" class="custom-control-input" id="btn-control-2">
<label for="btn-control-2" class="cs-btn-control-label">Men</label>
</div>
<div class="cs-btn-control custom-control-inline">
<input type="checkbox" class="custom-control-input" id="btn-control-3">
<label for="btn-control-3" class="cs-btn-control-label">Girls</label>
</div>
<div class="cs-btn-control custom-control-inline">
<input type="checkbox" class="custom-control-input" id="btn-control-4">
<label for="btn-control-4" class="cs-btn-control-label">Boys</label>
</div>
Sizing
<!-- Large input -->
<div class="form-group">
<label for="large-input" class="form-label-lg">Large input</label>
<input class="form-control form-control-lg" type="text" id="large-input" placeholder="Large input placeholder">
</div>
<!-- Normal input -->
<div class="form-group">
<label for="normal-input" class="form-label">Normal input</label>
<input class="form-control" type="text" id="normal-input" placeholder="Normal input placeholder">
</div>
<!-- Small input -->
<div class="form-group">
<label for="small-input" class="form-label-sm">Small input</label>
<input class="form-control form-control-sm" type="text" id="small-input" placeholder="Small input placeholder">
</div>
Readonly & disabled
<!-- Readonly input -->
<input class="form-control" type="text" placeholder="Readonly input here" readonly>
<!-- Disabled input -->
<input class="form-control" type="text" placeholder="Disabled input here" disabled>
<!-- Disabled select -->
<select class="form-control custom-select" disabled>
<option>Disabled select here</option>
<option>Option item 1</option>
<option>Option item 2</option>
<option>Option item 3</option>
</select>
Inline form
<!-- Inline form -->
<form class="form-inline">
<label class="sr-only">Name</label>
<input class="form-control mb-3 mr-sm-4" type="text" placeholder="John Doe">
<label class="sr-only">Username</label>
<div class="input-group mb-3 mr-sm-4">
<div class="input-group-prepend">
<div class="input-group-text">@</div>
</div>
<input class="form-control" type="text" placeholder="Username">
</div>
<div class="custom-control custom-checkbox mb-3 mr-4">
<input class="custom-control-input" type="checkbox" id="inline-form-check-1">
<label class="custom-control-label" for="inline-form-check-1">Remember me</label>
</div>
<button class="btn btn-primary mb-3" type="submit">Submit</button>
</form>
Help text
Your password must be 8-20 characters long, contain letters and numbers, and must not contain spaces, special characters, or emoji.
<!-- Form help text -->
<div class="form-group">
<label for="help-text-input" class="form-label">Password</label>
<input class="form-control" type="password" id="help-text-input" placeholder="Your password here">
<small class="form-text text-muted">Your password must be 8-20 characters long, contain letters and numbers, and must not contain spaces, special characters, or emoji.</small>
</div>
Validation: status text
<!-- Forms validation: status text -->
<form class="needs-validation" novalidate>
<div class="row">
<div class="col-md-4 form-group">
<label for="validationCustom01" class="form-label">First name</label>
<input class="form-control" type="text" id="validationCustom01" placeholder="First name" value="John" required>
<div class="valid-feedback">Looks good!</div>
</div>
<div class="col-md-4 form-group">
<label for="validationCustom02" class="form-label">Last name</label>
<input class="form-control" type="text" id="validationCustom02" placeholder="Last name" value="Doe" required>
<div class="valid-feedback">Looks good!</div>
</div>
<div class="col-md-4 form-group">
<label for="validationCustomUsername" class="form-label">Username</label>
<input class="form-control" type="text" id="validationCustomUsername" placeholder="Username" required>
<div class="invalid-feedback">Please choose a username.</div>
<div class="valid-feedback">Looks good!</div>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label for="validationCustom03" class="form-label">City</label>
<select class="form-control custom-select" id="validationCustom03" required>
<option value="">Choose city</option>
<option value="Dallas">Dallas</option>
<option value="Houston">Houston</option>
<option value="Los Angeles">Los Angeles</option>
<option value="Miami">Miami</option>
<option value="New York">New York</option>
</select>
<div class="invalid-feedback">Please provide a valid city.</div>
<div class="valid-feedback">Looks good!</div>
</div>
<div class="col-md-3 form-group">
<label for="validationCustom04" class="form-label">State</label>
<select class="form-control custom-select" id="validationCustom04" required>
<option value="">Choose state</option>
<option value="Arizona">Arizona</option>
<option value="Colorado">Colorado</option>
<option value="Florida">Florida</option>
<option value="Indiana">Indiana</option>
<option value="Kentucky">Kentucky</option>
<option value="Texas">Texas</option>
</select>
<div class="invalid-feedback">Please provide a valid state.</div>
<div class="valid-feedback">Looks good!</div>
</div>
<div class="col-md-3 form-group">
<label for="validationCustom05" class="form-label">Zip</label>
<input class="form-control" type="text" id="validationCustom05" placeholder="Zip" required>
<div class="invalid-feedback">Please provide a valid zip.</div>
<div class="valid-feedback">Looks good!</div>
</div>
</div>
<div class="form-group">
<div class="custom-control custom-checkbox">
<input class="custom-control-input" type="checkbox" id="invalidCheck" required>
<label class="custom-control-label" for="invalidCheck">Agree to terms and conditions</label>
<div class="invalid-feedback">You must agree before submitting.</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit Form</button>
</form>
Validation: status tooltips
<!-- Forms validation: status tooltips -->
<form class="needs-validation" novalidate>
<div class="row">
<div class="col-md-4 form-group">
<label for="validationTooltip01" class="form-label">First name</label>
<input class="form-control" type="text" id="validationTooltip01" placeholder="First name" value="John" required>
<div class="valid-tooltip">Looks good!</div>
</div>
<div class="col-md-4 form-group">
<label for="validationTooltip02" class="form-label">Last name</label>
<input class="form-control" type="text" id="validationTooltip02" placeholder="Last name" value="Doe" required>
<div class="valid-tooltip">Looks good!</div>
</div>
<div class="col-md-4 form-group">
<label for="validationTooltipUsername" class="form-label">Username</label>
<input class="form-control" type="text" id="validationTooltipUsername" placeholder="Username" required>
<div class="invalid-tooltip">Please choose a username.</div>
<div class="valid-tooltip">Looks good!</div>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label for="validationTooltip03" class="form-label">City</label>
<select class="form-control custom-select" id="validationTooltip03" required>
<option value="">Choose city</option>
<option value="Dallas">Dallas</option>
<option value="Houston">Houston</option>
<option value="Los Angeles">Los Angeles</option>
<option value="Miami">Miami</option>
<option value="New York">New York</option>
</select>
<div class="invalid-tooltip">Please provide a valid city.</div>
<div class="valid-tooltip">Looks good!</div>
</div>
<div class="col-md-3 form-group">
<label for="validationTooltip04" class="form-label">State</label>
<select class="form-control custom-select" id="validationTooltip04" required>
<option value="">Choose state</option>
<option value="Arizona">Arizona</option>
<option value="Colorado">Colorado</option>
<option value="Florida">Florida</option>
<option value="Indiana">Indiana</option>
<option value="Kentucky">Kentucky</option>
<option value="Texas">Texas</option>
</select>
<div class="invalid-tooltip">Please provide a valid state.</div>
<div class="valid-tooltip">Looks good!</div>
</div>
<div class="col-md-3 form-group">
<label for="validationTooltip05" class="form-label">Zip</label>
<input class="form-control" type="text" id="validationTooltip05" placeholder="Zip" required>
<div class="invalid-tooltip">Please provide a valid zip.</div>
<div class="valid-tooltip">Looks good!</div>
</div>
</div>
<div class="form-group">
<div class="custom-control custom-checkbox">
<input class="custom-control-input" type="checkbox" id="invalidCheck01" required>
<label class="custom-control-label" for="invalidCheck01">Agree to terms and conditions</label>
<div class="invalid-tooltip">You must agree before submitting.</div>
</div>
</div>
<button class="btn btn-primary" type="submit">Submit Form</button>
</form>
Format input text content
<!-- Format: Credit card number -->
<div class="form-group">
<label class="form-label" for="format-card-number">Card number</label>
<input class="form-control" type="text" id="format-card-number" data-format="card" placeholder="0000 0000 0000 0000">
</div>
<!-- Format: Credit card CVC -->
<div class="form-group">
<label class="form-label" for="format-card-cvc">Card CVC</label>
<input class="form-control" type="text" id="format-card-cvc" data-format="cvc" placeholder="000">
</div>
<!-- Format: Date -->
<div class="form-group">
<label class="form-label" for="format-date">Date</label>
<input class="form-control" type="text" id="format-date" data-format="date" placeholder="mm/yy">
</div>
<!-- Format: Date long -->
<div class="form-group">
<label class="form-label" for="format-date-long">Date long</label>
<input class="form-control" type="text" id="format-date-long" data-format="date-long" placeholder="yyyy-mm-dd">
</div>
<!-- Format: Time -->
<div class="form-group">
<label class="form-label" for="format-time">Time</label>
<input class="form-control" type="text" id="format-time" data-format="time" placeholder="hh:mm:ss">
</div>
<!-- Format: Custom -->
<div class="form-group">
<label class="form-label" for="format-custom">Custom format</label>
<input class="form-control" type="text" id="format-custom" data-format="custom" data-delimiter="-" data-blocks="2 3 4" placeholder="00-000-0000">
</div>
Light version
<!-- Light input -->
<div class="form-group">
<label for="text-input" class="form-label text-white">Text</label>
<input id="text-input" class="form-control input-light" type="text" value="Artisanal kale">
</div>
<!-- Light select -->
<div class="form-group">
<label for="select-input" class="form-label text-white">Select</label>
<select id="select-input" class="form-control custom-select input-light">
<option>Choose option</option>
<option>Option item 1</option>
<option>Option item 2</option>
<option>Option item 3</option>
</select>
</div>
<!-- Light textarea -->
<div class="form-group">
<label for="textarea-input" class="form-label text-white">Textarea</label>
<textarea id="textarea-input" class="form-control input-light" rows="3">Hello World!</textarea>
</div>