Skip to content

디자인 시스템 ​

같은 뜻은 어디서나 같은 모양으로 보여야 합니다. 이 문서는 그 규격입니다.

아래 화면은 서비스에서 지금 돌고 있는 갤러리를 그대로 끼워 넣은 것입니다. 스크린샷이 아니라 실제 코드가 그리는 화면이라, 규격을 고치면 이 문서도 함께 바뀝니다. 값이 헷갈리면 문서의 표보다 이 화면이 먼저입니다.

새 탭에서 크게 보기 ↗

이 주소는 로그인이 필요 없습니다

견본만 그리는 화면이라 데이터를 한 줄도 조회하지 않습니다(사람 이름도 견본용 가짜입니다). 검색엔진에는 노출되지 않습니다. 통합관리 안에서는 /dashboard/design-system 으로 같은 화면을 봅니다.

규격을 두 벌 만들지 않는다

색·크기 표는 한 곳에만 둡니다. 예전에 역할 색 표가 조직관리 안에만 있어서, 다른 화면이 역할 색을 쓰려면 표를 베껴야 했습니다. 베낀 표는 반드시 어긋납니다.

1. 색 ​

기본 ​

뜻값쓰는 곳
Primary#004ACC주 동작 버튼, 선택 상태, 표의 그룹 머리
페이지 배경#F5F6FA본문 바탕
표 머리 면#FBFCFD페이지 배경보다 밝아야 한다
본문 글자#282828
보조 글자#6B7280
흐린 글자#9AA1AD지워진 계정, 라벨
비활성 글자#C0C6CF값이 0인 칸

상태 ​

뜻글자배경
성공·정상·완료#1F9D57#E7F6EE
주의·대기·미완료#D9A407#FDF6E3
위험·긴급·폐기#D8413B#FDECEA
이벤트#6C4CF1#F3EEFF

역할 ​

역할 색은 상태색을 빌려 쓰되 뜻이 다릅니다 — 여기서 색은 「좋다/나쁘다」가 아니라 「누구냐」입니다.

역할색
관리자빨강
본사 담당자파랑
점주주황
매장 매니저초록

예전에는 본사/지점 두 색만 써서 「관리자」와 「본사 담당자」가 같은 파랑, 「점주」와 「매장 매니저」가 같은 회색이었습니다. 역할 열이 아무것도 알려주지 못했습니다.

2. 글자 ​

rem 을 쓰지 않는다

html { font-size: 14px } 이라 Tailwind 의 rem 기반 클래스가 전부 어긋납니다. p-3 = 10.5px, w-5 = 17.5px, text-sm = 12.25px. 크기는 px 로 적습니다 — p-[12px], w-[20px].

이름크기쓰는 곳
KPI 값26 / 800카드의 숫자
제목15.5~20 / 700화면·팝업 제목
본문13.5표 셀, 카드 본문
캡션12.5보조 설명
라벨11.5표 머리, 배지

3. 컴포넌트 ​

배지 ​

radius 6 · 11.5/700 · 옅은 배경 + 진한 글자. 상태는 색 있는 글자가 기본이고, 배경 칩은 개수를 세는 정보에만 씁니다.

체크박스 ​

18px · radius 6 · 테두리 1.5 · Primary — 하나뿐입니다. 예전에 22곳이 열한 가지 모양이었습니다(10.5px 짜리를 모바일에서 손가락으로 눌러야 했습니다).

상자는 브라우저 기본 모양이 아니라 직접 그립니다. accent-color 만 입히면 사파리는 둥근 사각, 크롬은 각진 사각이 되고 작아질수록 체크 표시가 뭉갭니다. 같은 규격이 화면마다 다르게 보이면 규격이 아닙니다. 선택 · 일부 선택 · 잠김 · 지우기(빨강) 네 상태가 한 벌입니다.

행 끝 「관리」 버튼 ​

32px 정사각 · radius 9 · 1px 테두리의 흰 상자 · 아이콘 15. 지우기만 테두리와 아이콘을 빨강으로 바꿉니다 — 되돌릴 수 없는 동작을 미리 알립니다.

색을 아껴 쓴다

처음에는 비밀번호 초기화에 주황, 매장 켜기/끄기에 초록을 줬더니 133행이 노랑·빨강으로 뒤덮여 정작 위험한 버튼이 묻혔습니다. 색은 되돌릴 수 없는 동작에만.

로딩 ​

반오토 심볼이 그대로 돕니다. 화면 폭을 가로지르는 막대는 쓰지 않습니다 — 어느 제품에서나 보는 모양이라 우리 화면이라는 느낌이 없고, 앱을 켤 때 뜨는 스플래시와도 이어지지 않습니다.

지점 고르기 ​

지점이 128개입니다. 지점 셀렉트는 무조건 검색이 되는 형태로 씁니다. 지역별로 묶이고, ↑↓·Enter·Esc 로도 고를 수 있습니다.

지워진 계정의 이름 ​

계정을 지워도 그 사람이 남긴 발주·게시글·근태는 남습니다. 그 자리는

  • 회색 + 점선 밑줄로 「삭제된 계정」
  • 이름·삭제일은 마우스를 올렸을 때만(툴팁)

이름을 목록에 그대로 적으면 지워진 사람이 지금 일하는 사람처럼 읽혀 「이 사람에게 물어보면 되겠다」로 이어집니다.

4. 표 ​

항목규격
머리회색 면 + 11.5/600 흐린 글자, 두꺼운 밑줄 없음
칸 사이세로 구분선 (첫 칸 뒤부터)
행 높이48~52
그룹 머리Primary 면 + 흰 글자 (지역·날짜 묶음)
카드1px 테두리 + radius 16 + 옅은 그림자

표는 PC 것이다 ​

좁은 화면에서는 카드로 쌓습니다. 조직관리 네 탭이 모바일에서 표 그대로 나와 화면 밖으로 밀린 「관리」 버튼을 누를 수 없던 적이 있습니다(지점 탭은 표 너비가 화면의 두 배였습니다).

조밀 규격 (예외) ​

재고관리처럼 열 열두 개를 나란히 놓고 비교하는 표는 카드로 접으면 비교가 안 됩니다. 그런 표만 좁은 화면에서 한 단 조밀하게 그립니다.

PC좁은 화면
셀 여백12.25px8px
셀 글자13.5px12.5px
체크박스18px16px
행 끝 버튼38.5px32px

줄이는 것은 표 안뿐입니다. 카드·폼의 같은 체크박스와 버튼은 손가락 규격을 지킵니다 — 표는 훑는 곳이고 카드는 누르는 곳이라 필요한 크기가 다릅니다.

값이 체크뿐인 표 (.data-table--compact) ​

환경설정의 「지점 × 항목」 표들이 이것을 씁니다 — 리포트 설정 · 고객센터 · 계약 기능 관리 · 출퇴근 운영 시간 · 검증 방식 · 패널티 설정. 지점이 128줄인데 한 줄에 담기는 것은 체크 몇 개뿐입니다.

규격값이유
표 폭내용 폭(화면을 채우지 않음)늘리면 체크 사이가 벌어져 어느 열인지 눈으로 못 따라간다
행 높이33~35px (여백 7·12)읽을 글이 없는 표에서 50px 은 낭비. 128줄이면 화면 두 개 반
스크롤표 안에서만, 520px머리줄·첫 칸(지점 이름)을 붙잡아 내려가도 잃지 않는다
정렬열 이름 클릭 = 켜짐 먼저 → 꺼짐 먼저 → 가나다「어디가 꺼져 있나」를 128줄 훑어 찾을 일이 아니다

열 이름 아래에는 켜진 지점 수(51/128)를 함께 적습니다. 부품은 components/settings/StoreCheckMatrix.tsx 하나입니다 — 지점별 켬/끔 화면을 새로 만들 때 표를 다시 그리지 말고 이것을 씁니다. 체크가 아닌 값(시각 선택 · OCR/GPS/WIFI)을 담는 표는 겉틀만 같이 씁니다(SettingsTable.tsx).

관리 칸의 빈 자리는 비워 두되 자리는 차지한다

조건이 맞는 줄에만 버튼을 그리면(설정이 있는 줄에만 지우기) 그 옆의 저장 버튼이 줄마다 좌우로 흔들려 두 열이 어긋나 보입니다. 없는 버튼은 지우지 말고 invisible 로 자리만 남깁니다.

5. 레이아웃 ​

항목값
본문 여백12px (모바일) / 좌우 24 · 상하 20 (PC)
화면 동작 버튼PC 는 상단 바 오른쪽, 좁은 화면은 바 아래 별도 줄(배경·구분선으로 갈라 놓는다)
검색칩 줄 오른쪽 끝, 다섯 화면 공통
KPI 카드PC 4열 / 모바일 가로 스크롤 한 줄
환경설정 카드1090px 고정 — 탭을 옮겨도 카드의 오른쪽 끝이 움직이지 않는다
카드 안 글줄680px 에서 끊는다 — 설명 한 줄이 1300px 이면 다음 줄 첫 글자를 못 찾는다

KPI 가 잘려 보이는 것은 의도한 것

모바일에서 2×2로 쌓으면 KPI 가 첫 화면을 통째로 차지해, 정작 봐야 할 목록이 밀려납니다. 가로로 흘리고 잘린 카드를 「더 있다」는 신호로 씁니다.

6. 되풀이하지 않기 위한 메모 ​

  • 상태는 색 있는 글자로. 배경 칩은 개수 세는 값에만
  • 0 은 힘을 뺀다 — 전체 지점이 기본이라 0인 행이 많고, 전부 진하면 실제 값이 묻힌다
  • 아이콘만 있는 버튼은 만들지 않는다 — 누를 수 있는 것인지 모른다. 글자를 붙이거나 툴팁을 단다
  • 숫자를 조용히 맞추지 않는다 — 이상하면 「확인이 필요하다」고 옆에 붙이고 이유는 툴팁으로

Released under the MIT License.