# Navigation Components
> Nav patterns: top bar, sidebar, mobile hamburger, breadcrumb, and tabbed navigation
> 네비게이션 패턴: 상단바, 사이드바, 모바일 햄버거, 브레드크럼, 탭 네비게이션

**Category**: Components | **Tags**: navigation, navbar, sidebar, tabs, breadcrumb, tailwind | **Difficulty**: Beginner

## Preview
```
+-- Top Bar ----------------------------------+
| Logo   Home  Products  Pricing  [Sign Up]   |
+---------------------------------------------+
+-- Sidebar ---------+  +-- Tabs ----------+
| Logo               |  | Tab1 | Tab2 | Tab3|
| > Dashboard        |  | [  content     ] |
|   Analytics        |  +------------------+
|   Settings         |  +-- Breadcrumb -----+
+--------------------+  | Home > Docs > API  |
```

## Quick Start
```bash
# 1. Pick the nav pattern you need
# 2. Copy the HTML block into your layout
# 3. Mobile hamburger uses pure JS toggle (no framework needed)
```

## Full Code

```html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Navigation Components</title>
  <script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="bg-gray-100 dark:bg-gray-900 min-h-screen">
  <div class="max-w-6xl mx-auto p-8 space-y-12">

    <h1 class="text-2xl font-bold text-gray-900 dark:text-white">Navigation Components</h1>

    <!-- 1. Top Navbar (Transparent + Blur) -->
    <div>
      <h2 class="text-lg font-semibold text-gray-900 dark:text-white mb-3">Top Navbar</h2>
      <nav class="bg-white/80 dark:bg-gray-800/80 backdrop-blur rounded-2xl border border-gray-200 dark:border-gray-700 px-6 h-16 flex items-center justify-between">
        <a href="#" class="text-xl font-bold text-indigo-600">Brand</a>
        <div class="hidden md:flex items-center gap-8">
          <a href="#" class="text-sm font-medium text-gray-900 dark:text-white">Home</a>
          <a href="#" class="text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition">Products</a>
          <a href="#" class="text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition">Pricing</a>
          <a href="#" class="text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition">Docs</a>
        </div>
        <div class="hidden md:flex items-center gap-3">
          <a href="#" class="text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition">Log in</a>
          <a href="#" class="px-4 py-2 bg-indigo-600 text-white text-sm rounded-lg font-medium hover:bg-indigo-700 transition">Sign Up</a>
        </div>
        <button class="md:hidden" onclick="document.getElementById('mob-menu').classList.toggle('hidden')">
          <svg class="w-6 h-6 text-gray-900 dark:text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"/></svg>
        </button>
      </nav>
      <div id="mob-menu" class="hidden md:hidden mt-2 bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 p-4 space-y-3">
        <a href="#" class="block text-sm font-medium text-gray-900 dark:text-white">Home</a>
        <a href="#" class="block text-sm text-gray-500">Products</a>
        <a href="#" class="block text-sm text-gray-500">Pricing</a>
        <a href="#" class="block text-sm text-gray-500">Docs</a>
        <hr class="border-gray-200 dark:border-gray-700">
        <a href="#" class="block px-4 py-2 bg-indigo-600 text-white text-sm rounded-lg text-center font-medium">Sign Up</a>
      </div>
    </div>

    <!-- 2. Sidebar Navigation -->
    <div>
      <h2 class="text-lg font-semibold text-gray-900 dark:text-white mb-3">Sidebar Navigation</h2>
      <div class="w-64 bg-white dark:bg-gray-800 rounded-2xl border border-gray-200 dark:border-gray-700 p-4">
        <div class="px-3 mb-6"><span class="text-lg font-bold text-indigo-600">AppName</span></div>
        <nav class="space-y-1">
          <a href="#" class="flex items-center gap-3 px-3 py-2.5 bg-indigo-50 dark:bg-indigo-900/30 text-indigo-700 dark:text-indigo-300 rounded-lg text-sm font-medium">
            <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"/></svg>
            Dashboard</a>
          <a href="#" class="flex items-center gap-3 px-3 py-2.5 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg text-sm">
            <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/></svg>
            Analytics</a>
          <a href="#" class="flex items-center gap-3 px-3 py-2.5 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg text-sm">
            <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z"/></svg>
            Users</a>
          <div class="pt-3 mt-3 border-t border-gray-200 dark:border-gray-700">
            <a href="#" class="flex items-center gap-3 px-3 py-2.5 text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-700 rounded-lg text-sm">
              <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/></svg>
              Settings</a>
          </div>
        </nav>
      </div>
    </div>

    <!-- 3. Breadcrumb -->
    <div>
      <h2 class="text-lg font-semibold text-gray-900 dark:text-white mb-3">Breadcrumb</h2>
      <nav class="bg-white dark:bg-gray-800 rounded-xl border border-gray-200 dark:border-gray-700 px-4 py-3">
        <ol class="flex items-center gap-2 text-sm">
          <li><a href="#" class="text-gray-500 hover:text-indigo-600 transition">Home</a></li>
          <li class="text-gray-300">/</li>
          <li><a href="#" class="text-gray-500 hover:text-indigo-600 transition">Documentation</a></li>
          <li class="text-gray-300">/</li>
          <li><a href="#" class="text-gray-500 hover:text-indigo-600 transition">API Reference</a></li>
          <li class="text-gray-300">/</li>
          <li class="text-gray-900 dark:text-white font-medium">Authentication</li>
        </ol>
      </nav>
    </div>

    <!-- 4. Tabs -->
    <div>
      <h2 class="text-lg font-semibold text-gray-900 dark:text-white mb-3">Tabs</h2>
      <div class="bg-white dark:bg-gray-800 rounded-2xl border border-gray-200 dark:border-gray-700 overflow-hidden">
        <div class="flex border-b border-gray-200 dark:border-gray-700">
          <button class="px-6 py-3 text-sm font-medium text-indigo-600 border-b-2 border-indigo-600">Overview</button>
          <button class="px-6 py-3 text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition">Analytics</button>
          <button class="px-6 py-3 text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition">Reports</button>
          <button class="px-6 py-3 text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition">Settings</button>
        </div>
        <div class="p-6">
          <p class="text-sm text-gray-600 dark:text-gray-400">Tab content goes here. Each tab shows different content by toggling visibility.</p>
        </div>
      </div>

      <!-- Pill Tabs Variant -->
      <div class="mt-4 flex gap-1 bg-gray-200 dark:bg-gray-700 p-1 rounded-xl w-fit">
        <button class="px-4 py-2 bg-white dark:bg-gray-800 rounded-lg text-sm font-medium shadow-sm text-gray-900 dark:text-white">Daily</button>
        <button class="px-4 py-2 text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition rounded-lg">Weekly</button>
        <button class="px-4 py-2 text-sm text-gray-500 hover:text-gray-900 dark:hover:text-white transition rounded-lg">Monthly</button>
      </div>
    </div>

  </div>
</body>
</html>
```

## Customization Guide
- **Active state**: Change the active nav link background to match your brand (`bg-indigo-50` to `bg-blue-50`, etc.)
- **Icons**: Replace inline SVGs with your icon library (Heroicons, Lucide, Phosphor)
- **Mobile menu**: The hamburger toggles a hidden div; wire up click-outside to close
- **Tabs**: Add JS to toggle `hidden` class on tab panels and update active tab styling
- **Breadcrumb separator**: Change `/` to `>` or an SVG chevron icon
- **Sidebar width**: Adjust `w-64` for wider/narrower sidebar

## 2026 Trend Notes
- Backdrop blur navbar (`backdrop-blur bg-white/80`) for modern transparency effect
- Pill tabs with segmented control look (background container + active pill) is the dominant pattern
- Sidebar active state uses soft background color + border accent
- Mobile menu slides in below nav (not overlay) for simpler implementation
- Breadcrumbs with semantic `<ol>` element for accessibility
