Input groups fuse addons, buttons, and text fields into one visual control. Wrap siblings in input-group; prepend or append static text with input-group-text; attach buttons with btn classes inside the group.
Common patterns
- Currency or unit prefixes (
$,https://) - Search fields with a submit button on the right
- Username fields with
@company.comsuffix
Keep one primary action per group—multiple buttons confuse keyboard order. For complex pickers (date ranges, tag inputs), reach for a dedicated component rather than stacking many addons.
Self-check
- Which wrapper class joins an input and a prepended label?
- Where does
input-group-textgo relative to the input? - When is an input group the wrong pattern?