メインコンテンツまでスキップ

Navbarブロック

Navbarコンポーネントは、ReactとTypeScriptで構築された完全にカスタマイズ可能でアクセシブルなナビゲーションバーです。モダンなデザインパターン、柔軟なレイアウトセクション、カスタマイズ可能なコンテンツエリアを備えた完全なWebサイトナビゲーションインターフェースを提供します。


🚀 インストール

npm install @nodeblocks/frontend-navbar-block

📖 使用法

import {Navbar} from '@nodeblocks/frontend-navbar-block';
ライブエディター
function BasicNavbar() {
  return (
    <Navbar
      leftContent={
        <Navbar.Logo src="/img/icon-small.png" alt="Company Logo" style={{height: '32px'}} />
      }
      centerContent={
        <div style={{display: 'flex', gap: '16px'}}>
          <Navbar.Link href="#home"><span>ホーム</span></Navbar.Link>
          <Navbar.Link href="#about"><span>概要</span></Navbar.Link>
          <Navbar.Link href="#services"><span>サービス</span></Navbar.Link>
          <Navbar.Link href="#contact"><span>お問い合わせ</span></Navbar.Link>
        </div>
      }
      rightContent={
        <Navbar.ButtonLink href="#login">ログイン</Navbar.ButtonLink>
      }>
      <Navbar.Left />
      <Navbar.Center />
      <Navbar.Right />
    </Navbar>
  );
}
結果
Loading...

🔧 プロパティリファレンス

メインコンポーネントプロパティ

プロパティデフォルト説明
leftContentReactNode必須ナビゲーションバーの左セクションに表示するコンテンツ(通常はロゴ)
centerContentReactNode必須ナビゲーションバーの中央セクションに表示するコンテンツ(通常はナビゲーションリンク)
rightContentReactNode必須ナビゲーションバーの右セクションに表示するコンテンツ(通常はユーザーアクション/ボタン)
classNamestringundefinedナビゲーションバーコンテナのスタイリング用の追加CSSクラス名
childrenBlocksOverrideundefinedデフォルトブロックをオーバーライドするか、カスタムナビゲーションバーセクションを追加する関数

注意: メインコンポーネントはすべてのHTML nav要素プロパティを継承します。

サブコンポーネント

Navbarコンポーネントは複数のサブコンポーネントを提供します。すべてのサブコンポーネントは、メインコンポーネントのコンテキストからデフォルト値を受け取り、プロパティを通じてこれらの値をオーバーライドできます。

プロパティデフォルト説明
childrenReactNodeコンテキストのleftContent左セクションに表示するコンテンツ(コンテキストのleftContentをオーバーライド)

注意: このコンポーネントはHTML div要素プロパティを継承します。

プロパティデフォルト説明
childrenReactNodeコンテキストのcenterContent中央セクションに表示するコンテンツ(コンテキストのcenterContentをオーバーライド)

注意: このコンポーネントはHTML div要素プロパティを継承します。

プロパティデフォルト説明
childrenReactNodeコンテキストのrightContent右セクションに表示するコンテンツ(コンテキストのrightContentをオーバーライド)

注意: このコンポーネントはHTML div要素プロパティを継承します。

プロパティデフォルト説明
srcstring必須ロゴ画像のソースURL
altstring必須ロゴ画像の代替テキスト

注意: このコンポーネントはHTML img要素プロパティを継承します。

プロパティデフォルト説明
hrefstring必須リンクの宛先URL
childrenReactNode必須リンク内に表示するコンテンツ
プロパティデフォルト説明
hrefstring必須ボタンリンクの宛先URL
childrenReactNode必須ボタン内に表示するコンテンツ

🔧 TypeScriptサポート

包括的な型定義による完全なTypeScriptサポート:

import {Navbar} from '@nodeblocks/frontend-navbar-block';
import {ComponentProps, ReactNode} from 'react';

// メインコンポーネントインターフェース
interface NavbarProps extends Omit<ComponentProps<'nav'>, 'children'> {
leftContent: ReactNode;
centerContent: ReactNode;
rightContent: ReactNode;
className?: string;
}

// 包括的な型付きの使用例
const customNavbar: NavbarProps = {
leftContent: <Navbar.Logo src="/logo.svg" alt="ロゴ" />,
centerContent: (
<nav>
<Navbar.Link href="#home">ホーム</Navbar.Link>
<Navbar.Link href="#products">プロダクト</Navbar.Link>
<Navbar.Link href="#about">概要</Navbar.Link>
</nav>
),
rightContent: (
<div>
<Navbar.ButtonLink href="#login">ログイン</Navbar.ButtonLink>
<Navbar.ButtonLink href="#register">登録</Navbar.ButtonLink>
</div>
),
className: 'my-custom-navbar',
};

// サブコンポーネントカスタマイゼーション例
function AdvancedNavbar() {
return (
<Navbar {...customNavbar}>
<Navbar.Left />
<Navbar.Center />
<Navbar.Right
onClick={e => console.log('右セクションがクリックされました')}
style={{backgroundColor: 'lightgray'}}
className="my-custom-right-section">
{/* これはコンテキストのrightContentをオーバーライドします */}
<Navbar.ButtonLink href="#custom-action">カスタムアクション</Navbar.ButtonLink>
</Navbar.Right>
</Navbar>
);
}

React、TypeScript、モダンWebスタンダードを使用して❤️で構築されました。