문서 작업 가이드
CSS 색상을 변환하고 글자 대비 검증하기
알파를 잃지 않고 HEX, RGB, HSL 토큰을 표준화한 뒤 합성된 배경을 WCAG 글자 기준으로 검사하고, 인쇄 작업은 ICC 색상 관리 절차로 넘깁니다.
작성 및 검수 SimpleWebUtils게시일: 검토일:
이 작업 흐름을 검증한 방법
WCAG 대비를 계산하는 HEX·RGB·HSL 색상 변환기 검토에서는 “글자색을 고르기 전 반투명 CSS 토큰 합성”에 표시된 원본을 보존했습니다. “원본 구문과 색공간 분류”, “올바른 WCAG 기준 적용” 단계를 완료한 뒤 가능한 값은 그대로 대조했습니다. 연결된 실패 증거는 “형식 변환 중 알파 삭제”, “합성 결과 대신 원본 색상 검사” 항목별로 확인했습니다.
반투명 토큰은 #2563EBD1로 정규화되고 흰 배경 위에서 #4C7FEF가 됐으며, 검정 글자는 5.59:1로 일반 AA를 통과하고 흰 글자는 3.76:1로 실패했습니다.
문제 상황
색상 하나도 디자인 파일, CSS, 반투명 레이어를 합성한 화면에서 서로 다르게 보일 수 있습니다. 기계적 변환만으로는 반올림한 8비트 값의 정밀도가 충분한지, 넓은 색역 원본을 보존해야 하는지, 인쇄소의 종이와 ICC 프로파일이 잉크를 어떻게 분리할지 결정할 수 없습니다. 신뢰할 수 있는 절차는 CSS용 sRGB 출력과 디자인 참고 데이터를 구분하고, 글자 뒤에 실제 표시되는 불투명 배경을 측정하며, 변환된 색상칩 하나가 아니라 제품의 실제 상태에서 결과를 검증합니다.
이럴 때 사용하세요
- 디자인 토큰을 알파 채널을 유지한 채 HEX, rgb(), hsl() 사이에서 옮겨야 할 때
- 단색 또는 반투명 인터페이스 표면에서 흰색·검은색 글자의 WCAG 대비를 1차 검사할 때
- 서로 다른 CSS 색상 표기를 하나의 문서화된 토큰 형식으로 통합할 때
- 디자인 도구의 HSV 값을 CSS 구현용 sRGB 참고값으로 명확히 표시해 전달할 때
- 웹 색상이 인쇄 핸드오프로 넘어가며 프로파일 없는 CMYK 근사값의 한계를 기록해야 할 때
단계
- 1단계
토큰, 상태, 바탕을 목록화
원본 색상과 hover, focus, disabled, selected, error, dark mode 변형을 모읍니다. 반투명 레이어 아래 실제 배경을 모두 기록하고, 하나의 단색으로 나타낼 수 없는 이미지와 그라데이션도 표시합니다.
- 2단계
원본 구문과 색공간 분류
각 값이 HEX, CSS RGB, CSS HSL, 이름색, 넓은 색역 함수, 디자인 전용 데이터 중 무엇인지 확인합니다. 미지원 값과 넓은 색역 원본을 sRGB 전용 절차로 조용히 강제 변환하지 말고 보존합니다.
- 3단계
표준 sRGB 검토값 생성
지원하는 값을 변환하고 HEX, RGB, HSL 출력을 비교합니다. 알파를 명시적으로 유지하고 색역 잘림이나 바이트 반올림을 기록하며, HSV와 CMYK 문자열은 CSS가 아닌 참고 데이터로 표시합니다.
- 4단계
알파를 실제 배경에 합성
글자 대비를 평가하기 전에 반투명 색상을 실제 사용할 표면에 합성합니다. 도구는 흰색과 검은색 바탕을 명시적으로 제공하며, 다른 바탕은 애플리케이션이나 별도 접근성 검사에서 재현합니다.
- 5단계
올바른 WCAG 기준 적용
반올림 전 비율을 사용합니다. WCAG 2.2 AA에서 일반 글자는 최소 4.5:1, 큰 글자는 3:1입니다. 큰 글자로 분류하기 전에 실제 글꼴 크기와 굵기를 확인하고 경계값 실패를 반올림해 통과시키지 않습니다.
- 6단계
렌더링된 모든 상태 검증
브라우저에서 기본, hover, focus, active, selected, disabled, validation, 테마 상태를 검사합니다. 포커스 표시, 비텍스트 컨트롤, 그라데이션, 이미지, 색상에만 의존한 정보도 함께 검토합니다.
- 7단계
웹 토큰과 인쇄 변환 분리
원본 값과 표준 sRGB 값을 인쇄 절차에 전달합니다. 인쇄소 ICC 프로파일, 용지, 잉크 한도, 검정 생성, 렌더링 의도, 교정 절차를 사용하고 프로파일 없는 CMYK 근사값을 인쇄 완성 사양으로 올리지 않습니다.
예시
글자색을 고르기 전 반투명 CSS 토큰 합성
입력
토큰: rgb(37 99 235 / 82%)
바탕: 흰색
후보 글자: 흰색 또는 검은색출력
표준 HEX: #2563EBD1
합성 배경: #4C7FEF
흰색 글자: 3.76:1, 일반 AA 실패
검은색 글자: 5.59:1, 일반 AA 통과
다음: 브라우저에서 실제 컴포넌트 상태와 글꼴 검증흔한 실수
형식 변환 중 알파 삭제
RGBA를 6자리 HEX로 바꾸면 배경이 같지 않은 모든 곳에서 표시색이 달라집니다. 4자리·8자리 HEX, rgba(), hsla()를 사용하고 의도한 바탕을 기록합니다.
합성 결과 대신 원본 색상 검사
WCAG 대비는 렌더링된 색상에 적용됩니다. 반투명 토큰은 비율을 계산하기 전에 실제 배경과 합성해야 합니다.
기준 미달을 반올림해 통과 처리
화면에 4.5로 보여도 실제 값이 4.5보다 작으면 근거가 부족합니다. 통과·실패 판정은 반올림 전 비율에 연결합니다.
HSV·CMYK 표시를 CSS 함수로 오해
HSV는 유용한 디자인 데이터이고 CMYK 문자열은 프로파일 없는 근사값입니다. 이 절차는 둘 중 어느 것도 지원되는 CSS 색상 함수로 제시하지 않습니다.
색상칩 하나만 보고 제품 검사 생략
실제 인터페이스에는 글꼴, 안티앨리어싱, 상태, 오버레이, 이미지, 주변 색상이 더해집니다. 렌더링된 컴포넌트의 브라우저·접근성 검사로 마무리합니다.
자주 묻는 질문
팀은 HEX, RGB, HSL 중 하나로 통일해야 하나요?
토큰 시스템과 편집 절차에 맞는 표기를 정하고 알파 처리 방식을 문서화하며 미지원 넓은 색역 원본을 보존하세요. 동등한 sRGB 표기 중 하나가 항상 더 우수한 것은 아닙니다.
#RRGGBBAA에서 알파는 앞인가요, 뒤인가요?
CSS 16진수 알파는 빨강, 초록, 파랑 다음인 마지막입니다. ARGB를 쓰는 시스템도 있으므로 8자리 값을 플랫폼 간 이동하기 전에 목적지 규칙을 확인하세요.
반투명 색상의 대비가 흰색과 검은색 바탕에서 왜 다른가요?
알파가 원본 채널과 바탕을 섞어 서로 다른 최종 불투명 색상을 만듭니다. 따라서 상대 휘도와 대비 비율도 달라집니다.
WCAG AA 글자 기준은 언제나 4.5:1인가요?
WCAG 2.2 AA 일반 글자의 최소값은 4.5:1입니다. 큰 글자는 3:1이며 UI 컴포넌트와 포커스 표시 같은 다른 요소에는 별도 기준과 문맥이 있습니다.
sRGB 변환기가 display-p3나 Lab을 정확히 보존하나요?
아닙니다. 더 넓은 색역을 sRGB로 바꾸면 색상이 잘리고 원본 정밀도를 잃을 수 있습니다. 원본 토큰을 보관하고 해당 색공간을 명시적으로 지원하는 절차를 사용하세요.
CMYK 값은 언제 상업 인쇄에 사용할 수 있나요?
대상 인쇄기, 잉크, 종이, 총잉크량, 검정 생성, 렌더링 의도, 교정 조건에 맞춘 색상 관리 변환을 거친 뒤입니다. 프로파일 없는 수식은 그 절차를 대체하지 못합니다.