HEX HSL 변환기는 HEX 색상 코드(`#3b82f6`)를 동일한 sRGB 색상을 인코딩하는 원통형 Hue / Saturation / Lightness 트리플(`hsl(217 91% 60%)`)로 바꿔 주는 소형 유틸리티입니다. HEX 코드는 디자이너와 개발자가 Figma, Sketch, Photoshop, 브랜드 가이드라인 PDF, CSS 스타일시트 사이에서 붙여넣는 간결한 16진수 문자열입니다. 6글자의 `#RRGGBB` 형태로 묶인 세 개의 8비트 채널로, 1996년에 IEC 61966-2-1이 정의한 sRGB 색 공간에 고정되어 있습니다. HSL은 그 동일한 색 공간을 세 가지 더 디자이너 친화적인 축으로 재구성한 원통형 형식입니다. 색상환 위의 색조 각도, 색채감 있는 채도 백분율, 그리고 명도 백분율. 개발자들은 HEX → HSL을 끊임없이 변환합니다. 브랜드 색상을 CSS 변수로 정의한 뒤 L만 조정해 더 밝거나 어두운 셰이드를 합성하기 위해, 색조와 SL을 별도 컨트롤로 표시하는 색상 피커 UI를 위해, 디자인 시스템의 틴트와 셰이드 램프를 생성하기 위해, 또는 파생 테마 토큰을 위한 `hsl(from var(--primary) h s calc(l + 10%))` 런타임 CSS 변수 수학을 수행하기 위해. 본 도구는 입력하는 동안 변환을 실시간으로 실행하며 클릭할 "변환" 버튼이 없고, 다른 모든 흔한 색상 형식(RGB, OKLCH, OKLAB, HSV, HWB, CMYK, 그리고 148개의 CSS 이름 있는 색상)을 HSL 출력과 함께 무료로 노출합니다.
**HSL 형식 자체를 좀 더 자세히 볼 가치가 있습니다.** HSL = 색조(0-360°), 채도(0-100%), 명도(0-100%). 색조는 색상환 위의 각 위치입니다. 0°는 빨강, 60°는 노랑, 120°는 초록, 180°는 시안, 240°는 파랑, 300°는 마젠타이며, 360°는 다시 빨강으로 둘러싸입니다. 채도는 0%(무채색 회색)부터 100%(회색 함량 없이 완전히 채도가 높음)까지의 색채감입니다. 명도는 0%(색조나 채도와 관계없이 순수 검정)에서 50%(완전 채도의 순수 색조)를 거쳐 100%(색조나 채도와 관계없이 순수 흰색)까지의 밝기입니다. Alvy Ray Smith가 1978년에 디자이너에게 원시 RGB 채널 주소 지정보다 색상 인지 모델에 더 가까운 좌표계를 제공하려는 초기 컴퓨터 그래픽스의 일환으로 원본 유도를 발표했습니다. 모델은 2010년 CSS3 이후 CSS에 포함되어 IE 9까지 모든 브라우저에 탑재되어 있습니다. 원본 CSS 구문은 콤마를 사용했습니다. 불투명용 `hsl(217, 91%, 60%)`, 알파 포함용 `hsla(217, 91%, 60%, 0.5)`. CSS Color 4(2022년부터 W3C 후보 권고안)는 최신 공백 구분 형식을 추가했습니다. `hsl(217 91% 60%)`와 슬래시 접두 알파를 가진 `hsl(217 91% 60% / 0.5)` — CSS Color 4의 다른 함수형 표기법(`rgb()`, `lab()`, `oklch()`, `color()`)과 동일한 구문 모양입니다. 색조는 turn (`hsl(0.6turn 91% 60%)`) 또는 라디안 (`hsl(3.787rad 91% 60%)`)으로도 표현 가능하며, 모두 정규 도 형식과 동등합니다. 모든 에버그린 브라우저가 모든 구문 변형을 파싱하며, 본 도구는 기본적으로 최신 공백 구분 형식을 내보냅니다.
변환 수학은 양방향 모두 깔끔합니다. **HEX → HSL**은 두 단계 파이프라인입니다. 먼저 `parseInt(hex.slice(1, 3), 16)` 등을 통해 6자리 HEX `#RRGGBB`를 세 개의 2자리 16진수 숫자로 파싱해 0-255 범위의 정수 RGB 채널을 얻습니다. 그런 다음 각 채널을 255로 나눠 0-1로 정규화하고, `max = Math.max(r, g, b)`, `min = Math.min(r, g, b)`, `delta = max - min`을 계산합니다. 명도는 max와 min의 평균입니다. `L = (max + min) / 2`. 채도는 명도에 따라 조건적입니다. L ≤ 0.5일 때 `S = delta / (max + min)`이고, L > 0.5일 때 `S = delta / (2 - max - min)`입니다. CSS Color 4 §6.4 형식으로 동등하게 `S = delta / (1 - |2L - 1|)`입니다 (delta = 0일 때 S = 0). 색조는 어느 채널이 max인지에 따라 조각별입니다. R이 max일 때 `H = ((G - B) / delta) % 6`, G가 max일 때 `H = (B - R) / delta + 2`, B가 max일 때 `H = (R - G) / delta + 4`. 60을 곱해 도 단위로 스케일하고 음수이면 360을 더합니다. 역방향(HSL → HEX, RGB를 경유)은 헬퍼 `f(n) = L - a * max(-1, min(k-3, 9-k, 1))`를 사용하며, 여기서 `a = S * min(L, 1-L)`이고 `k = (n + H/30) mod 12`입니다. n = 0, 8, 4로 각각 R, G, B를 만든 뒤 0-255로 스케일하고 16진수로 인코딩합니다.
**HSL이 여전히 유용한 이유.** 직관적인 슬라이더 — L을 조정하면 색조 정체성을 깨지 않고 예측 가능하게 밝아지거나 어두워지지만, RGB 채널을 조정하면 덜 예측 가능한 색상 변화가 발생합니다. 런타임 CSS 수학 — 최신 브라우저는 `hsl(from var(--primary) h s calc(l + 10%))`를 지원해 렌더 시점에 테마 토큰을 파생합니다. 디자이너 인지 — HSV 색상 피커로 자란 디자이너는 파일이 HEX로 배포되더라도 색조 + 채도 측면에서 색상을 추론합니다. **HSL의 문제**는 명도 축이 지각적으로 균일하지 않다는 것입니다. L=50%의 초록이 L=50%의 파랑보다 시각적으로 더 밝아 보입니다. HSL이 sRGB의 감마 특이성을 상속하고 모든 색조를 L 척도에서 동등하게 취급하기 때문입니다. 지각 균일성이 필요할 때(모든 단계가 동등하게 밝아 보여야 하는 팔레트 생성, 파란 텍스트가 우연히 초록 텍스트보다 읽기 어려워지지 않도록 하는 다크 모드 토큰 계산)에는 대신 OKLCH를 사용하십시오. 동일한 도구가 둘 다 노출하므로 선택은 한눈 거리입니다.
본 도구의 HEX → HSL 작업 흐름은 동일한 기반 통합 색상 변환기를 공유하는 5개 스포크 패밀리의 한 방향입니다. 전용 통합 색상 변환기가 허브입니다. 9가지 형식을 동시에 편집 가능한 상태로 보여 주며, 작업 흐름이 단순한 HEX와 HSL 이상을 필요로 할 때 적절한 도구입니다. 단방향 스포크는 특정 Google 검색 의도를 겨냥합니다. canvas와 하드웨어 방향용 HEX RGB 변환기, 역방향용 RGB HEX 변환기, 최신 지각 균일 디자인 시스템용 HEX OKLCH 변환기(Tailwind v4와 shadcn 모두 이제 OKLCH를 기본값으로 둡니다), 그리고 인쇄 시안 근사용 HEX CMYK 변환기. 다섯 스포크와 허브 모두 동일한 파싱 엔진과 동일한 변환 수학을 공유하므로, 패밀리 전체에서 결과가 동일함이 보장됩니다. 모든 변환은 브라우저 안에서 로컬로 실행됩니다. HEX 코드는 결코 업로드되지도, 로그에 남지도, 입력 동안 어떤 네트워크 요청도 발사되지 않습니다. 개발자 도구에서 확인할 수 있습니다.