search Esc

Text Inputs

Bootstrap-5-shaped form controls. Uses .lp-form-control as the base class with -sm / -lg size modifiers, .is-invalid / .is-valid validation states on the control itself, and sibling .lp-invalid-feedback / .lp-valid-feedback for messages. Labels use .lp-form-label; helper text uses .lp-form-text.

Basic inputs
Input types
Input sizes
Input with icons
search
email
Two Static Icons (Prefix + Suffix)

Use two .lp-input-icon elements for static prefix and suffix icons.

mail check_circle
link open_in_new
place navigation
Icon + Action Button

Use .lp-input-icon for the left icon and .lp-input-action for clickable right actions.

lock
search
link
Contextual inputs — .lp-form-control-{color}
Validation states — .is-invalid / .is-valid
errorPlease enter a valid email address
check_circleUsername is available
warningPassword is weak, consider adding special characters
infoWe'll send a verification code to this number
Help text & hints
helpUsername must be 3–20 characters long.
lockMust contain at least 8 characters securityInclude uppercase, lowercase, and numbers
Disabled & readonly
Form layouts — horizontal / inline
Horizontal — .lp-form-horizontal
Inline — .lp-form-inline
CSS reference
ClassPurpose
.lp-form-controlBase input / textarea — BS5 unified control class
.lp-form-selectNative select — BS5 equivalent of .form-select
.lp-form-control-sm / -lgSize variants (Launchpad uses sm / md / lg — no xs)
.lp-form-control-{color}Tinted border + focus ring (primary / secondary / success / danger / warning / info)
.lp-form-control-plaintextRead-only review display — no chrome, preserves rhythm
.is-invalid / .is-validValidation state — lives on the control itself (BS5 convention)
.is-warning / .is-infoLaunchpad-extension validation states
.lp-invalid-feedbackError message shown when a sibling control is .is-invalid
.lp-valid-feedbackSuccess message for .is-valid
.lp-warning-feedback / .lp-info-feedbackFeedback for the Launchpad-extension states
.lp-form-groupWrapper that groups label + control + feedback
.lp-form-labelLabel above the control
.lp-form-label-requiredAdds a red * after the label
.lp-form-label-hintSmall inline hint rendered inside the label (e.g. "optional")
.lp-form-textMuted helper text below the control
.lp-form-hintsFlex row pairing a left-aligned hint with a right-aligned counter
.lp-form-horizontalGrid: label left / control right. Modifiers: -narrow / -wide / -auto
.lp-form-inlineSingle-line form — collapses to stacked below lg
.lp-input-wrapperAbsolute-positioned icon / action container around a control
.lp-input-wrapper-icon-rightModifier for single trailing icon
.lp-input-iconDecorative icon inside .lp-input-wrapper
.lp-input-actionClickable trailing button (password toggle, clear, copy)
data-lp-component="password-toggle"On .lp-input-wrapper — toggles password/text visibility
data-lp-component="input-clear"On .lp-input-wrapper — injects a clear button
data-lp-component="char-counter"On .lp-form-group — live character counter