VISUAL DESIGN SYSTEM

UI 시각 설계 노트

왜 어떤 화면은 단정하고 세련돼 보이고, 어떤 화면은 어수선할까?

8pt 여백 리듬, 게슈탈트 정렬, 타이포그래피 스케일, 60-30-10 컬러 토큰, 다크 표면 깊이감과 AI 클리셰 탈피까지 화면 전체의 품격을 결정하는 시각 설계 원칙

개별 부품 도감 (179종)
UI 시각 설계 아트워크
UI-1레이아웃 · 여백그리드 · 여백 · 시선

화면의 뼈대 — 레이아웃 · 8pt 여백 · 시각적 위계

Grid, Spacing Scale, Gestalt Proximity & Visual Hierarchy
한 줄 요약 · CORE RULE

단정한 화면의 80%는 색상이 아니라 일정한 여백 배수(8pt)와 명확한 3단 시선 위계에서 결정된다.

화면이 어수선해 보이는 주원인은 색상 부족이 아니라 들쭉날쭉한 요소 간격과 과잉 강조에 있다. 색을 입히기 전에 컨테이너 최대 폭, 여백 리듬, 시선 순서부터 고정해 두면 어떤 콘텐츠를 얹어도 골격이 무너지지 않는다.

01 · 핵심 원리 정리

1

페이지 구획과 컨테이너 최대 폭 (Container & 12-Column Grid)

웹 화면은 상단 탐색 바(Header) → 핵심 가치를 보여주는 첫 화면(Hero) → 본문 구획(Section) → 하단 정보(Footer)로 나뉜다. 와이드 모니터에서 글줄이 끝없이 길어지면 시선이 다음 줄을 놓치므로 컨테이너 최대 폭을 고정한다.

전체 레이아웃 최대 폭: 1200~1280px | 긴 본문 적정 줄 길이: 60~75자 (약 65ch / 680px)
  • 12컬럼 그리드는 2·3·4·6으로 모두 나누어떨어져 2단(6:6), 3단(4:4:4), 비대칭(8:4) 배치를 하나의 격자 위에서 정렬해 준다.
  • 첫 화면(Above the Fold, 스크롤 전 영역)에는 핵심 제목 1줄 + 보조 설명 2줄 + 주 행동 버튼 1개 + 대표 시각물만 남겨 시선을 집중시킨다.
2

8pt 여백 스케일과 게슈탈트 근접성 (Proximity & Alignment)

선을 따로 긋지 않아도 가까이 붙어 있는 요소는 같은 묶음으로 인식된다(게슈탈트 근접성). 임의의 숫자(13px, 19px, 27px) 대신 8배수 간격만 쓰면 화면 전체에 일정한 리듬이 생긴다.

내부 여백(카드 안 패딩·간격) < 외부 여백(카드 바깥·섹션 간격)
  • 8pt 기본 스케일: 4px(초밀착) · 8px(아이콘-텍스트) · 12px(소그룹) · 16px(기본 간격) · 24px(카드 패딩) · 32px(중그룹) · 48~64px(큰 구획) · 80~96px(섹션 분리).
  • 정렬 기준선 최소화: 한 화면에서 글자와 박스가 시작되는 세로 정렬선(Alignment Line)은 2~3개 이하로 맞추고, 본문과 폼은 왼쪽 정렬을 기본으로 둔다.
3

시각적 위계 3단 분리와 실눈 테스트 (Squint Test)

눈을 가늘게 뜨고 화면을 흐릿하게 봤을 때 1순위(초점) → 2순위(구조) → 3순위(보조) 덩어리가 명확히 나뉘어야 한다. 모든 글자를 크게 굵게 키우면 오히려 아무것도 눈에 들어오지 않는다.

  • 1순위(초점): 페이지 핵심 제목과 주 행동 버튼(Primary CTA) 단 1개 — 가장 큰 크기와 가장 높은 명도 대비.
  • 2순위(구조): 섹션 소제목, 카드 타이틀, 핵심 요약 지표 — 중간 크기와 굵기(600~700).
  • 3순위(보조): 부연 설명, 날짜, 태그, 캡션 — 12~14px 크기와 한 단계 낮춘 회색(--text-muted)으로 힘을 뺀다.

02 · 기준 수치 · 비교표

표준 반응형 브레이크포인트 & 컬럼 전환 기준표
기기 구간기준 폭 (px)그리드 컬럼좌우 여백 (Padding)레이아웃 전환 규칙
모바일 세로375px ~1열 스택16 ~ 20px다단 가로 배치를 세로 1열로 접고, 메뉴는 햄버거·하단 탭으로 축약
태블릿768px ~2열 그리드24 ~ 32px사이드바는 필요시 접힘(Drawer), 카드 목록 2열 전환
노트북·작은 데스크톱1024px ~3열 / 사이드바+본문32 ~ 40px고정 사이드바 노출 가능, 본문 다단 레이아웃 시작
와이드 데스크톱1280px ~최대 12컬럼중앙 정렬 (margin: auto)화면이 넓어져도 컨테이너 폭(1200px)을 고정해 좌우 여백만 확장

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴구획을 나눌 때마다 진한 가로줄(<hr>)과 테두리 박스를 겹겹이 추가함

선 자체가 시각적 소음이 되어 본문 글자보다 박스 테두리가 먼저 눈에 밟힌다.

권장 기준

불필요한 구분선을 지우고 섹션 간 여백을 56~80px로 넓혀 빈 공간 자체로 구획을 나눈다.

피할 패턴섹션 제목의 위쪽 간격(24px)과 아래 본문과의 간격(24px)이 동일함

제목이 위 섹션 소속인지 아래 본문 소속인지 붕 떠 보여 구조가 한눈에 읽히지 않는다.

권장 기준

위 섹션 끝과의 간격(48px)을 아래 본문과의 간격(12px)보다 최소 3배 이상 넓힌다.

피할 패턴긴 설명 문단까지 전부 가운데 정렬(text-align: center)로 배치함

줄마다 시작 위치가 달라져 시선이 다음 줄 첫 글자를 찾을 때마다 피로해진다.

권장 기준

가운데 정렬은 히어로의 2~3줄 짧은 문구에만 제한하고, 3줄 이상 문단과 목록은 왼쪽 정렬로 통일한다.

04 · UI-1 점검 체크리스트 (브라우저 저장)

UI-2부품 · 상태컴포넌트 선택 · 6대 상태

부품 선택 기준과 상태 체계 — 변형 · 크기 · 6대 상태

Component Anatomy, Variants, Interactive States & Pair Decisions
한 줄 요약 · CORE RULE

완성도 높은 UI는 개별 부품의 화려함이 아니라 상황에 맞는 부품 선택과 6가지 상호작용 상태의 일관성에서 나온다.

개별 부품 179종의 실물 모양은 컴포넌트 도감에서 바로 찾더라도, 언제 모달 대신 시트를 써야 하는지, 왜 한 화면에 진한 버튼이 하나뿐이어야 하는지 기준이 정해져 있어야 화면 전체가 자연스럽게 맞물린다.

01 · 핵심 원리 정리

1

컴포넌트 3축 규격: 변형(Variant) × 크기(Size) × 상태(State)

모든 UI 부품은 정지된 그림 한 장이 아니라 세 가지 축의 조합으로 관리한다. 이 규격이 맞아야 입력창 옆에 버튼을 나란히 놓았을 때 높이가 1px 오차 없이 정렬된다.

높이 규격 통일: Small 32px | Medium(기본) 40px | Large(히어로·모바일 주 행동) 48px
  • 변형(Variant): 강조 정도에 따른 역할 구분 (Primary · Secondary · Outline · Ghost · Destructive).
  • 크기(Size): 한 줄에 나란히 배치되는 입력창(Input), 셀렉트(Select), 버튼(Button)은 동일한 높이 토큰(예: 40px)을 공유한다.
  • 상태(State): 기본(Default) · 호버(Hover) · 키보드 포커스(Focus-visible) · 클릭 순간(Active) · 비활성(Disabled) · 처리 중(Loading) 6가지를 정의한다.
2

버튼 강조 위계와 화면당 Primary 1개 원칙

한 화면이나 카드 안에 진한 배경의 Primary 버튼이 여러 개 있으면 무엇이 핵심 행동인지 흐려진다. 가장 중요한 행동 단 하나만 Primary로 두고 나머지는 보조 등급으로 힘을 뺀다.

  • Primary(주 행동): 화면당 1개 원칙. 채움 배경과 높은 대비로 시선을 유도한다 (예: 저장하기, 결제하기).
  • Secondary / Outline(보조 행동): Primary 옆에 놓이는 대안 행동 (예: 임시저장, 목록으로).
  • Ghost(3순위 보조): 배경과 테두리 없이 호버 시에만 은은한 면이 생기는 도구형 버튼 (예: 취소, 닫기, 북마크).
  • Destructive(파괴적 행동): 계정 삭제·영구 제거처럼 되돌릴 수 없는 위험 동작에만 빨간 계열을 제한적으로 사용한다.
3

아이콘과 시각 기호의 통일 규칙

본문과 버튼 곳곳에 컬러 이모지(🔥🚀✨💡)를 섞어 쓰면 인상이 가벼워지고 전형적인 자동 생성 화면처럼 보인다. 아이콘은 글자를 돕는 보조 기호로만 절제해서 쓴다.

  • 단일 아이콘 패밀리 유지: Lucide, Heroicons, Phosphor 등 한 가지 선형(Outline) 아이콘 세트로 통일한다.
  • 선 굵기(stroke-width: 1.5~1.75px)와 기본 크기(16px / 20px)를 고정해 본문 서체 두께와 균형을 맞춘다.
  • 아이콘 단독 버튼(닫기 ×, 검색, 북마크)에는 스크린 리더용 `aria-label`과 최소 36~44px 클릭 영역을 확보한다.

02 · 기준 수치 · 비교표

자주 헷갈리는 컴포넌트 쌍 선택 기준표
비교 쌍앞 부품을 쓰는 경우뒤 부품을 쓰는 경우판단 기준
Button vs Link(<a>)저장·삭제·모달 열기 등 현재 화면 상태를 바꿀 때다른 URL 페이지로 이동할 때 (새 탭 열기 가능)행동(Action)인가, 이동(Navigation)인가
Checkbox vs Switch저장 버튼을 눌러야 비로소 제출되는 다중 선택 폼누르는 즉시 설정이 켜지고 꺼질 때 (알림 ON/OFF)제출 후 반영인가, 즉시 반영인가
Select vs Radio선택지가 6개 이상이라 공간을 아껴야 할 때선택지가 2~5개이고 한눈에 비교하는 게 편할 때선택지 개수와 즉시 비교 필요성
Dialog(Modal) vs Sheet(Drawer)짧은 확인·집중 입력처럼 배경 흐름을 잠시 멈출 때상세 필터·긴 편집 폼처럼 본문 맥락을 함께 볼 때정보 분량과 배경 참조 여부
Tabs vs Segmented Control하위 섹션의 콘텐츠 구조 자체가 바뀔 때같은 데이터의 보기 모드·단위(월간/연간)만 바꿀 때영역 전환인가, 보기 옵션 전환인가
Tooltip vs Popover마우스 호버 시 짧은 설명 1줄만 보여줄 때클릭 후 내부 버튼·링크·입력창을 조작할 때내부에 클릭 가능한 요소가 있는가

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴페이지 이동을 <button onClick>으로 만들고, 삭제 동작을 <a href='#'>로 만듦

우클릭 새 탭 열기, 키보드 탐색, 브라우저 기본 동작과 보조기기 인식이 모두 어긋난다.

권장 기준

URL이 바뀌는 이동은 Link(<a>), 상태 변경·처리는 <button type='button'>으로 구분한다.

피할 패턴포커스 테두리가 거슬린다는 이유로 outline: none을 일괄 적용함

Tab 키로 이동할 때 현재 커서가 어디에 있는지 완전히 사라진다.

권장 기준

마우스 클릭 시에는 숨기되 키보드 탐색 시에만 선명하게 나타나는 `:focus-visible` 링을 유지한다.

피할 패턴입력창 높이는 38px인데 옆에 붙은 버튼 높이는 44px로 서로 다름

2~4px의 미세한 높이·곡률 불일치가 화면 전체의 조립 품질을 떨어뜨린다.

권장 기준

한 줄에 놓이는 입력 컨트롤과 버튼은 동일한 높이 토큰(40px)과 모서리 곡률(8~10px)로 맞춘다.

04 · UI-2 점검 체크리스트 (브라우저 저장)

UI-3컬러 · 타이포 · 깊이토큰 · 조판 · 곡률

시각 스타일 — 컬러 토큰 · 타이포그래피 · 깊이 · 절제된 모션

Color Tokens, WCAG Contrast, Type Scale, Concentric Radius & Motion
한 줄 요약 · CORE RULE

무광 단색 표면의 정교한 명도 차이와 읽기 편한 행간·자간만 지켜도 그라데이션 없이 훨씬 차분하고 눈이 편안하다.

화려한 그라데이션이나 강한 원색을 여러 개 섞으면 잠깐은 강렬해 보여도 조금만 오래 읽으면 눈이 쉽게 피로해진다. 무채색 표면의 미세한 층위, 검증된 글자 크기 비율, 수학적으로 맞물리는 모서리 곡률로 밀도를 높이는 편이 오래 봐도 질리지 않는다.

01 · 핵심 원리 정리

1

시맨틱 컬러 토큰과 60-30-10 배분

코드에 `#3b82f6` 같은 원시 색상값을 직접 적는 대신 역할 이름(시맨틱 토큰)을 붙여 관리한다. 화면 면적의 60%는 기본 배경, 30%는 카드·보조 표면, 10% 이하만 강조색(Primary)으로 써야 강조점이 명확해진다.

배경 60% (--bg-main) : 보조 표면·카드 30% (--bg-card) : 강조색 10% 이하 (--primary)
  • 순수 검정(#000000)과 순수 회색 대신 살짝 정돈된 슬레이트 중립색(#0f172a, #475569, #f6f7f9)을 쓰면 화면이 차분하게 가라앉는다.
  • 다크 모드는 단순 색상 반전이 아니다: 바닥 배경은 깊은 어두운 톤(#0b0f17)으로 깔고 위로 올라오는 카드·모달일수록 한 단계씩 밝은 표면(#131926 → #1c2436)을 쓴다.
  • 장식용 그라데이션을 배제하고 매트한 단색 면(Solid Surface)과 1px 미세 테두리(Hairline Border)로 경계를 나눈다.
2

타이포그래피 스케일과 한글 조판 디테일

서체는 본문용 산세리프(Pretendard 등) 1종과 코드·수치용 고정폭(JetBrains Mono 등) 1종이면 충분하다. 한글은 영문보다 획이 촘촘하므로 줄 간격을 넉넉히 잡고 어절 중간 끊김을 막아야 읽기 편하다.

제목 행간: 1.2 ~ 1.3 (자간 -0.02em) | 한글 본문 행간: 1.6 ~ 1.7 | 줄바꿈: word-break: keep-all
  • 본문 기본 크기는 15~16px 이상을 유지하고 보조 캡션도 12px 미만으로 줄이지 않는다.
  • `word-break: keep-all`을 적용해 한글 단어가 어절 중간에서 끊기는 현상을 막는다.
  • 가격·퍼센트·카운터 숫자가 바뀌는 영역에는 `font-variant-numeric: tabular-nums`로 숫자 폭 흔들림을 막는다.
3

중첩 모서리 곡률 공식과 절제된 모션 (Radius, Z-Index & Motion)

바깥 카드와 안쪽 버튼의 모서리 둥글기를 똑같이 `16px`로 주면 모서리 두께가 어색해 보인다. 동심원처럼 자연스럽게 맞물리려면 바깥 곡률에서 패딩만큼 뺀 값을 안쪽 곡률로 쓴다.

바깥 모서리 곡률 (Outer R) = 안쪽 모서리 곡률 (Inner R) + 사이 여백 (Padding)
  • 예시: 카드 안쪽 요소 곡률이 `10px`이고 패딩이 `10px`이면 카드 바깥 곡률은 `20px`일 때 자연스럽다.
  • 모션 타이밍: 호버 피드백은 `120~160ms`, 드로어·모달 등장은 `200~260ms ease-out`, 퇴장은 `150ms ease-in`으로 짧게 끝낸다.
  • 레이아웃 재계산을 부르는 `top/left/height` 대신 `transform`과 `opacity`만 애니메이션한다.

02 · 기준 수치 · 비교표

6단계 타이포그래피 스케일 & WCAG 명도 대비 기준표
역할 단계크기 (px)굵기 (Weight)행간 (Line-height)최소 명도 대비 (WCAG AA)
Hero Display (대표 표제)36 ~ 48px700 ~ 8001.18 ~ 1.253.0 : 1 이상 (큰 글자 기준)
Page Title (H1)26 ~ 32px700 ~ 8001.25 ~ 1.33.0 : 1 이상
Section Heading (H2)20 ~ 22px7001.354.5 : 1 권장
Card / Sub Title (H3)16 ~ 18px600 ~ 7001.44.5 : 1 이상
Body (기본 본문)15 ~ 16px400 ~ 5001.6 ~ 1.74.5 : 1 이상 (필수)
Caption / Meta (보조 정보)12 ~ 13.5px500 ~ 6001.45 ~ 1.54.5 : 1 이상 (연한 회색 주의)
레이어 충돌 방지를 위한 z-index 6단계 기준표
레이어 이름권장 값포함 요소
base0 ~ 1일반 본문, 카드 기본 면
sticky20 ~ 50상단 고정 헤더, 좌측 인덱스 바
dropdown100셀렉트 메뉴, 팝오버, 자동완성 목록
overlay / modal200모달 뒷배경(Backdrop) 및 다이얼로그·시트
toast300화면 하단·상단 일시 알림 토스트
tooltip400최상위 도움말 툴팁 (`z-index: 99999` 금지)

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴흰 배경(#ffffff) 위에 너무 연한 회색(#cbd5e1)으로 보조 설명을 적음

명도 대비가 2:1 이하로 떨어져 밝은 모니터에서 글자가 흐릿하게 날아간다.

권장 기준

보조 텍스트라도 최소 `#475569` ~ `#64748b` 수준을 유지해 4.5:1 가독성을 확보한다.

피할 패턴카드를 띄우려고 진하고 넓은 검은 그림자(rgba(0,0,0,0.4))를 넣음

화면이 탁하고 무거워 보이며 카드 주변 여백까지 지저분해진다.

권장 기준

그림자 투명도는 `0.04 ~ 0.08`로 옅게 깔고 `1px` 미세 테두리로 윤곽을 잡는다.

피할 패턴모달이나 메뉴가 열릴 때 0.8초짜리 느린 바운스 효과를 넣음

반복해서 쓰는 도구가 둔하고 느리게 반응하는 인상을 준다.

권장 기준

UI 전환은 0.15~0.25초 이내의 담백한 감속 곡선으로 즉시 반응하게 둔다.

04 · UI-3 점검 체크리스트 (브라우저 저장)

UI-4시스템 · 일관성3층 토큰 · 클리셰 제거

디자인 시스템 일관성과 AI 클리셰 덜어내기

3-Tier Design Tokens, Reference Systems & Anti-Cliche Rules
한 줄 요약 · CORE RULE

페이지가 여러 장으로 늘어나도 한 서비스처럼 보이는 통일감은 3층 디자인 토큰과 불필요한 장식 제거에서 나온다.

단일 화면 하나를 꾸미는 것과 여러 페이지의 톤을 일관되게 유지하는 것은 다른 문제다. 특히 AI에게 제약 없이 화면 생성을 맡기면 보라색-청록색 그라데이션, 과잉 이모지, 똑같은 3열 카드가 반복되는 양산형 스타일이 나오기 쉬우므로 금지 기준을 명확히 둔다.

01 · 핵심 원리 정리

1

디자인 시스템 3층 구조: 토큰 → 컴포넌트 → 패턴

가장 작은 원자 단위부터 규칙을 쌓아 두면 맨 아래 토큰 값 하나만 바꿨을 때 모든 부품과 페이지가 한꺼번에 갱신된다.

1층 디자인 토큰(색·간격·폰트 변수) → 2층 컴포넌트(버튼·입력창·카드) → 3층 패턴(검색 바·폼·빈 화면)
  • 원시 토큰(Primitive): 색상과 수치 자체 (`--slate-900: #0f172a`, `--space-4: 16px`).
  • 시맨틱 토큰(Semantic): 화면에서의 역할 (`--text-main: var(--slate-900)`, `--border-subtle`).
  • 컴포넌트 토큰(Component): 특정 부품 전용 규격 (`--btn-height-md: 40px`, `--card-radius: 16px`).
2

덜어내야 할 양산형 AI 화면 클리셰 5가지

AI 모델은 인터넷의 흔한 홍보용 랜딩페이지 스타일을 기본값처럼 꺼내 쓰려는 경향이 있다. 무엇을 더할지보다 무엇을 금지할지 못 박아 두는 것이 훨씬 효과적이다.

  • 무지개 텍스트 그라데이션 → 단색 고대비 타이포(`#0f172a`)와 굵기 대비로 대체.
  • 배경 네온 빛 번짐(Glow) 장식 → 매트한 단색 배경(`#f6f7f9`)과 정돈된 여백으로 대체.
  • 제목·버튼 옆 컬러 이모지 남발(🚀✨💡🔥) → 단일 선형 SVG 아이콘 세트로 통일하거나 제거.
  • 박스 안의 박스 안의 박스(삼중 테두리) → 겹치는 외곽선을 걷어내고 여백 비례로만 구분.
  • 획일적인 1×1 3열 카드 반복 → 중요도에 따른 비대칭 그리드나 깔끔한 표(Table)로 전환.
3

도메인별 참고하기 좋은 공개 디자인 시스템

'세련되게' 같은 추상적 표현 대신 검증된 디자인 시스템의 특성을 기준점으로 삼으면 결과물이 흔들리지 않는다.

  • 문서·아카이브·노트 계열: Notion, Stripe Docs (넓은 여백, 차분한 무채색, 명확한 타이포 위계).
  • 생산성 도구·이슈 트래커 계열: Linear, Raycast, Vercel Geist (1px 미세 보더, 고밀도 정렬, 단축키 중심).
  • 모바일 금융·생활 서비스 계열: Toss Design System(TDS), Apple HIG (넉넉한 터치 타겟, 한 화면 1과업).

02 · 기준 수치 · 비교표

주요 공개 디자인 시스템 특성 비교표
디자인 시스템핵심 미학 키워드주력 도메인참고할 설계 포인트
shadcn/ui + Radix절제된 무채색 · 1px 테두리 · 실용성웹 앱 · SaaS 대시보드과한 장식 없이 토큰 변수만으로 바로 커스터마이징 가능한 부품 구조
Apple HIG명료함(Clarity) · 깊이(Depth)iOS / macOS · 소비자 앱터치 인체공학(44pt), 자연스러운 계층 전환과 가독성 우선
Material Design 3적응형 컬러 토큰 · 상태 레이어안드로이드 · 크로스플랫폼호버·프레스 상태를 투명도 오버레이 수치로 일관되게 규격화
IBM Carbon / Shopify Polaris데이터 밀도 · 표·폼 표준화관리자 도구 · 커머스 백오피스복잡한 테이블·필터·입력 폼에서도 흔들리지 않는 격자 규칙

03 · 자주 꼬이는 패턴 vs 권장 기준

피할 패턴페이지마다 카드 모서리가 어떤 곳은 8px, 어떤 곳은 24px로 다름

개별 화면을 따로 만들면서 공통 CSS 토큰 변수를 참조하지 않았기 때문이다.

권장 기준

`--radius-sm (8px)`, `--radius-md (12px)`, `--radius-lg (16px)` 3단계 변수로 고정해 전 페이지가 공유한다.

피할 패턴허전해 보인다는 이유로 의미 없는 배지, 배경 무늬, 장식 띠를 계속 추가함

장식 요소가 늘어날수록 정작 중요한 본문 정보의 집중도와 신뢰도가 떨어진다.

권장 기준

지웠을 때 정보 전달에 지장이 없는 장식은 과감히 덜어낸다.

04 · UI-4 점검 체크리스트 (브라우저 저장)

UI 시각 설계 활용 예제 & 프롬프트 사전

바로 복사해 쓸 수 있는 지시문 카드와 조합 도구는 활용 예제 탭에 모아 두었습니다.