HEX vs RGB vs HSL: 어떤 색상 형식을 사용해야 할까요?
HEX vs RGB vs HSL: 어떤 색상 형식을 사용해야 할까요?
CSS는 색상을 정의하는 여러 가지 방법을 제공하지만, 가장 일반적인 세 가지 형식은 HEX, RGB, HSL입니다. 각 형식은 뚜렷한 강점을 가지고 있으며, 각각을 언제 사용해야 하는지 알면 스타일시트 유지 관리성과 동적 색상 시스템 생성 능력을 극적으로 향상시킬 수 있습니다. 이 가이드는 모든 형식을 분석하여 어떤 상황에서든 적합한 것을 선택할 수 있도록 합니다.
HEX 색상 형식: 업계 표준
HEX(16진수) 색상은 웹 디자인에서 가장 널리 사용되는 형식입니다. hex 색상은 빨강, 초록, 파랑 값을 순서대로 나타내는 6자리 16진수 숫자가 뒤따르는 #로 작성됩니다.
#FF5733
- #FF — 빨강 (10진수 255)
- #57 — 초록 (10진수 87)
- #33 — 파랑 (10진수 51)
HEX 변형
HEX는 다양한 필요에 맞는 여러 표기법을 지원합니다:
/* 표준 6자리 hex */
color: #FF5733;
/* 단축형 — 동일한 쌍이 3자리로 축소됨 */
color: #F53; /* #FF5533으로 확장됨 */
/* 알파 채널이 있는 8자리 hex */
color: #FF573380; /* 50% 불투명도 */
단축형 HEX는 각 쌍이 일치하는 문자를 사용할 때 작동합니다: #AABBCC는 #ABC가 됩니다. 이는 모든 브라우저에서 지원되는 순전히 공간 절약 규칙입니다.
8자리 HEX(#RRGGBBAA)는 알파 투명도를 추가했습니다. 알파 값은 00(완전 투명)에서 FF(완전 불투명)까지의 범위를 가집니다. 8자리 hex의 브라우저 지원은 모든 최신 브라우저에서 훌륭합니다.
4자리 단축형(#RGBA)도 존재합니다: #F538은 #FF553388로 확장됩니다.
HEX를 사용해야 하는 경우
- 디자인 도구에서 복사-붙여넣기 — Figma, Sketch, Adobe XD 모두 기본적으로 hex를 출력합니다
- 하드코딩된 브랜드 색상 — Hex는 절대 변경되지 않는 값에 대해 모호하지 않고 간결합니다
- 문서화 및 목업 — Hex는 디자이너와 개발자 사이에서 가장 잘 알려진 형식입니다
- CSS 사용자 정의 속성 — hex로 브랜드 토큰을 저장하는 것이 일반적인 관행입니다
HEX를 피해야 하는 경우
- 프로그래밍 방식 색상 조작 — 개별 채널 조정에는 문자열 파싱이 필요합니다
- 색상 시스템 만들기 — 더 밝거나 어두운 변형 생성에는 사소하지 않은 수학이 필요합니다
- 색상 의도 전달하기 — Hex는 색상에 대한 의미적 정보를 제공하지 않습니다
RGB 색상 형식: 채널 제어
RGB는 빨강(Red), 초록(Green), 파랑(Blue)을 의미합니다. CSS에서는 0에서 255까지의 값 또는 백분율(0%에서 100%)을 사용하는 함수로 작성됩니다.
/* 레거시 쉼표 구분 구문 */
color: rgb(255, 87, 51);
color: rgba(255, 87, 51, 0.5);
/* 최신 공백 구분 구문 */
color: rgb(255 87 51);
color: rgb(255 87 51 / 0.5);
/* 백분율 값 */
color: rgb(100% 34% 20%);
최신 RGB 구문 개선 사항
CSS Color Level 4 명세는 rgb() 함수를 두 가지 중요한 방식으로 현대화했습니다:
- 공백 구분 값 — 쉼표가 더 이상 필요하지 않아 구문이 더 깔끔해졌습니다
- 슬래시 구분 알파 —
rgba()별칭이 더 이상 필요하지 않습니다;rgb()가 이제 선택적 알파 채널을 허용합니다
레거시와 최신 구문 모두 완전히 지원되지만, 새 코드에는 최신 구문이 권장됩니다.
RGB를 사용해야 하는 경우
- Canvas 및 WebGL — 이미지 데이터 API는 픽셀 값을 RGB로 반환합니다
- 수치적 색상 조정 — 빨강, 초록, 파랑 값이 별도의 변수로 저장된 경우
- 디자인 사양에서 변환 — 일부 디자인 시스템은 색상을 RGB 세 쌍으로 지정합니다
- 색상 선택기 작업 — 많은 색상 선택기 UI가 0-255 슬라이더를 사용합니다
RGB를 피해야 하는 경우
- 응집력 있는 색상 팔레트 만들기 — 세 채널을 모두 독립적으로 조정하면 일관된 조정이 어렵습니다
- 인간 가독성 —
rgb(123, 45, 67)은 어떤 색상을 나타내는지 즉각적인 감을 주지 않습니다
HSL 색상 형식: 인간 친화적 색상
HSL은 색상(Hue), 채도(Saturation), 명도(Lightness)를 의미합니다. 이 형식은 색상 자체(색상)를 강도(채도)와 밝기(명도)에서 분리하기 때문에 인간에게 더 직관적입니다.
/* 레거시 구문 */
color: hsl(12, 100%, 60%);
color: hsla(12, 100%, 60%, 0.5);
/* 최신 구문 */
color: hsl(12 100% 60%);
color: hsl(12 100% 60% / 0.5);
HSL 채널 이해하기
색상 (0-360) — 색상환에서의 색상 각도. 이것이 "무슨 색인가" 구성 요소입니다:
| 색상 값 | 색상 | |----------|--------| | 0 또는 360 | 빨강 | | 30 | 주황 | | 60 | 노랑 | | 120 | 초록 | | 180 | 청록 | | 240 | 파랑 | | 300 | 자홍 |
채도 (0-100%) — 색상이 얼마나 강렬하거나 선명한지. 0%는 회색 음영을 생성합니다; 100%는 색조의 가장 순수한 버전입니다.
명도 (0-100%) — 색상이 얼마나 밝거나 어두운지. 0%는 항상 검정, 50%는 색조의 "정상" 버전, 100%는 항상 흰색입니다.
HSL이 색상 시스템에 더 우수한 이유
HSL은 HEX나 RGB에서 어려운 작업을 사소하게 만듭니다:
/* 주요 브랜드 색상 */
--brand: hsl(220, 80%, 50%);
/* 호버 상태 — 약간 더 밝게 */
--brand-hover: hsl(220, 80%, 60%);
/* 활성 상태 — 약간 더 어둡게 */
--brand-active: hsl(220, 80%, 40%);
/* 비활성 상태 — 채도 낮춤 */
--brand-disabled: hsl(220, 30%, 70%);
/* 배경 틴트 — 매우 밝게 */
--brand-bg: hsl(220, 40%, 95%);
HSL을 사용하면 모든 변형이 하나의 변수 변경입니다. 이는 HEX로는 불가능하고 RGB로는 번거롭습니다.
HSL을 사용해야 하는 경우
- 색상 팔레트 만들기 — HSL은 디자인 토큰 생성을 위한 사실상의 표준입니다
- 테마 및 다크 모드 — 명도 값을 교체하여 다크 모드 변형 만들기
- 호버 및 포커스 상태 — 고정된 비율로 명도 조정
- 접근성 조정 — 색상을 변경하지 않고 명도 대비 증가
- 대화형 색상 선택기 — HSL 슬라이더는 RGB 슬라이더보다 더 직관적입니다
빠른 비교 테이블
| 기능 | HEX | RGB | HSL |
|------|-----|-----|-----|
| 픽셀 수준 가독성 | 낮음 | 보통 | 좋음 |
| 채널 의미 | 불투명 | 수치적 | 지각적 |
| 프로그래밍 방식 조정 | 어려움 | 보통 | 쉬움 |
| 알파 투명도 | 8자리 hex | rgb(R G B / A) | hsl(H S% L% / A) |
| 브라우저 지원 | 훌륭함 | 훌륭함 | 훌륭함 |
| 최신 구문 | 아니요 | 예 | 예 |
| 디자인 도구 기본값 | 예 | 흔함 | 드묾 |
| 색상 시스템 적합성 | 낮음 | 보통 | 훌륭함 |
브라우저 지원: 세 가지 모두 안전합니다
HEX, RGB, HSL은 동일한 브라우저 지원을 누립니다. 세 가지 모두 Internet Explorer 9 이후 출시된 모든 브라우저에서 작동합니다. 최신 공백 구분 구문(rgb(255 0 0 / 0.5))은 2020년 이후 출시된 모든 브라우저에서 지원됩니다. 하나를 다른 것보다 선택할 호환성 이유는 없습니다.
실용적 의사 결정 프레임워크
수행 중인 작업에 따라 형식을 선택하세요:
- 디자인 목업에서 복사하나요? HEX를 사용하세요 — 디자인 도구가 출력하는 것입니다.
- 디자인 토큰 시스템을 구축하나요? HSL을 사용하세요 — 팔레트 생성이 사소해집니다.
- canvas 또는 이미지 데이터로 작업하나요? RGB를 사용하세요 — 픽셀 API가 RGB를 기본적으로 사용합니다.
- 일회성 스타일 규칙을 작성하나요? HEX를 사용하세요 — 가장 간결합니다.
- 동적 색상 전환을 만드나요? HSL을 사용하세요 — 색조를 보간하면 무지개 효과가 생성됩니다; RGB를 보간하면 칙칙한 중간색이 생성됩니다.
모든 형식 간 변환하기
무료 온라인 색상 변환기를 사용하여 HEX, RGB, HSL 및 기타 CSS 색상 형식 간에 즉시 변환하세요. 더 이상 수동 계산이나 브라우저 DevTools 탐색이 필요 없습니다.