색상, 디자인의 가장 중요한 요소
색상은 사용자의 감정을 조절하고, 브랜드를 전달하고, 사용성을 결정하는 가장 강력한 도구입니다. 하지만 많은 개발자와 디자이너가 색상 시스템을 정확히 이해하지 못합니다.
이 가이드에서는 웹에서 사용되는 모든 색상 형식과, 아름다운 색 조합을 만드는 방법을 배웁니다.
1부: 색상 형식
1. HEX (16진수) - 가장 일반적
#RRGGBB 형식 (각 자리는 0-9, A-F)
#000000 → 검정색
#FFFFFF → 흰색
#FF0000 → 빨강색
#00FF00 → 초록색
#0000FF → 파랑색
#FF6B6B → 밝은 빨강단축형
#RGB 형식 (각 자리가 2배)
#ABC → #AABBCC
#FFF → #FFFFFF
#123 → #1122332. RGB (빨강, 초록, 파랑)
rgb(red, green, blue)
각 값: 0~255
rgb(0, 0, 0) → 검정색
rgb(255, 255, 255) → 흰색
rgb(255, 0, 0) → 빨강색
rgb(255, 107, 107) → 밝은 빨강3. RGBA (RGB + 투명도)
rgba(red, green, blue, alpha)
Alpha 값: 0(투명) ~ 1(불투명)
rgba(255, 0, 0, 0.5) → 50% 투명한 빨강
rgba(0, 0, 0, 0.8) → 80% 불투명한 검정4. HSL (색상, 포화도, 밝기)
hsl(hue, saturation, lightness)
Hue: 0~360도 (색상 각도)
Saturation: 0~100% (색상 진하기)
Lightness: 0~100% (밝기)
hsl(0, 100%, 50%) → 빨강
hsl(120, 100%, 50%) → 초록
hsl(240, 100%, 50%) → 파랑
hsl(0, 0%, 50%) → 회색 (포화도 0은 회색)5. HSLA (HSL + 투명도)
hsla(hue, saturation, lightness, alpha)
hsla(0, 100%, 50%, 0.5) → 50% 투명한 빨강6. 색상 이름 (Named Colors)
red, blue, green, black, white
gray, silver, navy, teal, olive
tomato, salmon, gold, khaki, plum
orangered, darkviolet, lightblue
CSS에서 직접 사용 가능:
color: tomato;2부: 색상 형식 변환
HEX ↔ RGB
HEX: #FF6B6B → RGB: (255, 107, 107)
변환 방법:
FF (빨강) = 255
6B (초록) = 107 (16진수)
6B (파랑) = 107
역변환:
255 (10진수) = FF (16진수)
107 = 6BRGB ↔ HSL
RGB(255, 0, 0) → HSL(0, 100%, 50%)
변환 과정:
1. R, G, B를 0~1 범위로 정규화
2. Max, Min 값 계산
3. Hue, Saturation, Lightness 도출3부: 웹 안전 색상
웹 안전 색상 (Web Safe Colors)
과거 256색 디스플레이에서 안정적으로 표시되던 216개 색상:
#000000, #000033, #000066, ... #FFFFFF
패턴: 00, 33, 66, 99, CC, FF 조합
총 6 × 6 × 6 = 216가지현대: 모든 디바이스가 true color를 지원하므로 더 이상 필요하지 않음
4부: 색상 이론
1. 보색 (Complementary)
색상 환에서 정반대에 있는 색
빨강(0°) ↔ 시안(180°)
초록(120°) ↔ 자주(300°)
사용: 대비, 강조 효과2. 유사색 (Analogous)
색상 환에서 인접한 색들
빨강 + 주황 + 노랑
파랑 + 청록 + 초록
사용: 조화롭고 부드러운 효과3. 삼색 조합 (Triadic)
색상 환에서 120° 간격의 색
빨강(0°) + 초록(120°) + 파랑(240°)
주황(30°) + 자주(150°) + 청록(270°)
사용: 생동감 있고 균형잡힌 조합4. 명도와 채도
높은 명도 + 높은 채도: 생생한 색 → 주의, 강조
낮은 명도 + 높은 채도: 진한 색 → 고급스러움
낮은 명도 + 낮은 채도: 어두운 회색 → 배경5부: 아름다운 색 조합 만들기
1. 단색 (Monochrome)
같은 색의 다양한 명도
원색: HSL(0, 100%, 50%) - 빨강
밝은 버전: HSL(0, 100%, 80%) - 연한 빨강
어두운 버전: HSL(0, 100%, 30%) - 진한 빨강
사용: 자연스럽고 세련된2. 명도 기반 조합
주요색 (Primary): #FF6B6B
밝은색 (Light): #FFE0E0
어두운색 (Dark): #CC5555
중간색 (Medium): #FF9999
계층을 명확히 함3. 따뜻한 색상 팔레트
주요색: #FF6B6B (빨강)
보조색: #FFA500 (주황)
강조색: #FFD700 (금색)
배경색: #FFF8DC (베이지)
느낌: 따뜻하고 에너지 넘침4. 차가운 색상 팔레트
주요색: #4ECDC4 (청록)
보조색: #44A08D (초록)
강조색: #1B4965 (진한 파랑)
배경색: #F7F9FC (밝은 회색)
느낌: 차갑고 신뢰감 있음6부: 색상 접근성
1. 색약자 고려
❌ 빨강과 초록만으로 구분
(색맹자는 구분 불가)
✅ 빨강 + 초록 + 패턴이나 텍스트로 추가 구분2. 명도 대비 (Contrast Ratio)
WCAG 기준:
AA 등급 (권장): 4.5:1 (텍스트)
AAA 등급 (우수): 7:1 (텍스트)
예:
검정(#000) 텍스트 + 흰색(#FFF) 배경: 21:1 ✓
회색(#666) 텍스트 + 흰색(#FFF) 배경: 4.1:1 ? (작은 텍스트는 OK)3. 색상만으로 정보 전달 금지
❌ 빨간 에러 메시지만 표시
✅ 빨간색 + "❌ 에러: 이메일을 입력하세요"7부: CSS에서 색상 사용
배경색
background-color: #FF6B6B;
background-color: rgb(255, 107, 107);
background-color: hsl(0, 100%, 71%);
background-color: tomato;글자색
color: #333;
color: rgb(51, 51, 51);
color: hsl(0, 0%, 20%);투명도
background-color: rgba(255, 107, 107, 0.5);
color: hsla(0, 100%, 71%, 0.8);Gradient
background: linear-gradient(to right, #FF6B6B, #4ECDC4);
background: radial-gradient(circle, #FF6B6B, #4ECDC4);8부: 색상 도구
색상 팔레트 생성기
- Coolors.co: 자동 생성 및 공유
- Adobe Color: 색상 규칙 기반 생성
- Paletton: 색상 이론 기반
색상 대비 확인
- WebAIM Contrast Checker: 접근성 확인
- Color Contrast Analyzer: 자세한 분석
색상 변환기
색상 변환기로 HEX, RGB, HSL 간 변환을 쉽게 하세요.
자주 하는 실수
1. 색상만으로 정보 전달
❌ 빨강 = 에러, 녹색 = 성공 (색약자는 모름)
✅ 색상 + 아이콘 + 텍스트
2. 과도한 색상 사용
❌ 7가지 이상의 주요 색 사용
✅ 주요색 1개 + 보조색 2개 + 중립색 2개
3. 명도 대비 무시
❌ 연한 회색 텍스트 + 흰색 배경
✅ 짙은 회색 또는 검정 텍스트
4. 브랜드 색상 강요
❌ 브랜드 색상이 접근성 기준 미달도 강제 사용
✅ 브랜드 색상 + 접근성 색상 조합
마무리
색상은 감정, 사용성, 접근성의 교차점입니다. 이론을 이해하고 도구를 활용하면, 누구나 아름답고 기능적인 색 조합을 만들 수 있습니다.