Caroa UI

InputGroup

入力欄とアドオンを組み合わせるグループコンポーネント。

インポート

import { InputGroup, InputGroupAddon } from '@caroainc/ui-components'

個別サブパス(バンドルサイズを抑えたい場合):

import { InputGroup, InputGroupAddon } from '@caroainc/ui-components/input-group'

Composition

InputGroup
├─ InputGroupAddon?
│  └─ InputGroupText? / Icon?
├─ Input / InputGroupInput / InputGroupTextarea
└─ InputGroupAddon?

InputGroupには入力部品を1つ置き、前後のAddonは任意です。テキストやIconはAddon内に置き、Inputと同列へ装飾だけを直接並べないでください。

基本的な使い方

Loading...
<InputGroup>
  <InputGroupAddon>https://</InputGroupAddon>
  <Input placeholder="example.com" />
</InputGroup>

右側にアドオン

Loading...
<InputGroup>
  <Input placeholder="0" />
  <InputGroupAddon>円</InputGroupAddon>
</InputGroup>

両側にアドオン

Loading...
<InputGroup>
  <InputGroupAddon>$</InputGroupAddon>
  <Input placeholder="0.00" />
  <InputGroupAddon>USD</InputGroupAddon>
</InputGroup>

アイコン付き

Loading...
<InputGroup>
  <InputGroupAddon>
    <Icon name="Search" size="sm" />
  </InputGroupAddon>
  <Input placeholder="検索..." />
</InputGroup>

エラー状態

内部のInputにaria-invalidを渡すと、InputGroup全体の枠が赤くなります。

Loading...
<InputGroup>
  <InputGroupAddon>
    <Icon name="Mail" size="sm" />
  </InputGroupAddon>
  <Input aria-invalid={!!errorMessage} />
</InputGroup>

フォーム例

Loading...
<Field label="ウェブサイト">
  <InputGroup>
    <InputGroupAddon>https://</InputGroupAddon>
    <Input placeholder="example.com" />
  </InputGroup>
</Field>

Props

PropTypeDefaultDescription
classNamestring-追加のCSSクラス