Select

Selectは、ユーザーがオプションのリストから値を選択するために使用されるコンポーネントです。

使い方

import { Select } from "@yamada-ui/react"
<Select.Root>
  <Select.Group>
    <Select.Option />
    <Select.Label />
  </Select.Group>
  <Select.Separator />
</Select.Root>

グループ化する

itemsを使う

バリアントを変更する

サイズを変更する

カラースキームを変更する

デフォルト値を設定する

デフォルト値を設定する場合は、defaultValueに値を設定します。

複数選択を有効する

複数選択を有効にする場合は、multipletrueに設定します。

最大選択数を制限する

最大選択数を制限する場合は、maxに数値を設定します。

区切り文字を変更する

区切り文字を変更する場合は、separatorに文字列を設定します。デフォルトでは、,が設定されています。

クリアボタンを有効にする

クリアボタンを有効にする場合は、clearabletrueに設定します。

オフセットを変更する

オフセットを変更する場合は、gutterまたはoffsetに値を設定します。

アニメーションを変更する

アニメーションを変更する場合は、animationScheme"block-start""inline-end"などを設定します。 デフォルトでは、"scale"が設定されています。

配置を変更する

配置を変更する場合は、placement"start""end-end"などを指定します。デフォルトでは、"end"が設定されています。

プレースホルダーを非表示にする

プレースホルダーを非表示にする場合は、includePlaceholderfalseに設定します。

スクロールをブロックする

スクロールをブロックするには、blockScrollOnMounttrueに設定します。

スクロール時にドロップダウンを閉じる

スクロール時にドロップダウンを閉じる場合は、closeOnScrolltrueに設定します。

選択時にドロップダウンを閉じない

選択時にドロップダウンを閉じない場合は、closeOnSelectfalseに設定します。

フォーカスが外れた場合に閉じない

フォーカスが外れた場合にドロップダウンを閉じない場合は、closeOnBlurfalseに設定します。

ESCキーが入力された時にドロップダウンを閉じない

ESCキーが入力された時にドロップダウンを閉じない場合は、closeOnEscfalseに設定します。

オプションを無効にする

特定のオプションを無効にする場合は、disabledtrueに設定します。

無効にする

無効にする場合は、disabledtrueに設定します。

読み取り専用にする

読み取り専用にする場合は、readOnlytrueに設定します。

無効な入力にする

無効な入力にする場合は、invalidtrueに設定します。

ボーダーの色を変更する

ボーダーの色を変更する場合は、focusBorderColorまたはerrorBorderColorに値を設定します。

アイコンをカスタマイズする

オプションのアイコンをカスタマイズする

複数選択時の表示をカスタマイズする

制御する

Props

アクセシビリティ

Selectは、アクセシビリティに関してWAI-ARIA - Combobox Patternに従います。

Field.Rootを使用しない場合は、Selectaria-labelまたはaria-labelledbyを設定します。

<Select.Root placeholder="Select a character" aria-label="Character">
  <Select.Option value="木ノ下和也">木ノ下和也</Select.Option>
  <Select.Option value="一ノ瀬ちづる">一ノ瀬ちづる</Select.Option>
  <Select.Option value="七海麻美">七海麻美</Select.Option>
  <Select.Option value="更科瑠夏">更科瑠夏</Select.Option>
  <Select.Option value="桜沢墨">桜沢墨</Select.Option>
  <Select.Option value="八重森みに">八重森みに</Select.Option>
</Select.Root>
<VStack gap="sm">
  <Heading as="h3" id="label">
    Character
  </Heading>

  <Select.Root placeholder="Select a character" aria-labelledby="label">
    <Select.Option value="木ノ下和也">木ノ下和也</Select.Option>
    <Select.Option value="一ノ瀬ちづる">一ノ瀬ちづる</Select.Option>
    <Select.Option value="七海麻美">七海麻美</Select.Option>
    <Select.Option value="更科瑠夏">更科瑠夏</Select.Option>
    <Select.Option value="桜沢墨">桜沢墨</Select.Option>
    <Select.Option value="八重森みに">八重森みに</Select.Option>
  </Select.Root>
</VStack>

キーボード操作

キー説明状態
ArrowUp無効ではない前の項目をフォーカスします。最初の項目の場合は無効ではない最後の項目をフォーカスします。-
ArrowDown無効ではない次の項目をフォーカスします。最後の項目の場合は無効ではない最初の項目をフォーカスします。-
Home無効ではない最初の項目をフォーカスします。-
End無効ではない最後の項目をフォーカスします。-
Space, Enterフォーカスされている項目を選択し、リストボックスを閉じます。closeOnSelect={true}
Escapeリストボックスを閉じます。closeOnEsc={true}

ARIAロールと属性

コンポーネントロールと属性使い方
SelectFieldrole="combobox"コンボボックスであることを示します。
aria-activedescendantフォーカスされた項目のidを設定します。
aria-controlsリストボックスが開いている場合は関連したSelectContentidを設定し、閉じている場合はundefinedを設定します。
aria-describedbySelect.RootField.Root内にあり、Field.RooterrorMessageまたはhelperMessage、もしくはField.ErrorMessageまたはField.HelperMessageが設定されている場合は、そのidを設定します。
aria-disableddisabledまたはreadOnlyが設定されている場合は"true"を設定します。
aria-expandedリストボックスが開いている場合は"true"を設定し、閉じている場合は"false"を設定します。
aria-haspopup="listbox"リストボックスが存在することを示します。
aria-invalidinvalidが設定されている場合は"true"を設定します。
aria-labelplaceholderの値を設定します。
aria-labelledbySelect.RootField.Root内にあり、Field.Rootlabel、もしくはField.Labelが設定されている場合は、そのidを設定します。
aria-readonlyreadOnlyが設定されている場合は"true"を設定します。
aria-requiredrequiredが設定されている場合は"true"を設定します。
SelectIconrole="button"clearableかつ値がある場合はボタンであることを示します。
aria-disabledclearableかつ値がある場合かつ、disabledまたはreadOnlyが設定されている場合は"true"を設定します。
aria-labelclearableかつ値がある場合は"値を消去する"を設定します。
SelectContentrole="listbox"リストボックスであることを示します。
Select.Labelrole="presentation"プレゼンテーションであることを示します。
Select.Grouprole="group"グループであることを示します。
aria-labelledby関連したSelect.Labelidを設定します。
Select.Optionrole="option"オプションであることを示します。
aria-disabledオプションが無効な場合は"true"を設定します。
aria-selectedオプションが選択されている場合は"true"を設定し、選択されていない場合は"false"を設定します。
Select.Separatorrole="separator"セパレーターであることを示します。

類似のコンポーネント

Autocomplete

Autocompleteは、ユーザーのテキスト入力に応じて候補を表示するために使用されるコンポーネントです。

Menu

Menuは、一般的なドロップダウンメニューを表示するコンポーネントです。

Switch

Switchは、オンとオフの状態を切り替えるために使用されるコンポーネントです。

SegmentedControl

SegmentedControlは、ユーザーが複数の選択肢の中から1つを選択するために使用されるコンポーネントです。

Radio

Radioは、ユーザーが複数の選択肢の中から1つの値を選択するために使用されるコンポーネントです。

Rating

Ratingは、ユーザーが評価を行うために使用させるコンポーネントです。

NativeSelect

NativeSelectは、ユーザーがオプションのリストから1つの値を選択するために使用されるコンポーネントです。ブラウザ(ユーザーエージェント)によって提供されるネイティブなドロップダウンリストを表示します。

Checkbox

Checkboxは、ユーザーが複数の選択肢の中から複数の値を選択するために使用されるコンポーネントです。

使用しているコンポーネント・フック

使用されているコンポーネント・フック