FNA Design System

내비게이션

폰은 하단 탭 + 우측 드로어, 데스크톱은 네이비 사이드바, 화면 안에서는 밑줄 탭과 알약 탭. 네 가지가 각자의 자리를 가지며 서로 대신하지 않습니다.

홈일지경보더보기

정의

종류어디항목 수역할
하단 탭 .fna-bottom-nav폰4~5최상위 영역 전환(홈·센서·CCP·일지·더보기)
드로어 .fna-drawer폰·태블릿, 우측에서제한 없음전체 메뉴·업체/사업장 전환·설정·로그아웃
사이드바 (네이비)데스크톱 웹섹션 6~8, 항목 ≤ 30관제·관리자 웹 전체 메뉴 + 라이브 상태 박스
탭 .fna-tabs화면 안2~6같은 대상의 다른 보기(오늘/이력, 차트/표). 알약형은 필터

언제 쓰고 언제 쓰지 않나

  • 하단 탭은 영역을 바꾼다. 필터·기간 전환에 쓰지 않는다(→ 알약 탭·세그먼트).
  • 드로어는 가끔 쓰는 것을 담는다. 매일 쓰는 기능이 드로어 안에만 있으면 안 된다.
  • 탭은 같은 대상의 다른 보기다. 서로 무관한 화면을 탭으로 묶지 않는다.
  • 사이드바는 데스크톱 전용. 1024 미만에서는 드로어로 바뀐다.

해부도 — 드로어

(주)한결식품평택공장
김현장 · 현장 작업자
  1. 머리: 업체 · 사업장지금 어느 데이터를 보고 있는지. 사업장 전환 버튼
  2. 섹션 제목11px 대문자 자간 .08em, muted
  3. 항목 (≥44, 시니어 64)아이콘 22 + 라벨 15px 700. 활성은 primary-container 배경
  4. 꼬리 요소배지(미처리 건수) 또는 스위치(설정). 하나만
  5. 푸터사용자·역할, 로그아웃(위험 색 글자). safe-area 패딩

변형

하단 탭 — 5개, 활성은 primary 800
홈

우측 상단 메뉴를 눌러 드로어를 열어 보세요.

코드
<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