--- title: Input Group description: Input groups combine a text input with leading or trailing addons such as prefixes, icons, and buttons. category: Forms --- import { meta as InputGroupMeta, Default } from '@/content/stories/input-group'; import Canvas from '@/components/component-docs/canvas'; import Demo from '@/components/component-docs/demo'; export const config = { dependencies: { components: [Canvas, Demo], scripts: [ '../../components/component-docs/demo.script.tsx', '../../components/component-docs/canvas.script.tsx', '../../components/component-docs/controls.script.tsx', ], }, }; # Input Group

Input groups combine a text input with leading or trailing addons such as prefixes, icons, and buttons.

## Try it ## Usage Wrap `RuiInput` and addons inside `RuiInputGroup`. Nest the group inside `RuiField` for labels and validation. ```tsx import { RuiField, RuiFieldDescription } from '@ecopages/radiant-ui/field'; import { RuiInput } from '@ecopages/radiant-ui/input'; import { RuiInputGroup, RuiInputGroupAddon, RuiInputGroupText, } from '@ecopages/radiant-ui/input-group'; import { RuiLabel } from '@ecopages/radiant-ui/label'; Website URL https:// Include only the domain. ``` ## Trailing actions

Use `RuiInputGroupAddon align="end"` for trailing icons or a `RuiButton` with `variant="ghost"` and `size="sm"` `square`.

## Field integration

`RuiField` still discovers the nested `RuiInput` via `data-rui-control`. Invalid and disabled states propagate to the group border via `:has()` selectors.

## API `RuiInputGroup`, `RuiInputGroupAddon`, and `RuiInputGroupText` are presentational JSX views, no custom elements. ### `RuiInputGroupAddon` props | Prop | Type | Default | Description | | --- | --- | --- | --- | | `align` | `start` ยท `end` | `start` | Inline edge for the addon. | ### CSS classes | Class | Description | | --- | --- | | `.rui-input-group` | Control-height bordered row (`role="group"`). | | `.rui-input-group__addon` | Addon cell. | | `.rui-input-group__addon--start` | Leading addon. | | `.rui-input-group__addon--end` | Trailing addon. | | `.rui-input-group__text` | Muted inline text in an addon. |