Files
wow-design-wiki/mobile/mobile-navigation-patterns.md
neo 083f6ba783 feat(mobile): comprehensive mobile web design patterns — 6 new articles
- mobile-patterns.md: Mobile layout & pattern systems (18.5KB)
  Fluid typography, container queries, safe-area, CSS architecture,
  touch-optimized components, iOS/Android specifics, testing checklist

- mobile-layout-patterns.md: Mobile layout systems (11.5KB)
  CSS grid, single-column stack, full-bleed hero, card stack,
  swipeable carousel, split-screen, off-canvas nav, bottom sheet,
  FAB, component patterns

- mobile-navigation-patterns.md: Mobile navigation (9.8KB)
  Bottom tab bar, top nav, hamburger menu, bottom sheet nav,
  pill nav, comparison matrix, navigation rules, swipe navigation,
  breadcrumbs, tab content

- mobile-form-patterns.md: Mobile form patterns (10.3KB)
  Input types, keyboards, floating labels, validation patterns,
  progressive disclosure, autocomplete, masked inputs, toggle/radio,
  form anti-patterns

- mobile-interaction-patterns.md: Touch & gestures (16.7KB)
  Swipe detection, long press, pull-to-refresh, touch feedback,
  scroll-reveal, parallax, sticky scroll, CSS scroll animations,
  touch carousel, haptic feedback, passive listeners

- mobile-performance-patterns.md: Performance optimization (12.3KB)
  Core Web Vitals (LCP/INP/CLS), LCP optimization, INP debugging,
  CLS prevention, image optimization, lazy loading, service workers,
  CSS/JS optimization, network optimization

- mobile-landing-patterns.md: Landing page patterns (21.3KB)
  Section sequencing, hero, social proof, feature cards,
  CTA patterns (inline/sticky/full-bleed), testimonials, pricing,
  FAQ accordion, footer, mobile checklist
2026-07-03 20:15:10 +05:00

9.6 KiB

title, created, updated, type, tags, sources, confidence
title created updated type tags sources confidence
Mobile Navigation Patterns 2026-07-03 2026-07-03 system
mobile
navigation
ux
bottom-nav
hamburger
gesture
https://www.uxpin.com/studio/blog/mobile-navigation-examples/
https://www.uxpin.com/studio/blog/mobile-navigation-patterns-pros-and-cons/
https://www.seven-squar-tech.com/which-mobile-navigation-patterns-works-what-fails/
https://claritee.io/blog/creative-mobile-ui-patterns-for-enhanced-navigation/
high

Mobile Navigation Patterns — Мобильная навигация

1. Типы навигации для мобильных

1.1 Bottom Tab Bar (Наиболее предпочтительная)

.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  height: calc(56px + var(--safe-bottom));
  padding-bottom: var(--safe-bottom);
  background: var(--surface-1);
  border-top: 1px solid var(--border-1);
  display: flex;
  justify-content: space-around;
  align-items: center;
  z-index: 100;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.05);
}

.bottom-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  color: var(--text-secondary);
  text-decoration: none;
  font-size: 12px;
  transition: color 0.2s;
  min-width: 48px;
  min-height: 48px;
  justify-content: center;
}

.bottom-nav__item.active {
  color: var(--primary);
}

.bottom-nav__item.active .bottom-nav__icon {
  transform: scale(1.1);
}

.bottom-nav__icon {
  width: 24px;
  height: 24px;
  transition: transform 0.2s;
}

Правила:

  • 3-5 элементов максимум
  • Иконка + подпись
  • Текущий раздел выделен
  • Не скрывать при скролле
  • Лучше чем hamburger (все элементы видны)

1.2 Top Navigation Bar

.top-nav {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  height: 56px;
  padding: 0 16px;
  background: var(--surface-1);
  border-bottom: 1px solid var(--border-1);
  display: flex;
  align-items: center;
  justify-content: space-between;
  z-index: 100;
}

.top-nav__title {
  font-size: var(--text-lg);
  font-weight: 600;
}

.top-nav__actions {
  display: flex;
  gap: 16px;
  align-items: center;
}

.top-nav__action {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: var(--text-primary);
  cursor: pointer;
  transition: background 0.2s;
}

.top-nav__action:active {
  background: var(--surface-2);
}

Правила:

  • Sticky при скролле (не fixed)
  • Логотип слева, действия справа
  • Заголовок по центру
  • Минимум 2-3 действия

1.3 Hamburger Menu (Slide-in Drawer)

.hamburger-menu {
  position: fixed;
  top: 0;
  left: 0;
  width: 85vw;
  max-width: 320px;
  height: 100dvh;
  background: var(--surface-1);
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1000;
  padding: 24px;
  padding-top: calc(24px + var(--safe-top));
  overflow-y: auto;
}

.hamburger-menu.open {
  transform: translateX(0);
}

.hamburger-menu__overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.5);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease;
  z-index: 999;
}

.hamburger-menu.open + .hamburger-menu__overlay {
  opacity: 1;
  visibility: visible;
}

.hamburger-menu__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  color: var(--text-primary);
  text-decoration: none;
  font-size: var(--text-base);
  border-radius: 8px;
  transition: background 0.2s;
}

.hamburger-menu__link:active {
  background: var(--surface-2);
}

.hamburger-menu__link .menu-icon {
  width: 24px;
  height: 24px;
}

Правила:

  • 5-8 пунктов максимум
  • Иконка + текст
  • Разделители между секциями
  • Закрывать по тапу на overlay или свайпу
  • Всегда видный close button

1.4 Bottom Sheet Navigation

.bottom-sheet-nav {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--surface-1);
  border-radius: 16px 16px 0 0;
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  z-index: 1000;
  padding: 16px;
  padding-bottom: calc(16px + var(--safe-bottom));
  max-height: 70dvh;
  overflow-y: auto;
}

.bottom-sheet-nav.open {
  transform: translateY(0);
}

.bottom-sheet-nav__handle {
  width: 40px;
  height: 4px;
  background: var(--border-1);
  border-radius: 2px;
  margin: 0 auto 16px;
  cursor: grab;
}

.bottom-sheet-nav__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.bottom-sheet-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px;
  border-radius: 12px;
  text-decoration: none;
  color: var(--text-primary);
}

.bottom-sheet-nav__item:active {
  background: var(--surface-2);
}

.bottom-sheet-nav__item .nav-icon {
  width: 32px;
  height: 32px;
  background: var(--surface-2);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

1.5 Pill Navigation (Chip Scroller)

.pill-nav {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding: 12px 16px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.pill-nav::-webkit-scrollbar {
  display: none;
}

.pill-nav__item {
  padding: 8px 16px;
  border-radius: 24px;
  background: var(--surface-2);
  color: var(--text-secondary);
  white-space: nowrap;
  font-size: var(--text-sm);
  border: 1px solid var(--border-1);
  text-decoration: none;
  transition: all 0.2s;
  min-height: 36px;
  display: flex;
  align-items: center;
}

.pill-nav__item.active {
  background: var(--primary);
  color: white;
  border-color: var(--primary);
}

.pill-nav__item:active {
  transform: scale(0.95);
}

Где использовать: Категории, фильтры, быстрые действия.

2. Navigation Comparison Matrix

Паттерн Кол-во пунктов Видимость Доступность Скорость
Bottom Tab 3-5 ★★★★★ ★★★★★ ★★★★★
Top Nav 2-3 ★★★★☆ ★★★★☆ ★★★★☆
Hamburger 5-8 ★☆☆☆☆ ★★★☆☆ ★★☆☆☆
Bottom Sheet 6-12 ★☆☆☆☆ ★★★☆☆ ★★★☆☆
Pill Nav 5-15 ★★★★☆ ★★★★☆ ★★★★☆

3. Navigation Rules

Golden Rules

  1. 3-5 основных разделов — больше требует hierarchy
  2. Bottom Tab > Hamburger — видимая навигация всегда лучше
  3. Иконка + текст — всегда, никогда только иконки
  4. Текущий раздел всегда выделен — не заставляйте пользователя думать
  5. Навигация не исчезает при скролле — sticky или fixed
  6. Один паттерн на сайт — не смешивайте bottom tab и hamburger

When to Use What

Ситуация Паттерн
3-5 основных разделов Bottom Tab Bar
Много разделов (>5) Bottom Tab + More (bottom sheet)
Product page (1 раздел) Top Nav
Landing page (1 страница) Нет навигации или якоря
Admin panel Side drawer (left)
E-commerce categories Pill Nav

4. Navigation Patterns for Content

4.1 Swipe to Navigate

.swipe-container {
  display: flex;
  overflow-x: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

.swipe-container .page {
  flex: 0 0 100%;
  scroll-snap-align: start;
}

4.2 Breadcrumbs (Mobile)

.breadcrumbs {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  overflow-x: auto;
  scrollbar-width: none;
  white-space: nowrap;
  font-size: var(--text-sm);
}

.breadcrumbs::-webkit-scrollbar {
  display: none;
}

.breadcrumbs__item {
  color: var(--text-secondary);
  text-decoration: none;
}

.breadcrumbs__item.active {
  color: var(--text-primary);
  font-weight: 500;
}

.breadcrumbs__separator {
  color: var(--text-secondary);
  font-size: 12px;
}

4.3 Tab Content Navigation

.tab-content {
  position: relative;
}

.tab-content__header {
  position: sticky;
  top: 56px;
  background: var(--surface-1);
  border-bottom: 1px solid var(--border-1);
  z-index: 50;
}

.tab-content__body {
  padding: 16px;
}

.tab-content__section {
  margin-bottom: 32px;
}

.tab-content__section-title {
  font-size: var(--text-xl);
  font-weight: 700;
  margin-bottom: 16px;
  position: sticky;
  top: 100px;
  background: var(--surface-1);
  padding: 8px 0;
  z-index: 10;
}

5. Navigation Anti-Patterns

❌ Плохо ✅ Хорошо
Hamburger для 3-4 разделов Bottom Tab Bar
Скрытие навигации при скролле Sticky/Fixed навигация
Только иконки без текста Иконка + подпись
6+ пунктов в bottom nav Разделить на разделы
Навигация на top для основного Bottom для основных
Нет выделенного активного состояния Четкий active state