extends ../../_layout/default.pug block canonical link(rel='canonical' href='https://coreui.io/docs/forms/floating-labels/') block breadcrumb +breadcrumb( [ { href: '#', label: 'Home'}, { label: 'Components'}, { label: 'Forms'}, 'Floating labels' ] ) block view +docs-components('https://coreui.io/docs/forms/floating-labels/') .row .col-12 .card.mb-4 .card-header strong Floating labels span.small.ms-1 Basic example .card-body p.text-body-secondary.small | Wrap a pair of code = '<input class="form-control">' | and code = '<label>' | elements in code .form-floating | to enable floating labels with Bootstrap’s textual form fields. A code placeholder | is required on each code = '<input>' | as our method of CSS-only floating labels uses the code :placeholder-shown | pseudo-element. Also note that the code = '<input>' | must come first so we can utilize a sibling selector (e.g., code ~ | ). +example('https://coreui.io/docs/forms/floating-labels/#example') .form-floating.mb-3 input.form-control#floatingInput(type='email' placeholder='name@example.com') label(for='floatingInput') Email address .form-floating input.form-control#floatingPassword(type='password' placeholder='Password') label(for='floatingPassword') Password p.text-body-secondary.small | When there’s a code value | already defined, code = '<label>' | s will automatically adjust to their floated position. +example('https://coreui.io/docs/forms/floating-labels/#example') form.form-floating input.form-control#floatingInputValue(type='email' placeholder='name@example.com' value='test@example.com') label(for='floatingInputValue') Input with value p.text-body-secondary.small Form validation styles also work as expected. +example('https://coreui.io/docs/forms/floating-labels/#example') form.form-floating input.form-control.is-invalid#floatingInputInvalid(type='email' placeholder='name@example.com' value='test@example.com') label(for='floatingInputInvalid') Invalid input .col-12 .card.mb-4 .card-header strong Floating labels span.small.ms-1 Textareas .card-body p.text-body-secondary.small | By default, code = '<textarea>' | s with code .form-control | will be the same height as code = '<input>' | s. +example('https://coreui.io/docs/forms/floating-labels/#textareas') .form-floating textarea.form-control#floatingTextarea(placeholder='Leave a comment here') label(for='floatingTextarea') Comments p.text-body-secondary.small | To set a custom height on your code = '<textarea>' | , do not use the code rows | attribute. Instead, set an explicit code height | (either inline or via custom CSS). +example('https://coreui.io/docs/forms/floating-labels/#textareas') .form-floating textarea.form-control#floatingTextarea2(placeholder='Leave a comment here' style='height: 100px') label(for='floatingTextarea2') Comments .col-12 .card.mb-4 .card-header strong Floating labels span.small.ms-1 Selects .card-body p.text-body-secondary.small | Other than code .form-control | , floating labels are only available on code .form-select | s. They work in the same way, but unlike code = '<input>' | s, they’ll always show the code = '<label>' | in its floated state. strong | Selects with code size | and code multiple | are not supported. +example('https://coreui.io/docs/forms/floating-labels/#selects') .form-floating select.form-select#floatingSelect(aria-label='Floating label select example') option(selected) Open this select menu option(value='1') One option(value='2') Two option(value='3') Three label(for='floatingSelect') Works with selects .col-12 .card.mb-4 .card-header strong Floating labels span.small.ms-1 Layout .card-body p.text-body-secondary.small When working with the CoreUI for Bootstrap grid system, be sure to place form elements within column classes. +example('https://coreui.io/docs/forms/floating-labels/#layout') .row.g-2 .col-md .form-floating input.form-control#floatingInputGrid(type='email' placeholder='name@example.com' value='mdo@example.com') label(for='floatingInputGrid') Email address .col-md .form-floating select.form-select#floatingSelectGrid(aria-label='Floating label select example') option(selected) Open this select menu option(value='1') One option(value='2') Two option(value='3') Three label(for='floatingSelectGrid') Works with selects