KRDS MegaMenu 완전정복 — 공공 웹사이트 네비게이션 만들기

HANUI·
KRDSMegaMenuReactHANUI웹접근성네비게이션공공SI

공공 웹사이트 헤더에 있는 그 복잡한 메뉴, 직접 만들려면 머리 아프죠?

웹접근성 키보드 네비게이션, 포커스 관리, ARIA 속성... 하나하나 다 신경 써야 해요.

KRDS 네비게이션 종류

공공 웹사이트에서 쓰는 네비게이션 패턴:

컴포넌트용도복잡도
Header기본 상단바⭐
HeaderWithNavigation일반 메뉴⭐⭐
HeaderWithMegaMenu대형 메뉴⭐⭐⭐
HeaderWithPanelMenu사이드 패널⭐⭐⭐

대부분 HeaderWithMegaMenu를 많이 써요.

기본 Header

로고만 있는 심플한 헤더예요.

HeaderWithNavigation (일반 메뉴)

depth 1개만 있을 때 쓰면 돼요.

HeaderWithMegaMenu (핵심)

Depth 2개 이상 필요할 때:

이게 공공 웹사이트에서 제일 많이 보는 형태예요.

메뉴 구조 설계 팁

1. Depth는 최대 3까지

4depth 넘어가면 사용자가 헷갈려요.

2. Category는 묶음 단위

연관된 메뉴끼리 카테고리로 묶으면 보기 좋아요.

웹접근성 자동 처리

HANUI MegaMenu가 자동으로 해주는 것들:

키보드 네비게이션

  • Tab: 다음 메뉴로 이동
  • Shift + Tab: 이전 메뉴로 이동
  • Enter / Space: 서브메뉴 펼치기
  • Esc: 서브메뉴 닫기
  • Arrow: 서브메뉴 내 이동

직접 구현하면 진짜 복잡한데, 다 자동이에요.

ARIA 속성

웹접근성 심사 통과에 필수예요.

포커스 관리

  • 메뉴 열면 첫 번째 아이템에 포커스
  • Esc 누르면 원래 버튼으로 포커스 복귀
  • 서브메뉴 밖 클릭하면 자동 닫힘

모바일 대응

반응형 자동 처리돼요. 모바일에선 햄버거 메뉴로 바뀌어요.

실제 Next.js 프로젝트 예시

정리

  1. 단순 메뉴 → HeaderWithNavigation
  2. 복잡한 메뉴 → HeaderWithMegaMenu
  3. 사이드 메뉴 → HeaderWithPanelMenu

웹접근성 자동 처리되니까 데이터 구조만 잘 짜면 돼요.

더 자세한 예시는 hanui.io/components/header에서 확인하세요.


관련 글:

관련 프로젝트:

  • HANUI — KRDS 기반 React 디자인 시스템
  • claude-settings — Claude Code 슬래시 커맨드 모음

HANUI

KRDS 기반 React 컴포넌트 라이브러리. 공공 웹 개발을 더 쉽게.