0.1.0

Input Group

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

Try it

https://

Include only the domain โ€” the protocol is added automatically.

Usage

Wrap RuiInput and addons inside RuiInputGroup. Nest the group inside RuiField for labels and validation.

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';
 
<RuiField name="url">
  <RuiLabel>Website URL</RuiLabel>
  <RuiInputGroup>
    <RuiInputGroupAddon>
      <RuiInputGroupText>https://</RuiInputGroupText>
    </RuiInputGroupAddon>
    <RuiInput id="input-group-url" placeholder="example.com" />
  </RuiInputGroup>
  <RuiFieldDescription>Include only the domain.</RuiFieldDescription>
</RuiField>

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

PropTypeDefaultDescription
alignstart ยท endstartInline edge for the addon.

CSS classes

ClassDescription
.rui-input-groupControl-height bordered row (role="group").
.rui-input-group__addonAddon cell.
.rui-input-group__addon--startLeading addon.
.rui-input-group__addon--endTrailing addon.
.rui-input-group__textMuted inline text in an addon.