Dropdown

クリックで展開されるメニューを提供するコンポーネント。アクションの一覧やコンテキストメニューに使用します。

Basic

jui-dropdown の最も基本的な使用例です。

メニューを開く

関連コンポーネント

  • Button — ユーザーがアクションを実行するためのボタンコンポーネント
  • Popover — 要素に対してポップオーバーを表示するコンポーネント
  • Select — 選択肢から1つを選択するセレクトコンポーネント

アクセシビリティ

  • WAI-ARIA:
    • トリガー要素に aria-haspopup="menu"aria-expanded 属性が自動設定され、メニューの開閉状態が支援技術に伝わります。
    • メニューコンテナには role="menu" が設定され、各メニュー項目には role="menuitem" が付与されます。
    • 無効な項目には aria-disabled="true" が自動で付与されます。
  • キーボードナビゲーション:
    • トリガーにフォーカスした状態で EnterSpaceArrowDown キーでメニューを開きます。
    • メニュー展開中は ArrowDown / ArrowUp で項目を移動、Home / End で先頭・末尾にジャンプできます。
    • Enter または Space でフォーカス中の項目を選択します。
    • Escape キーでメニューを閉じ、フォーカスはトリガーに戻ります。

CSS カスタムプロパティ

このコンポーネント固有のカスタムプロパティはありません。グローバルのデザイントークン(--jui-color-background, --jui-color-text, --jui-radius-md, --jui-shadow-lg 等)を参照してスタイルが適用されます。

ブラウザ対応

このコンポーネントが使用しているブラウザ機能と対応状況です。

機能用途ChromeFirefoxSafariステータス
color-mix()ホバー/フォーカス色生成111+113+16.4+Baseline 2023
:focus-visibleキーボードフォーカスリング86+85+15.4+Baseline 2022

💡 いずれの機能も Baseline 2022〜2023 に到達しており、主要ブラウザで広く対応済みです。

Baseline 情報

機能Baseline 達成Widely Available 予定
color-mix()2023年2025年後半 ✅
:focus-visible2022年2024年後半 ✅

プロパティ

コンポーネントが受け付ける属性(Props)の一覧と詳細仕様です。

PropertyAttributeDescriptionTypeDefault
itemsitemsメニュー項目(JSON文字列 or 配列)DropdownItem[] | string'[]'
menuLabelmenu-labelメニューラベル(i18n対応)string'メニュー'
placementplacement配置方向"bottom-end" | "bottom-start" | "top-end" | "top-start"'bottom-start'

イベント

コンポーネントから発火するカスタムイベントの一覧です。

EventDescriptionType
juiSelectメニュー項目が選択された時CustomEvent<{ key: string; item: DropdownItem; }>

スロット

コンポーネント内に子要素を挿入するためのスロット一覧です。

SlotDescription
"trigger"トリガー要素(ボタン等)

シャドウパーツ

CSSから直接スタイリング可能な内部要素(Parts)の一覧です。

PartDescription
"item"メニュー項目
"menu"メニューコンテナ
"separator"セパレータ

Built with StencilJS