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

Navbarブロック

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


🚀 インストール

npm install @nodeblocks/frontend-navbar-block@0.1.4

📖 使用法

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>Home</span></Navbar.Link>
<Navbar.Link href="#about"><span>About</span></Navbar.Link>
<Navbar.Link href="#services"><span>Services</span></Navbar.Link>
<Navbar.Link href="#contact"><span>Contact</span></Navbar.Link>
</div>
}
rightContent={
<Navbar.ButtonLink href="#login">Login</Navbar.ButtonLink>
}>
<Navbar.Left />
<Navbar.Center />
<Navbar.Right />
</Navbar>
);
}

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

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

プロパティデフォルト説明
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';

// Main component interface
interface NavbarProps extends Omit<ComponentProps<'nav'>, 'children'> {
leftContent: ReactNode;
centerContent: ReactNode;
rightContent: ReactNode;
className?: string;
}

// Usage example with comprehensive typing
const customNavbar: NavbarProps = {
leftContent: <Navbar.Logo src="/logo.svg" alt="Logo" />,
centerContent: (
<nav>
<Navbar.Link href="#home">Home</Navbar.Link>
<Navbar.Link href="#products">Products</Navbar.Link>
<Navbar.Link href="#about">About</Navbar.Link>
</nav>
),
rightContent: (
<div>
<Navbar.ButtonLink href="#login">Login</Navbar.ButtonLink>
<Navbar.ButtonLink href="#register">Register</Navbar.ButtonLink>
</div>
),
className: 'my-custom-navbar',
};

// Example with sub-component customization
function AdvancedNavbar() {
return (
<Navbar {...customNavbar}>
<Navbar.Left />
<Navbar.Center />
<Navbar.Right
onClick={e => console.log('Right section clicked')}
style={{backgroundColor: 'lightgray'}}
className="my-custom-right-section">
{/* This overrides rightContent from context */}
<Navbar.ButtonLink href="#custom-action">Custom Action</Navbar.ButtonLink>
</Navbar.Right>
</Navbar>
);
}

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