Navbar

マーケティングサイト用ナビゲーションバー

プレビュー

使いどころ

使う場面

  • LP やプロダクトサイトの最上部に置く、ロゴ + ページ内リンク + 主な操作の帯
  • logo にロゴ、children に NavbarLinks を渡し、右側の actions に「ログイン」と主な CTA を置く
  • 現在のページやセクションのリンクには active を付ける。aria-current="page" が出力される
  • ヒーロー画像に重ねるときは transparent にする

使わない場面

  • 業務アプリの画面上部。Topbar と Sidebar を使う
  • リンクが 6 個を超える構成。主要なものだけ残し、残りは LPFooter に移す
  • actions に主な操作を 2 つ以上並べること。主な操作は 1 つにし、もう 1 つは文字のリンクか outline にする

使い方

<Navbar logo={<Logo />} actions={<Button>はじめる</Button>}>
  <NavbarLinks>
    <NavbarLink href="/features" active>機能</NavbarLink>
    <NavbarLink href="/pricing">料金</NavbarLink>
  </NavbarLinks>
</Navbar>

プロパティ

名前型デフォルト説明
logoReactNodeなしロゴ要素
actionsReactNodeなし右側のアクション要素
transparentbooleanfalse透明背景にするかどうか
NavbarLinksサブコンポーネントなしナビリンクのコンテナ
NavbarLinkサブコンポーネントなし個々のナビリンク(active prop 対応)

型と必須かどうかはソースの型定義から自動で生成しています。表にない HTML 標準の属性(className や aria-* など)も、ルート要素にそのまま渡せます。

キーボード操作

キー動作
Tabロゴ、リンク、actions の順にフォーカスを移す
Enterフォーカスしたリンクを開く(ボタンは Enter / Space で押す)

アクセシビリティ

  • <nav> のランドマークで出力される。ページに <nav> が複数ある(フッターなど)ときは aria-label="メイン" のように名前を付けて区別する
  • リンクは <ul> の <li> に入り、項目数が読み上げられる
  • Next.js の Link を使うときは asChild で包む。as も使えるが、両方指定したときは asChild が優先される
  • ページ内アンカーに active を付ける場合も aria-current="page" になる。現在地として正しいか確認する

文言

  • リンク名は 2 から 6 文字の名詞(「機能」「料金」「導入事例」)。動詞の文にしない
  • ログインは「ログイン」、登録の導線は「無料で始める」のように動詞で書く

関連するコンポーネント