--- layout: docs title: Forms description: Examples and usage guidelines for form control styles, layout options, and custom components for creating a wide variety of forms. group: forms toc: true aliases: "/docs/5.0/forms/" sections: - title: Form control description: Style textual inputs and textareas with support for multiple states. - title: Select description: Improve browser default select elements with a custom initial appearance. - title: Checks & radios description: Use our custom radio buttons and checkboxes in forms for selecting input options. - title: File description: Replace browser default file inputs with our custom version with optional JavaScript. - title: Range description: Replace browser default range inputs with our custom version. - title: Input group description: Attach labels and buttons to your inputs for increased semantic value. - title: Layout description: Create inline, horizontal, or complex grid-based layouts with your forms. - title: Validation description: Validate your forms with custom or native validation behaviors and styles. --- ## Overview Bootstrap's form controls expand on [our Rebooted form styles]({{< docsref "/content/reboot#forms" >}}) with classes. Use these classes to opt into their customized displays for a more consistent rendering across browsers and devices. Be sure to use an appropriate `type` attribute on all inputs (e.g., `email` for email address or `number` for numerical information) to take advantage of newer input controls like email verification, number selection, and more. Here's a quick example to demonstrate Bootstrap's form styles. Keep reading for documentation on required classes, form layout, and more. {{< example >}}
We'll never share your email with anyone else.
{{< /example >}} ## Form text Block-level or inline-level form text can be created using `.form-text`. {{< callout warning >}} ##### Associating form text with form controls Form text should be explicitly associated with the form control it relates to using the `aria-describedby` attribute. This will ensure that assistive technologies—such as screen readers—will announce this form text when the user focuses or enters the control. {{< /callout >}} Form text below inputs can be styled with `.form-text`. If a block-level element will be used, a top margin is added for easy spacing from the inputs above. {{< example >}}
Your password must be 8-20 characters long, contain letters and numbers, and must not contain spaces, special characters, or emoji.
{{< /example >}} Inline text can use any typical inline HTML element (be it a ``, ``, or something else) with nothing more than the `.form-text` class. {{< example >}}
Must be 8-20 characters long.
{{< /example >}} ## Disabled forms Add the `disabled` boolean attribute on an input to prevent user interactions and make it appear lighter. {{< highlight html >}} {{< /highlight >}} Add the `disabled` attribute to a `
` to disable all the controls within. Browsers treat all native form controls (``, `
{{< /example >}} ## Accessibility Ensure that all form controls have an appropriate accessible name so that their purpose can be conveyed to users of assistive technologies. The simplest way to achieve this is to use a `