Foundation
PackagesUIComponentsForms

Selections

選択系コンポーネント。Select はドロップダウン、Checkbox・RadioGroup・Switch はトグル系の入力に使用する。

いつ使うか

  • ドロップダウンから1つ選択させる場合は Select を使用する
  • ON/OFF のトグルには Checkbox または Switch を使用する
  • 複数の排他的選択肢から1つを選ばせる場合は RadioGroup を使用する

いつ使わないか

  • 自由テキスト入力には TextInput / Textarea を使用する
  • 選択肢が2つだけの排他的選択は Switch で代替できる

Select

Usage

import { Select } from '@bi-shop-it/ui/select';

<Select
  options={[
    { label: 'りんご', value: 'apple' },
    { label: 'バナナ', value: 'banana' },
  ]}
  placeholder="選択してください"
/>;

Props

Propデフォルト説明
options(SelectOption | SelectOptionGroup)[]選択肢の配列
placeholderstringプレースホルダーテキスト
valuestring選択中の値(制御モード)
defaultValuestring初期値(非制御モード)
namestringフォームのフィールド名
idstringHTML id属性
errorbooleanfalseエラー状態
disabledbooleanfalse無効化
requiredboolean必須入力
onValueChange(value: string) => void値変更時のコールバック

デフォルト

<Select
  options={[
    { label: 'りんご', value: 'apple' },
    { label: 'バナナ', value: 'banana' },
    { label: 'オレンジ', value: 'orange' },
  ]}
  placeholder="選択してください"
/>

グループ付き

SelectOptionGroup を使用して選択肢をグループ化できる。

<Select
  options={[
    {
      label: 'フルーツ',
      options: [
        { label: 'りんご', value: 'apple' },
        { label: 'バナナ', value: 'banana' },
      ],
    },
    {
      label: '野菜',
      options: [
        { label: 'にんじん', value: 'carrot' },
        { label: 'トマト', value: 'tomato' },
      ],
    },
  ]}
  placeholder="カテゴリから選択"
/>

Disabled

<Select disabled options={options} placeholder="選択できません" />

Error

<Select error options={options} placeholder="選択してください" />

Checkbox

Usage

import { Checkbox } from '@bi-shop-it/ui/checkbox';

<Checkbox label="利用規約に同意する" />;

Props

Propデフォルト説明
labelstringラベルテキスト
descriptionstring補足説明
checkedbooleanチェック状態(制御モード)
defaultCheckedboolean初期状態(非制御モード)
idstringHTML id属性
namestringフォームのフィールド名
errorbooleanfalseエラー状態
disabledbooleanfalse無効化
requiredboolean必須入力
onCheckedChange(checked: boolean) => void値変更時のコールバック

デフォルト

<Checkbox label="利用規約に同意する" />

Description 付き

マーケティングメールを受け取ります

<Checkbox
  description="マーケティングメールを受け取ります"
  label="メール通知を受け取る"
/>

Disabled

<Checkbox disabled label="無効なチェックボックス" />

Error

<Checkbox error label="必須項目です" />

RadioGroup

Usage

import { RadioGroup } from '@bi-shop-it/ui/radio-group';

<RadioGroup
  options={[
    { label: 'S', value: 'sm' },
    { label: 'M', value: 'md' },
    { label: 'L', value: 'lg' },
  ]}
/>;

Props

Propデフォルト説明
optionsRadioOption[]選択肢の配列
valuestring選択中の値(制御モード)
defaultValuestring初期値(非制御モード)
namestringフォームのフィールド名
errorbooleanfalseエラー状態
disabledbooleanfalse無効化
requiredboolean必須入力
onValueChange(value: string) => void値変更時のコールバック

デフォルト

<RadioGroup
  options={[
    { label: 'S', value: 'sm' },
    { label: 'M', value: 'md' },
    { label: 'L', value: 'lg' },
  ]}
/>

Description 付き

個人利用向け、5GBまで

チーム利用、100GBまで

無制限ストレージ、優先サポート

<RadioGroup
  options={[
    { description: '個人利用向け', label: 'フリー', value: 'free' },
    { description: 'チーム利用', label: 'プロ', value: 'pro' },
    { description: '無制限', label: 'エンタープライズ', value: 'enterprise' },
  ]}
/>

Disabled

<RadioGroup disabled options={options} />

Error

<RadioGroup error options={options} />

Switch

Usage

import { Switch } from '@bi-shop-it/ui/switch';

<Switch label="通知を有効にする" />;

Props

Propデフォルト説明
labelstringラベルテキスト
descriptionstring補足説明
checkedbooleanON/OFF状態(制御モード)
defaultCheckedboolean初期状態(非制御モード)
idstringHTML id属性
namestringフォームのフィールド名
errorbooleanfalseエラー状態
disabledbooleanfalse無効化
requiredboolean必須入力
onCheckedChange(checked: boolean) => void値変更時のコールバック

デフォルト

<Switch label="通知を有効にする" />

Description 付き

新しいメッセージが届いたときにプッシュ通知を送信します

<Switch
  description="新しいメッセージが届いたときにプッシュ通知を送信します"
  label="プッシュ通知"
/>

Disabled

<Switch disabled label="無効なスイッチ" />

アクセシビリティ

コンポーネントが内部で処理すること

  • Checkbox / Switchlabel と自動的に htmlFor で関連付けられる
  • RadioGroup は各アイテムのラベルと自動関連付けされる
  • errortrue のとき aria-invalid を自動付与する
  • Radix UI のアクセシビリティ機能(キーボード操作、ARIA属性)を内部で利用する

利用者が対応すること

  • Checkbox / Switchlabel は操作内容が明確に伝わるテキストにすること
  • RadioGroup の各 option.label は選択肢の内容が明確に伝わるテキストにすること
  • エラーメッセージの表示には FormField と組み合わせて使用すること

関連コンポーネント

  • FormField — ラベル・説明・エラーメッセージ付きのフォームフィールドラッパー
  • TextInput / Textarea — テキスト入力が必要な場合に使用する
  • Select — ドロップダウンで選択させる場合に使用する

On this page