Sidebar

アプリケーションの主要なナビゲーションを提供するサイドバーコンポーネントです。メニュー項目のグループ化や折りたたみに対応します。

Basic

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

関連コンポーネント

  • Breadcrumb — ページ階層を表示するパンくずナビゲーション
  • Tabs — タブ形式のナビゲーションコンポーネント

ブラウザ対応

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

機能用途ChromeFirefoxSafariステータス
CSS Gridサイドバー全体の 3カラム(ヘッダー/ナビ/フッター)レイアウト57+52+10.1+Baseline 2017
::slotted()ヘッダーおよびフッターに配置されたロゴやユーザー情報の配置・スタイル制御53+63+10+Baseline 2020
CSS 変数 (var())デザイントークン(背景色、ボーダー、折りたたみアニメーション時間等)適用49+31+9.1+Baseline 2017

💡 いずれの機能も主要ブラウザで広く対応済みです。

Baseline 情報

機能Baseline 達成Widely Available 予定
CSS Grid2017年2020年前半 ✅
::slotted()2020年2022年後半 ✅
CSS 変数2017年2020年前半 ✅

アクセシビリティ

  • WAI-ARIA:
    • ルートの nav 要素に role="navigation" および aria-label="サイドバーナビゲーション"(または nav-label Prop値)が付加されます。
    • 折りたたみ可能である場合、トグルボタンに aria-expanded="true"(展開時)または aria-expanded="false"(折りたたみ時)が動的に設定され、現在サイドバーが開いているかどうかが支援技術に伝わります。また、ボタンのラベルには collapse-label / expand-label による多言語対応可能なアクセシブルな名前が設定されます。
    • アクティブなメニュー項目は aria-current="page" などを用いて支援技術に現在のページであることが示されます。
  • キーボードナビゲーション:
    • メニュー項目(リンク)や折りたたみトグルボタンは Tab キーでフォーカス移動が可能です。
    • ハイライトされた項目は Enter または Space キーで実行できます。

CSS カスタムプロパティ

このコンポーネント固有のカスタムプロパティはありません。グローバルのデザイントークンを参照してスタイルが適用されます。

プロパティ

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

PropertyAttributeDescriptionTypeDefault
activeKeyactive-keyアクティブなメニューキーstring''
collapseLabelcollapse-label折りたたみラベル(i18n対応)string'Collapse menu'
collapsedcollapsed折りたたみ状態booleanfalse
collapsedWidthcollapsed-widthサイドバー幅(折りたたみ時)string'64px'
collapsiblecollapsible折りたたみ可能かbooleantrue
expandLabelexpand-label展開ラベル(i18n対応)string'Expand menu'
itemsitemsメニュー項目(JSON文字列 or 配列)SidebarItem[] | string'[]'
navLabelnav-labelナビゲーションラベル(i18n対応)string'Sidebar navigation'
variantvariantバリアント: default(ツリーメニュー)/ docs(ドキュメントナビ)/ minimal(ミニマル)/ floating(浮遊)/ transparent(透過)"default" | "docs" | "floating" | "minimal" | "transparent"'default'
widthwidthサイドバー幅(展開時)string'260px'

イベント

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

EventDescriptionType
juiCollapse折りたたみ状態が変更された時CustomEvent<{ collapsed: boolean; }>
juiSelectメニュー項目が選択された時CustomEvent<{ key: string; item: SidebarItem; }>

スロット

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

SlotDescription
"footer"サイドバー下部(ユーザー情報等)
"header"サイドバー上部(ロゴ等)

シャドウパーツ

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

PartDescription
"footer"フッター領域
"group"サブメニューグループ
"group-title"グループタイトル(docs variant)
"header"ヘッダー領域
"item"メニュー項目
"item-active"アクティブメニュー項目
"nav"ナビゲーション領域
"sidebar"ルートコンテナ
"toggle"折りたたみトグルボタン

Built with StencilJS