Autocomplete

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

使い方

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

グループ化する

itemsを使う

クエリを使う

バリアントを変更する

サイズを変更する

デフォルト値を設定する

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

デフォルトの入力値を設定する

デフォルトの入力値を設定する場合は、defaultInputValueに文字列を設定します。

複数選択を有効する

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

最大選択数を制限する

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

区切り文字を変更する

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

カスタム値を許可する

カスタム値を許可する場合は、allowCustomValuetrueに設定します。

オフセットを変更する

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

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

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

配置を変更する

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

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

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

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

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

変更時にドロップダウンを開くイベントをハンドルする

変更時にドロップダウンを開くイベントをハンドルする場合は、openOnChangeに関数を設定します。

変更時にドロップダウンを閉じるイベントをハンドルする

変更時にドロップダウンを閉じるイベントをハンドルする場合は、closeOnChangeに関数を設定します。

フォーカス時にドロップダウンを開かない

フォーカス時にドロップダウンを開かない場合は、openOnFocusfalseに設定します。

クリック時にドロップダウンを開かない

クリック時にドロップダウンを開かない場合は、openOnClickfalseに設定します。

クリア時にフォーカスしない

クリア時にフォーカスしない場合は、focusOnClearfalseに設定します。

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

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

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

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

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

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

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

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

オプションを無効にする

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

無効にする

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

読み取り専用にする

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

無効な入力にする

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

ボーダーの色を変更する

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

検索結果が存在しない時のメッセージをカスタマイズする

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

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

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

制御する

Props

アクセシビリティ

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

Field.Rootを使用しない場合は、Autocomplete.Rootaria-labelまたはaria-labelledbyを設定してください。

<Autocomplete.Root aria-label="デジモンを選択" placeholder="デジモンを選択">
  <Autocomplete.Option value="アグモン">アグモン</Autocomplete.Option>
  <Autocomplete.Option value="ガブモン">ガブモン</Autocomplete.Option>
  <Autocomplete.Option value="テントモン">テントモン</Autocomplete.Option>
</Autocomplete.Root>
<VStack gap="sm">
  <Text as="h3" id="label">
    デジモン
  </Text>

  <Autocomplete.Root aria-labelledby="label" placeholder="デジモンを選択">
    <Autocomplete.Option value="アグモン">アグモン</Autocomplete.Option>
    <Autocomplete.Option value="ガブモン">ガブモン</Autocomplete.Option>
    <Autocomplete.Option value="テントモン">テントモン</Autocomplete.Option>
  </Autocomplete.Root>
</VStack>

キーボード操作

キー説明状態
ArrowDown無効ではない次の項目にフォーカスします。最後の項目の場合は、無効ではない最初の項目にフォーカスします。-
ArrowUp無効ではない前の項目にフォーカスします。最初の項目の場合は、無効ではない最後の項目にフォーカスします。-
Enterフォーカスしている項目を選択し、リストボックスを閉じます。フォーカスしている項目がなく入力テキストがある場合は、最初に一致する項目を選択します。closeOnSelect={true}
Homeリストボックスが開いている場合、無効ではない最初の項目にフォーカスします。-
Endリストボックスが開いている場合、無効ではない最後の項目にフォーカスします。-
Escapeリストボックスを閉じます。closeOnEsc={true}
Backspace入力が空の場合、最後に選択された値を削除します。multiple={true}

ARIAロールと属性

コンポーネントロールと属性使い方
Autocomplete.Rootrole="group"グループであることを示します。
AutocompleteFieldrole="combobox"コンボボックスであることを示します。
aria-expandedリストボックスが開いている場合は"true"を設定し、閉じている場合は"false"を設定します。
aria-haspopup="listbox"リストボックスが存在することを示します。
aria-controlsリストボックスが開いている場合はリストボックスのidを設定し、閉じている場合は設定しません。
aria-activedescendantフォーカスされた項目のidを設定します。
aria-disableddisabledまたはreadOnlyが設定されている場合は"true"を設定します。
aria-labelledbyAutocompleteFieldField.Root内にあり、Field.RootlabelまたはField.Labelが設定されている場合は、そのidを設定します。
Autocomplete.Contentrole="listbox"リストボックスであることを示します。
Autocomplete.Optionrole="option"オプションであることを示します。
aria-selectedオプションが選択されている場合は"true"を設定します。
aria-disableddisabledが設定されている場合は"true"を設定します。
Autocomplete.Grouprole="group"グループであることを示します。
aria-labelledby関連したAutocomplete.Labelidを設定します。
Autocomplete.Labelrole="presentation"プレゼンテーションであることを示します。
Autocomplete.Iconrole="button"clearableかつ値がある場合、ボタンであることを示します。
aria-label"値を消去する"を設定します。
aria-disableddisabledまたはreadOnlyが設定されている場合は"true"を設定します。

類似のコンポーネント

Select

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

Menu

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

Textarea

Textareaは、複数行のテキスト入力を取得するために使用されるコンポーネントです。

Switch

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

SegmentedControl

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

Radio

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

Rating

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

PinInput

PinInputは、ピンコードやOTP(ワンタイムパスワード)の入力を取得するために使用されるコンポーネントです。

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

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