# Input Groups
> Easily extend form controls by adding text, buttons, or button groups on either side of textual
> inputs.
```html
!ButtonButton
```
## Usage
You can attach addons using either props, named slots and/or sub-components.
### Using `prepend` and `append` props
Values will be internally wrapped by a `` to display correctly.
```html
```
### Using named slots
if you want better control over addons, you can use `prepend` and `append` slots instead.
The slot content will automatically be wrapped by
[`` or ``](#using-sub-components) to display correctly.
```html
UsernameAction AAction B
```
### Using sub-components
Use the `` or `` to add arbitrary addons wherever you
like, and use these components to group buttons in your input group. Single buttons must always be
wrapped in these components for proper styling.
```html
ButtonButtonButton
```
Set the `is-text` prop on `` or `` if the content is
textual in nature to apply proper styling. Alternatively, place the ``
subcomponent inside of the `` or ``. This also applies
when you want to use on of [BootstrapVue's icons](/docs/icons).
## Supported form-controls
The following are the form controls supported as the input-group's _main_ input element:
- [``](/docs/components/form-input)
- [``](/docs/components/form-textarea)
- [``](/docs/components/form-select)
- [``](/docs/components/form-file)
- [``](/docs/components/form-rating)
- [``](/docs/components/form-tags)
- [``](/docs/components/form-spinbutton)
- [``](/docs/components/form-datepicker)
- [``](/docs/components/form-timepicker)
**Notes:**
- BootstrapVue uses custom SCSS/CSS to handling sizing the `` input when it is placed
in a `` which has a [`size`](#control-sizing) specified.
- BootstrapVue uses custom SCSS/CSS when `` is placed in a
``.
- BootstrapVue's custom components (i.e. ``, ``, ``,
etc.) require BootstrapVue's custom SCSS/CSS.
## Checkbox and radio addons
Place any checkbox or radio within an input group's addon instead of text.
**Note:** Bootstrap v4.x recommends using native radio and checkbox inputs over custom radios and
checkboxes, but it is possible to use as `` and `` with a few utility
classes applied.
### Native checkbox and radio addons
```html