내비게이션
폰은 하단 탭 + 우측 드로어, 데스크톱은 네이비 사이드바, 화면 안에서는 밑줄 탭과 알약 탭. 네 가지가 각자의 자리를 가지며 서로 대신하지 않습니다.
홈일지경보더보기
정의
| 종류 | 어디 | 항목 수 | 역할 |
|---|---|---|---|
하단 탭 .fna-bottom-nav | 폰 | 4~5 | 최상위 영역 전환(홈·센서·CCP·일지·더보기) |
드로어 .fna-drawer | 폰·태블릿, 우측에서 | 제한 없음 | 전체 메뉴·업체/사업장 전환·설정·로그아웃 |
| 사이드바 (네이비) | 데스크톱 웹 | 섹션 6~8, 항목 ≤ 30 | 관제·관리자 웹 전체 메뉴 + 라이브 상태 박스 |
탭 .fna-tabs | 화면 안 | 2~6 | 같은 대상의 다른 보기(오늘/이력, 차트/표). 알약형은 필터 |
언제 쓰고 언제 쓰지 않나
- 하단 탭은 영역을 바꾼다. 필터·기간 전환에 쓰지 않는다(→ 알약 탭·세그먼트).
- 드로어는 가끔 쓰는 것을 담는다. 매일 쓰는 기능이 드로어 안에만 있으면 안 된다.
- 탭은 같은 대상의 다른 보기다. 서로 무관한 화면을 탭으로 묶지 않는다.
- 사이드바는 데스크톱 전용. 1024 미만에서는 드로어로 바뀐다.
해부도 — 드로어
- 머리: 업체 · 사업장지금 어느 데이터를 보고 있는지. 사업장 전환 버튼
- 섹션 제목11px 대문자 자간 .08em, muted
- 항목 (≥44, 시니어 64)아이콘 22 + 라벨 15px 700. 활성은 primary-container 배경
- 꼬리 요소배지(미처리 건수) 또는 스위치(설정). 하나만
- 푸터사용자·역할, 로그아웃(위험 색 글자). safe-area 패딩
변형
우측 상단 메뉴를 눌러 드로어를 열어 보세요.
코드
<div class="fna-appbar"><span class="fna-appbar__left"></span><span class="fna-appbar__title">홈</span><button class="fna-appbar__right" aria-label="메뉴" data-toggle="#nav-drawer"><svg viewBox="0 0 24 24"><path d="M4 7h16M4 12h16M4 17h16"/></svg></button></div>
<div class="phone__body"><p class="fna-muted">우측 상단 메뉴를 눌러 드로어를 열어 보세요.</p></div>
<nav class="fna-bottom-nav" style="position:relative"><a class="is-active" href="#"><svg class="icon-row" viewBox="0 0 24 24"><path d="M3 11 12 4l9 7v9H3z"/></svg>홈</a><a href="#"><svg class="icon-row" viewBox="0 0 24 24"><path d="M12 3v11"/><circle cx="12" cy="17" r="3"/></svg>센서</a><a href="#"><svg class="icon-row" viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><path d="m8 12 3 3 5-6"/></svg>CCP</a><a href="#"><svg class="icon-row" viewBox="0 0 24 24"><path d="M6 3h9l5 5v13H6z"/></svg>일지</a><a href="#"><svg class="icon-row" viewBox="0 0 24 24"><circle cx="5" cy="12" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="19" cy="12" r="1.5"/></svg>더보기</a></nav>
<div class="fna-drawer" id="nav-drawer" hidden><div class="fna-drawer__panel"><div class="fna-drawer__head"><span class="fna-drawer__tenant">(주)한결식품</span><span class="fna-drawer__facility">평택공장</span></div><div class="fna-drawer__list"><a class="fna-drawer__item is-active" href="#">일지</a><a class="fna-drawer__item" href="#">결재</a><a class="fna-drawer__item" href="#">경보 센터</a><a class="fna-drawer__item" href="#">서명 등록</a></div><div class="fna-drawer__foot"><button class="fna-btn fna-btn--outline fna-btn--block" data-toggle="#nav-drawer">닫기</button></div></div></div>코드
<div class="fna-tabs" role="tablist"><button class="fna-tab" role="tab" aria-selected="true">오늘</button><button class="fna-tab" role="tab" aria-selected="false">이번 주</button><button class="fna-tab" role="tab" aria-selected="false">이력 <span class="fna-tab__count">128</span></button></div>코드
<div class="fna-tabs fna-tabs--pill" role="tablist"><button class="fna-tab is-active" role="tab">오늘</button><button class="fna-tab" role="tab">7일</button><button class="fna-tab" role="tab">30일</button><button class="fna-tab" role="tab">90일</button><button class="fna-tab" role="tab">직접 입력</button></div>FNA 관제
모니터링
관제 현황
센서
경보 2
기록
CCP 일지
결재
라이브
경보 2 · 주의 1 · 정상 41
상태
치수
| 항목 | 값 | 토큰 |
|---|---|---|
| 하단 탭 높이 | 56 + safe-area | 패딩 6/4, 항목 min-width 56 |
| 하단 탭 라벨 | 11 / 활성 800 | --fna-font-size-xs |
| 드로어 폭 | min(300, 86vw) | --fna-size-drawer-width |
| 드로어 항목 | ≥44 (시니어 64) · 15/700 | --fna-size-touch-min |
| 사이드바 폭 | 244 / 접힘 66 | --fna-size-sidebar-width/-rail |
| 탭 패딩 · 밑줄 | .7em 1em · 2px | 활성 밑줄 primary |
| 알약 탭 | .4em 1em · pill | 활성 primary 배경 |
Do · Don't
Do 하단 탭 4~5개, 라벨 항상
Don't 탭 7개 · 아이콘만라벨 없는 아이콘은 심사관·시니어가 못 읽는다
Do 드로어는 우측에서, 닫기는 오버레이 탭·ESC·닫기 버튼
Don't 좌측 드로어 · 화면 전체 덮기
접근성
- 하단 탭·사이드바는
<nav aria-label="주 메뉴">, 현재 항목aria-current="page". - 드로어는
role="dialog" aria-modal="true", 열릴 때 닫기 버튼으로 포커스 이동, 닫히면 햄버거로 복귀, ESC 로 닫힘, 포커스 트랩. - 탭은
role="tablist"/"tab"/"tabpanel",aria-selected, 좌우 화살표 이동. - 활성 표시는 색 + 굵기 + 밑줄(또는 배경) — 색만이 아니다.
문구
하단 탭 라벨은 2~3자 명사: 홈 · 센서 · CCP · 일지 · 더보기. 드로어 섹션은 기록 · 관리 · 설정. "마이페이지"·"메뉴" 같은 빈 말 대신 내용을 쓴다. 탭은 "오늘 / 이력", "차트 / 표"처럼 대등한 짝.
코드
<nav class="fna-bottom-nav" aria-label="주 메뉴">
<a href="/home" class="is-active" aria-current="page"><svg …/>홈</a> …
</nav>
<div class="fna-drawer" id="drawer" hidden>
<div class="fna-drawer__panel" role="dialog" aria-modal="true" aria-label="전체 메뉴">
<div class="fna-drawer__head"><span class="fna-drawer__tenant">(주)한결식품</span>…</div>
<div class="fna-drawer__list"><div class="fna-drawer__section">기록</div><a class="fna-drawer__item is-active">일지</a>…</div>
<div class="fna-drawer__foot">…</div>
</div>
</div>
<div class="fna-tabs" role="tablist"><button class="fna-tab" role="tab" aria-selected="true">오늘</button>…</div>
<div class="fna-tabs fna-tabs--pill">…</div>
안정마지막 갱신 담당 디자인시스템 TF · jjo831@farmzone.kr소스 components.css .fna-bottom-nav · .fna-drawer · .fna-tabs · docs/index.html 사이드바 크롬Components · FNA 디자인 시스템 v1.0