Text controls
.form-select is gone — a <select> now takes
.form-control like every other control.
Form field
.form-field is the grid wrapper that lays out a label, control,
help text and validation feedback.
Form adorn New
Icons and text decorations inside the control. Note the inversion: the
wrapper carries .form-control and the input becomes
.form-ghost.
Input group
Floating labels
Check, radio & switch
A real trap: .check and .radio go on the
<input>, but .switch goes on a
wrapper with a switch attribute on the input.
Range New
The slider gained a wrapper and an optional value bubble
(data-bs-bubble).
Combobox New
A searchable, optionally multi-select control built on top of Menu. There was no equivalent in older UI frameworks — this is the single clearest reason to want v6.
Datepicker New
A wrapper around Vanilla Calendar Pro, which is bundled into
bootstrap.bundle.js — no extra script tag needed.
Chip input New
Type and press Enter to add a token; Backspace removes the last one.
OTP input New
One-time-code entry with per-character boxes, paste handling and
autocomplete="one-time-code" behaviour.
Password strength New
Type in the field to see the segments fill.
Validation
.needs-validation and .was-validated are gone. Add
data-bs-validate to the form and native :user-invalid
does the work — styling only appears after the user interacts.
Add data-bs-validate="valid" to also show success styling.
.is-invalid / .is-valid need no interaction
Complete form
Everything above, assembled the way you'd actually ship it.