Files
tommygeoco_ui-audit/references/31-patterns-navigation.md

11 KiB
Raw Permalink Blame History

Patterns: Navigation & Wayfinding

Patterns for helping users move through interfaces and find content.


What is Navigation?

The system that lets users move through your interface. Navigation answers three questions:

  1. Where am I?
  2. Where can I go?
  3. How do I get there?

Core principle: Users should never feel lost.


Priority+ Navigation

What: Show important items, collapse the rest.

How It Works

  1. Display as many items as fit
  2. Collapse remaining into "More" menu
  3. Responsive—adapts to screen width

Benefits

  • Responsive — Works at any width
  • Priority-aware — Most important items visible
  • Clean — Avoids overflow/wrapping

Implementation Guidelines

DO:

  • Order items by importance
  • Use clear "More" or "..." indicator
  • Test at various breakpoints
  • Include current item (even if in overflow)
  • Make overflow menu discoverable

DON'T:

  • Put critical items in overflow
  • Hide "More" when items overflow
  • Change item order at breakpoints
  • Use tiny touch targets for "More"

Pattern Example

Desktop (1200px+):
[Dashboard] [Projects] [Team] [Reports] [Settings] [Help]

Tablet (768px):
[Dashboard] [Projects] [Team] [Reports] [More ▼]
                                         └─ Settings
                                         └─ Help

Mobile (375px):
[☰] [Dashboard] [More ▼]

Off-Canvas / Hamburger Menu

What: Navigation hidden behind a toggle, typically a ☰ icon.

When to Use

  • Mobile layouts (space constraint)
  • Secondary navigation
  • Settings/admin menus
  • Large navigation structures

When NOT to Use

  • Desktop with adequate space
  • Primary navigation (if room exists)
  • Only 3-5 nav items

Implementation Guidelines

DO:

  • Use recognizable icon (☰)
  • Add text label when space permits
  • Animate open/close smoothly
  • Allow close via tap outside
  • Show current location indication

DON'T:

  • Hide all navigation on desktop
  • Use non-standard icons
  • Make menu hard to close
  • Nest menus too deeply
  • Forget keyboard accessibility

Hamburger Menu Anatomy

[☰ Menu]

──────────────────────
[Avatar] User Name    
         user@email   
──────────────────────
🏠 Dashboard
📁 Projects
👥 Team
📊 Reports
⚙️ Settings
──────────────────────
🚪 Sign out

Sticky/Fixed Navigation

What: Navigation that stays visible while scrolling.

Types

Type Behavior
Always fixed Always visible, takes space
Scroll-up reveal Appears on scroll up, hides on scroll down
Compact on scroll Shrinks when scrolling
Below-fold sticky Becomes sticky after scrolling past hero

Benefits

  • Always accessible — No scrolling to navigate
  • Orientation — Constant location indicator
  • Efficiency — Quick access to common actions

Implementation Guidelines

DO:

  • Keep sticky nav compact
  • Use shadow to indicate elevation
  • Consider scroll direction hiding
  • Test on various content lengths
  • Ensure doesn't block content

DON'T:

  • Take excessive vertical space
  • Forget mobile (screen height matters)
  • Cover content on tap
  • Make too visually heavy
  • Forget z-index conflicts

Scroll Behavior Patterns

/* Always visible */
.nav { position: fixed; top: 0; }

/* Compact on scroll */
.nav.scrolled { height: 48px; /* vs 64px default */ }

/* Hide on scroll down, show on scroll up */
.nav.hidden { transform: translateY(-100%); }

Bottom Navigation (Mobile)

What: Tab bar at bottom of screen for primary navigation.

When to Use

  • Mobile apps with 3-5 primary sections
  • Frequent switching between sections
  • iOS and Android native patterns

Implementation Guidelines

DO:

  • Limit to 3-5 items
  • Use icon + label
  • Show active state clearly
  • Make touch targets 48px+
  • Consider safe area (notch, home indicator)

DON'T:

  • Use for > 5 items
  • Use icons alone (without labels)
  • Put scrollable content in bottom nav
  • Forget selected state
  • Nest navigation actions

Bottom Nav Anatomy

┌──────────────────────────────┐
│                              │
│       [Content Area]         │
│                              │
├──────────────────────────────┤
│ 🏠     📁          👤     ⚙️ │
│ Home  Files  New   Profile  More│
└──────────────────────────────┘

Icon + Label Guidelines

Item Count Label Visibility
3 items Labels always visible
4-5 items Labels always visible or active only
5+ items Consider other navigation pattern

Sidebar Navigation

What: Vertical navigation, typically on left side.

Types

Type Use Case
Fixed sidebar Dashboard apps, admin tools
Collapsible Space optimization
Icon-only (rail) Minimal footprint
Expandable Icon-only → full on hover

Benefits

  • Scalable — Handles many items
  • Visible — Always accessible
  • Scannable — Vertical list easy to scan
  • Groupable — Sections and hierarchy

Implementation Guidelines

DO:

  • Group related items with headers
  • Show current location clearly
  • Allow collapse (icons only)
  • Remember collapsed state
  • Consider nesting (2 levels max)

DON'T:

  • Create too many groups
  • Nest more than 2 levels
  • Use icons alone for unfamiliar actions
  • Make collapsed state too narrow
  • Forget mobile adaptation

Sidebar Anatomy

┌──────────────────────────────────────┐
│ [Logo]                    [Collapse] │
├──────────────────────────────────────┤
│ MAIN                                 │
│ 🏠 Dashboard                         │
│ 📁 Projects                          │
│ 📊 Analytics                         │
├──────────────────────────────────────┤
│ WORKSPACE                            │
│ 👥 Team                              │
│ ⚙️ Settings                          │
├──────────────────────────────────────┤
│ [Avatar] User Name              [▼]  │
└──────────────────────────────────────┘

Tabs (In-Page Navigation)

What: Switching between content sections within a page.

When to Use

  • Related content that's mutually exclusive
  • User needs to compare/switch frequently
  • 2-7 equal-weight sections

Implementation Guidelines

DO:

  • Clear active state
  • Descriptive labels (2-3 words)
  • Logical order
  • Preserve content on tab switch
  • Support keyboard navigation

DON'T:

  • Use for sequential steps (use stepper)
  • Use for > 7 tabs without overflow
  • Change tab content while in progress
  • Use tabs within tabs
  • Forget about URL state (deep linking)

Tab Variants

Variant Use Case
Text tabs Standard, most common
Icon + text When icons aid recognition
Scrollable Many tabs, mobile
Fitted Equal-width tabs

Mega Menus

What: Large dropdown menus showing multiple categories.

When to Use

  • Large sites with many categories
  • E-commerce, enterprise, media sites
  • Categories benefit from visual display

Implementation Guidelines

DO:

  • Organize into clear groups
  • Include images when helpful
  • Provide direct links to popular items
  • Support keyboard navigation
  • Close on click outside

DON'T:

  • Make too tall (don't push footer)
  • Include too much content
  • Auto-open on hover (click better)
  • Nest mega menus
  • Forget mobile adaptation (often drawer/accordion)

Mega Menu Anatomy

Products ▼
┌─────────────────────────────────────────────────────┐
│ ELECTRONICS          APPAREL           HOME         │
│ Phones              Women's           Furniture     │
│ Laptops             Men's             Kitchen       │
│ Tablets             Kids              Decor         │
│ Accessories         Shoes             Bedding       │
│                                                     │
│ [Featured: New MacBook →]                           │
└─────────────────────────────────────────────────────┘

Command Palette

What: Keyboard-driven navigation and command execution.

Benefits

  • Speed — Expert users navigate instantly
  • Discovery — Search for features
  • Accessibility — Keyboard-first users
  • Unified access — One place for everything

Implementation Guidelines

DO:

  • Trigger with Cmd/Ctrl + K
  • Search items AND actions
  • Show keyboard shortcuts
  • Group results by type
  • Support recent/frequent items

DON'T:

  • Make it the only way to access features
  • Require memorization to use
  • Forget fuzzy search
  • Limit to just navigation

Command Palette UI

⌘K
┌────────────────────────────────────────┐
│ 🔍 Type a command or search...         │
├────────────────────────────────────────┤
│ RECENT                                 │
│ 📄 Project Alpha                       │
│ 📊 Analytics Dashboard                 │
├────────────────────────────────────────┤
│ ACTIONS                                │
│  Create new project          ⌘N      │
│ 👤 Invite team member          ⌘I      │
│ ⚙️ Open settings               ⌘,      │
└────────────────────────────────────────┘

Navigation Selection Guide

Context Recommended Pattern
Web app, many sections Sidebar
Mobile app, 3-5 sections Bottom nav
Content site, many categories Mega menu
Power users Command palette
Limited nav items Priority+
Mobile, complex nav Hamburger + drawer
Dashboard, multiple views Tabs

Navigation Audit

Requirement Implemented?
☐ Current location clear
☐ Available destinations visible
☐ Primary nav always accessible
☐ Mobile navigation works
☐ Keyboard navigation supported
☐ Deep linking possible
☐ Consistent across pages
☐ Active states clear