Menu

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

使い方

import { Menu } from "@yamada-ui/react"
<Menu.Root>
  <Menu.Trigger />
  <Menu.ContextTrigger />
  <Menu.Anchor />
  <Menu.Content>
    <Menu.Header />
    <Menu.Group>
      <Menu.Item>
        <Menu.Label />
        <Menu.Indicator />
        <Menu.Command />
      </Menu.Item>
    </Menu.Group>
    <Menu.Separator />
    <Menu.OptionGroup>
      <Menu.OptionItem />
    </Menu.OptionGroup>
    <Menu.Footer />
  </Menu.Content>
</Menu.Root>

itemsを使う

サイズを変更する

選択時のイベントをハンドルする

選択時のイベントをハンドルする場合は、onSelectを使用します。

区切り線を追加する

グループ化する

アイコンを表示する

コマンドを表示する

選択可能な項目を設定する

ネストさせる

コンテキストメニューを使用する

別の要素を参照して表示する

Here display Popover

選択時の閉じる動作を無効にする

選択時の閉じる動作を無効にする場合は、closeOnSelectfalseに設定します。

内部状態にアクセスする

内部状態にアクセスする場合は、Menu.Rootchildrenに関数を渡します。

初回のフォーカスを設定する

初回のフォーカスを設定する場合は、initialFocusRefRefを渡します。

配置を変更する

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

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

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

オフセットを変更する

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

継続時間を変更する

所要時間を変更する場合は、durationに数値(秒)を設定します。

外側のクリック時に閉じない

外側のクリック時に閉じない場合は、closeOnBlurfalseに設定します。

項目を無効にする

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

ヘッダーやフッターを追加する場合は、Menu.ContentheaderまたはfooterReactNodeを設定します。

制御する

Props

アクセシビリティ

Menuは、アクセシビリティに関してWAI-ARIA - Menu and Menubar PatternおよびWAI-ARIA - Menu Button Patternに従います。

キーボード操作

キー説明状態
Space, Enterメニューを開き、無効ではない最初の項目をフォーカスします。-
メニュー内である場合はフォーカスされている項目をアクティブにして、すべてのメニューを閉じます。closeOnSelect={true}
ArrowRightサブメニューのトリガーである場合はサブメニューを開き、無効ではない最初の項目をフォーカスします。subMenuDirection="end"
サブメニュー内である場合はサブメニューを閉じ、サブメニューのトリガーにフォーカスします。subMenuDirection="start"
ArrowLeftサブメニューのトリガーである場合はサブメニューを開き、無効ではない最初の項目をフォーカスします。subMenuDirection="start"
サブメニュー内である場合はサブメニューを閉じ、サブメニューのトリガーにフォーカスします。subMenuDirection="end"
ArrowUpメニューを開き、無効ではない最後の項目をフォーカスします。メニュー内である場合は無効ではない前の項目をフォーカスします。最初の項目の場合は無効ではない最後の項目をフォーカスします。-
ArrowDownメニューを開き、無効ではない最初の項目をフォーカスします。メニュー内である場合は無効ではない次の項目をフォーカスします。最後の項目の場合は無効ではない最初の項目をフォーカスします。-
Homeメニュー内である場合は無効ではない最初の項目をフォーカスします。-
Endメニュー内である場合は無効ではない最後の項目をフォーカスします。-
Escapeメニューを閉じてトリガーにフォーカスします。closeOnEsc={true}

ARIAロールと属性

コンポーネントロールと属性使い方
Menu.Triggerrole="button"ボタンであることを示します。
aria-controlsメニューが開いている場合は関連したMenu.Contentidを設定し、閉じている場合はundefinedを設定します。
aria-disableddisabledが設定されている場合は"true"を設定します。
aria-expandedメニューが開いている場合は"true"を設定し、閉じている場合は、"false"を設定します。
aria-haspopup="menu"メニューが存在することを示します。
Menu.ContextTriggerrole="application"アプリケーションであることを示します。
aria-controlsメニューが開いている場合は関連したMenu.Contentidを設定し、閉じている場合はundefinedを設定します。
aria-disableddisabledが設定されている場合は"true"を設定します。
aria-expandedメニューが開いている場合は"true"を設定し、閉じている場合は、"false"を設定します。
aria-haspopup="menu"メニューが存在することを示します。
Menu.Contentrole="menu"メニューであることを示します。
aria-activedescendantフォーカスされた項目のidを設定します。
aria-hiddenメニューが開いている場合は"false"を設定し、閉じている場合は"true"を設定します。
aria-labelledby関連したMenu.TriggerまたはMenu.ContextTriggeridを設定します。
Menu.Labelrole="presentation"プレゼンテーションであることを示します。
Menu.Grouprole="group"グループであることを示します。
aria-labelledby関連したMenu.Labelidを設定します。
Menu.Itemrole="menuitem"メニュー項目であることを示します。
aria-disableddisabledが設定されている場合は"true"を設定します。
Menu.OptionItemroleMenu.OptionGrouptype"radio"に設定されている場合は"menuitemradio"を設定し、"checkbox"に設定されている場合は"menuitemcheckbox"を設定します。
Menu.Separatorrole="separator"セパレーターであることを示します。

類似のコンポーネント

Select

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

NativePopover

NativePopoverは、HTML Popover APIを使用して要素の周りにフローティングして情報を表示するコンポーネントです。

Autocomplete

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

Tooltip

Tooltipは、要素の補足など短い情報を表示するコンポーネントです。

Popover

Popoverは、要素の周りにフローティングして情報を表示するコンポーネントです。

Tabs

Tabsは、異なる表示領域を切り替えるコンポーネントです。

Modal

Modalは、主要なコンテンツに重ねて表示され、ユーザーの注意を情報のみに集中させるコンポーネントです。

Drawer

Drawerは、画面の端から表示されるパネルのコンポーネントです。

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

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