Sidebar

Sidebarは、サイドバーにアイテムのリストを表示するコンポーネントです。

使い方

import { Sidebar } from "@yamada-ui/react"
<Sidebar.Root>
  <Sidebar.SidePanel>
    <Sidebar.Header>
      <Sidebar.Menu />
      <Sidebar.MenuButton />
    </Sidebar.Header>
    <Sidebar.Content>
      <Sidebar.Item>
        <Sidebar.Item />
      </Sidebar.Item>
      <Sidebar.Item />
      <Sidebar.Group>
        <Sidebar.GroupLabel />
        <Sidebar.GroupContent>
          <Sidebar.Item>
            <Sidebar.Item />
          </Sidebar.Item>
          <Sidebar.Item />
        </Sidebar.GroupContent>
      </Sidebar.Group>
    </Sidebar.Content>
    <Sidebar.Footer>
      <Sidebar.Menu />
      <Sidebar.MenuButton />
    </Sidebar.Footer>
    <Sidebar.Handle />
  </Sidebar.SidePanel>
  <Sidebar.MainPanel>
    <Sidebar.Trigger />
  </Sidebar.MainPanel>
</Sidebar.Root>

フレームワークと統合する

Next.jsなどのフレームワークと統合する場合は、フレームワークから提供されているリンクのコンポーネントをlinkProps.asに設定します。また、ルーティングと同期させる場合は、フレームワークから提供されている現在のパスを取得する関数またはフックの返り値をselectedValueに設定します。

"use client"

import { usePathname } from "next/navigation"
import Link from "next/link"

function Layout({ children }: { children: React.ReactNode }) {
  const pathname = usePathname()

  return (
    <Sidebar.Root>
      <Sidebar.SidePanel linkProps={{ as: Link }} selectedValue={pathname} />
    </Sidebar.Root>
  )
}

itemsを使う

バリアントを変更する

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

モードを変更する

モードを変更する場合は、mode"offcanvas"または"icon"を設定します。デフォルトは、"offcanvas"です。

形を変更する

配置を変更する

配置を変更する場合は、placement"start"または"end"を設定します。デフォルトは、"start"です。

モバイル用の配置をオーバーライドする場合は、drawerPropsplacementを設定します。

ブレイクポイントを変更する

モバイル用に切り替えるブレイクポイントを変更する場合は、breakpointに値を設定します。この値は、ブレイクポイントを参照しています。

ブレイクポイントを無効にする

モバイル用に切り替えるブレイクポイントを無効にする場合は、breakpointfalseを設定します。

デフォルトで閉じた状態にする

デフォルトで閉じた状態にする場合は、disclosure.desktop.defaultOpenfalseに設定します。

特定の項目を選択済みにする

特定の項目を選択済みにする場合は、defaultSelectedValueに項目の値を設定します。

特定の項目を展開済みにする

最初から特定の項目を展開済みにする場合は、defaultExpandedValueに項目の値を設定します。

項目を無効にする

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

ローカルストレージに値を保存する

グループガイドラインを表示する

グループガイドラインを表示する場合は、withGroupGuideLinetrueに設定します。

ガイドラインを表示する

ガイドラインを表示する場合は、withGuideLinetrueに設定します。

セパレーターを追加する

インジケーターを非表示にする

インジケーターを非表示にする場合は、indicatorHiddentrueに設定します。

アニメーションを無効にする

展開・折りたたみ時のアニメーションを無効にする場合は、animatedfalseに設定します。

リサイズハンドルを無効にする

リサイズハンドルを無効にする場合は、withHandlefalseに設定します。デフォルトは、trueです。

非同期で読み込む

項目の子要素を非同期で読み込む場合は、childrenの代わりにasyncChildrenを使用します。

ローディングスキームを変更する

項目をすべて展開・折りたたむ

項目をすべて展開または折りたたむ場合は、controlRefを使用します。

要素をカスタマイズする

インジケーターをカスタマイズする

制御する

Props

類似のコンポーネント

Tabs

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

Breadcrumb

Breadcrumbは、ユーザーがウェブサイトの階層を理解するのに役立つコンポーネントです。

LinkBox

LinkBoxは、記事やカードなどの要素を一つのリンクとして機能させるコンポーネントです。

NativeAccordion

NativeAccordionは、HTMLのdetails要素を使用して情報を展開または折りたたんで表示するリストのコンポーネントです。

Pagination

Paginationは、コンテンツのページ分割とナビゲーションを管理するためのコンポーネントです。

Accordion

Accordionは、情報を展開または折りたたんで表示するリストのコンポーネントです。

Steps

Stepsは、複数のステップのプロセスの進行状況を表示するコンポーネントです。

Tree

Treeは、階層データを展開可能なツリー形式で表示するコンポーネントです。

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