๐ŸŽจ
โ† ๊ฐ€์ด๋“œ ๋ชฉ๋ก์œผ๋กœ

์ตœ์‹  CSS ์ƒ‰์ƒ ํ•จ์ˆ˜: rgba(), hsl(), oklch() ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์ƒ

ยท ํƒœ๊ทธ: css, color-functions, oklch, modern-css, web-development, rgba, hsl

์ตœ์‹  CSS ์ƒ‰์ƒ ํ•จ์ˆ˜: rgba(), hsl(), oklch() ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์ƒ

CSS ์ƒ‰์ƒ ํ•จ์ˆ˜๋Š” ๊ทน์ ์œผ๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ๋•Œ hex, rgb(), hsl() ์ค‘์—์„œ ์„ ํƒํ•˜๋˜ ๊ฒƒ์ด ์ด์ œ๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ƒ‰์ƒ ํ‘œํ˜„, ๋ณด๊ฐ„ ๋ฐ ์ ‘๊ทผ์„ฑ์— ๋Œ€ํ•œ ์ „๋ก€ ์—†๋Š” ์ œ์–ด๊ถŒ์„ ์ œ๊ณตํ•˜๋Š” ํ’๋ถ€ํ•œ ์ƒ‰ ๊ณต๊ฐ„๊ณผ ์กฐ์ž‘ ํ•จ์ˆ˜์˜ ์ƒํƒœ๊ณ„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ๋Š” 2026๋…„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์ฃผ์š” CSS ์ƒ‰์ƒ ํ•จ์ˆ˜๋ฅผ ์ต์ˆ™ํ•œ ๊ฒƒ๋ถ€ํ„ฐ ์ตœ์ฒจ๋‹จ๊นŒ์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

RGB์™€ RGBA: ์ฃผ๋ ฅ ํ•จ์ˆ˜

rgb() ํ•จ์ˆ˜๋Š” ๋นจ๊ฐ•-์ดˆ๋ก-ํŒŒ๋ž‘ ๊ฐ€์‚ฐ ์ƒ‰์ƒ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ‰์ƒ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. CSS1๋ถ€ํ„ฐ CSS์˜ ์ผ๋ถ€์˜€์œผ๋ฉฐ, ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

/* ๋ ˆ๊ฑฐ์‹œ ์‰ผํ‘œ ๊ตฌ๋ถ„ ๊ตฌ๋ฌธ */
color: rgb(255, 0, 0);
color: rgba(255, 0, 0, 0.5);

/* ์ตœ์‹  ๊ณต๋ฐฑ ๊ตฌ๋ถ„ ๊ตฌ๋ฌธ (CSS Color Level 4) */
color: rgb(255 0 0);
color: rgb(255 0 0 / 0.5);

/* ๋ฐฑ๋ถ„์œจ ๊ฐ’ */
color: rgb(100% 0% 0%);

์ตœ์‹  RGB์˜ ์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ

CSS Color Level 4๋Š” ๋‘ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค:

  1. ์‰ผํ‘œ ๊ตฌ๋ถ„ ๋Œ€์‹  ๊ณต๋ฐฑ ๊ตฌ๋ถ„ โ€” rgb() ํ•จ์ˆ˜๊ฐ€ ์ด์ œ ๊ณต๋ฐฑ์ด๋‚˜ ์Šฌ๋ž˜์‹œ๋กœ ๊ตฌ๋ถ„๋œ ๊ฐ’์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค
  2. ํ†ตํ•ฉ๋œ ์•ŒํŒŒ ๊ตฌ๋ฌธ โ€” rgba() ๋ณ„์นญ์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์ง€๋งŒ(์—ฌ์ „ํžˆ ์ง€์›๋จ). rgb()๊ฐ€ ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์•ŒํŒŒ ์ฑ„๋„์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค

์ด ์ตœ์‹  ๊ตฌ๋ฌธ์€ 2020๋…„ ์ดํ›„ ์ถœ์‹œ๋œ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ƒˆ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์ตœ์‹  ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ  rgba() ๋ณ„์นญ์„ ์™„์ „ํžˆ ๊ฑด๋„ˆ๋›ฐ์„ธ์š”.

RGB ์ฑ„๋„

๊ฐ RGB ์ฑ„๋„์€ ๋‹ค์Œ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • 0์—์„œ 255๊นŒ์ง€์˜ ์ •์ˆ˜
  • 0%์—์„œ 100%๊นŒ์ง€์˜ ๋ฐฑ๋ถ„์œจ
  • ๋ˆ„๋ฝ๋œ ์ฑ„๋„์— ๋Œ€ํ•œ none ํ‚ค์›Œ๋“œ (CSS Color Level 4)

none ํ‚ค์›Œ๋“œ๋Š” ์ƒ‰์ƒ์„ ๋ณด๊ฐ„ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค โ€” ๋ธŒ๋ผ์šฐ์ €์—๊ฒŒ ํŠน์ • ์ฑ„๋„์„ ๋ณด๊ฐ„ํ•˜์ง€ ์•Š๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

HSL๊ณผ HSLA: ์ง๊ด€์ ์ธ ์ƒ‰์ƒ ์ œ์–ด

HSL์€ ์ƒ‰์ƒ(Hue), ์ฑ„๋„(Saturation), ๋ช…๋„(Lightness)๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ธ๊ฐ„์ด ์ƒ‰์ƒ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ์‹์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋งคํ•‘๋˜๋Š” ์›ํ†ตํ˜• ์ขŒํ‘œ๊ณ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

/* H๋Š” ์ƒ‰์ƒ ๊ฐ๋„(0-360), S๋Š” ์ฑ„๋„(0-100%), L์€ ๋ช…๋„(0-100%) */
color: hsl(0 100% 50%);        /* ์ˆœ์ˆ˜ ๋นจ๊ฐ• */
color: hsl(0 100% 50% / 0.5);  /* 50% ๋ถˆํˆฌ๋ช…๋„์˜ ๋นจ๊ฐ• */

/* ๋‹จ์œ„๊ฐ€ ์žˆ๋Š” ์ƒ‰์ƒ ๊ฐ๋„ */
color: hsl(0deg 100% 50%);
color: hsl(0rad 100% 50%);
color: hsl(0grad 100% 50%);
color: hsl(0turn 100% 50%);

์ƒ‰์ƒ ๊ฐ๋„ ์ฐธ์กฐ

| ์ƒ‰์ƒ | ์ƒ‰์ƒ๋ช… | Hex | |------|----------|----------| | 0 | ๋นจ๊ฐ• | #FF0000 | | 30 | ์ฃผํ™ฉ | #FF8000 | | 60 | ๋…ธ๋ž‘ | #FFFF00 | | 120 | ์ดˆ๋ก | #00FF00 | | 180 | ์ฒญ๋ก | #00FFFF | | 240 | ํŒŒ๋ž‘ | #0000FF | | 300 | ์žํ™ | #FF00FF |

HSL์€ ๋ช…๋„๋‚˜ ์ฑ„๋„ ์ฑ„๋„๋งŒ ๋ณ€๊ฒฝํ•ด๋„ ์ผ๊ด€๋œ ์‹œ๊ฐ์  ๋ณ€ํ˜•์„ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์ƒ‰์ƒ ํŒ”๋ ˆํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

HWB: ํฐ์ƒ‰๊ณผ ๊ฒ€์ •์ƒ‰์œผ๋กœ ํ˜ผํ•ฉํ•˜๊ธฐ

HWB(์ƒ‰์ƒ, ๋ฐฑ์ƒ‰๋„, ํ‘์ƒ‰๋„)๋Š” HSL์˜ ๋” ์ง๊ด€์ ์ธ ๋Œ€์•ˆ์ž…๋‹ˆ๋‹ค. ์ƒ‰์ƒ์„ ์„ ํƒํ•œ ๋‹ค์Œ, ๋ฐฑ์ƒ‰๋„์™€ ํ‘์ƒ‰๋„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ‹ดํŠธ์™€ ์…ฐ์ด๋“œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

color: hwb(0 0% 0%);    /* ์ˆœ์ˆ˜ ๋นจ๊ฐ• */
color: hwb(0 40% 0%);   /* ํ‹ดํŠธ๋œ ๋นจ๊ฐ• (ํฐ์ƒ‰ ์ถ”๊ฐ€) */
color: hwb(0 0% 40%);   /* ์…ฐ์ด๋“œ๋œ ๋นจ๊ฐ• (๊ฒ€์ • ์ถ”๊ฐ€) */
color: hwb(0 20% 20%);  /* ํ†ค (ํฐ์ƒ‰ + ๊ฒ€์ •) */

HWB๋Š” ํ•œ ๊ฐ€์ง€ ํŠน์ • ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ HSL๋ณด๋‹ค ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค: ๋ธŒ๋žœ๋“œ ์ƒ‰์ƒ์˜ ํ‹ดํŠธ์™€ ์…ฐ์ด๋“œ ๋ณ€ํ˜•์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฑ„๋„ ๊ณก์„ ์— ๋Œ€ํ•ด ์ƒ๊ฐํ•  ํ•„์š”๊ฐ€ ์ „ํ˜€ ์—†์Šต๋‹ˆ๋‹ค โ€” ๊ทธ์ € ํฐ์ƒ‰์ด๋‚˜ ๊ฒ€์ •์„ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์ง€์›: HWB๋Š” ๋ชจ๋“  ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค (Chrome 101+, Firefox 96+, Safari 15+).

LAB์™€ LCH: ์ง€๊ฐ์ ์œผ๋กœ ๊ท ์ผํ•œ ๊ณต๊ฐ„

LAB(๋ช…๋„, A์ถ•, B์ถ•)์™€ LCH(๋ช…๋„, ์ฑ„๋„, ์ƒ‰์ƒ)๋Š” ์ง€๊ฐ์ ์œผ๋กœ ๊ท ์ผํ•œ ์ƒ‰ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋‘ ์ƒ‰์ƒ ๊ฐ’ ์‚ฌ์ด์˜ ์œ ํด๋ฆฌ๋“œ ๊ฑฐ๋ฆฌ๊ฐ€ ์ธ์ง€๋˜๋Š” ์‹œ๊ฐ์  ์ฐจ์ด์™€ ์ผ์น˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค โ€” RGB์™€ HSL์€ ์ด๋ฅผ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

color: lab(50% 50 0);        /* ์ค‘๊ฐ„ ๋นจ๊ฐ• */
color: lch(50% 50 0);        /* ์›ํ†ตํ˜• ํ˜•ํƒœ์˜ ๋™์ผ ์ƒ‰์ƒ */

์ง€๊ฐ์  ๊ท ์ผ์„ฑ์ด ์ค‘์š”ํ•œ ์ด์œ :

  • ๊ทธ๋ผ๋ฐ์ด์…˜ โ€” LAB ๋˜๋Š” LCH์—์„œ ๋ณด๊ฐ„ํ•˜๋ฉด RGB ๊ทธ๋ผ๋ฐ์ด์…˜์ด ์ƒ์„ฑํ•˜๋Š” ์น™์น™ํ•œ "์ง„ํ™ ์˜์—ญ" ์—†์ด ๋ถ€๋“œ๋Ÿฝ๊ณ  ์ž์—ฐ์Šค๋Ÿฌ์šด ์ „ํ™˜์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค
  • ์ƒ‰์ƒ ์ฐจ์ด ์ธก์ • โ€” Delta E(์ง€๊ฐ์  ์ฐจ์ด ์ธก์ •)๋Š” LAB ๊ณต๊ฐ„์—์„œ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
  • ์ ‘๊ทผ์„ฑ โ€” ์ง€๊ฐ์  ๊ท ์ผ์„ฑ์€ ์ƒ‰๊ฐ ๊ฒฐํ•จ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ‰์ƒ์„ ์–ด๋–ป๊ฒŒ ์ธ์‹ํ• ์ง€ ์˜ˆ์ธกํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค

์ œํ•œ ์‚ฌํ•ญ: LAB์™€ LCH๋Š” sRGB ์˜์—ญ์„ ๋ฒ—์–ด๋‚œ ์ƒ‰์ƒ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ƒ‰์ƒ์€ sRGB ํ™”๋ฉด์—์„œ ํ‘œ์‹œ๋  ๋•Œ ์ž˜๋ฆฌ์ง€๋งŒ, ๋” ๋„“์€ ์˜์—ญ์˜ ๋””์Šคํ”Œ๋ ˆ์ด(DCI-P3, Rec. 2020)์—์„œ๋Š” ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์ง€์›: Chrome 111+, Firefox 113+, Safari 15+์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. IE ๋˜๋Š” ๋ ˆ๊ฑฐ์‹œ Edge ์ง€์›์€ ์—†์Šต๋‹ˆ๋‹ค.

OKLAB์™€ OKLCH: ์ตœ์‹  ์ง€๊ฐ์  ํ‘œ์ค€

OKLCH๋Š” Bjorn Ottosson์ด ๊ฐœ๋ฐœํ•œ LCH์˜ ๊ฐœ์„ ๋œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. LCH์˜ ์ง€๊ฐ์  ๋น„๊ท ์ผ์„ฑ, ํŠนํžˆ ํŒŒ๋ž€์ƒ‰ ์ƒ‰์กฐ์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. OKLCH๋Š” 2025-2026๋…„์— ์ƒˆ๋กœ์šด CSS ํ”„๋กœ์ ํŠธ์˜ ๊ถŒ์žฅ ๊ธฐ๋ณธ ์ƒ‰ ๊ณต๊ฐ„์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

color: oklch(60% 0.2 30);
/* ๋ช…๋„: 0-100%, ์ฑ„๋„: 0-~0.4, ์ƒ‰์ƒ: 0-360 */

OKLCH๊ฐ€ CSS์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ์ƒ‰ ๊ณต๊ฐ„์ธ ์ด์œ 

  1. ์ตœ๊ณ ์˜ ์ง€๊ฐ์  ๊ท ์ผ์„ฑ โ€” ๋™์ผํ•œ ์ˆ˜์น˜ ๋ณ€ํ™”๊ฐ€ ๋ชจ๋“  ์ƒ‰์กฐ์—์„œ ๋™์ผํ•œ ์‹œ๊ฐ์  ๋ณ€ํ™”๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
  2. ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๋ช…๋„ โ€” ๋™์ผํ•œ ๋ช…๋„ ๊ฐ’์˜ ์ƒ‰์ƒ์ด ์‹ค์ œ๋กœ ๋™๋“ฑํ•˜๊ฒŒ ๋ฐ๊ฒŒ ๋ณด์ž…๋‹ˆ๋‹ค
  3. ์น™์น™ํ•œ ๊ทธ๋ผ๋ฐ์ด์…˜ ์—†์Œ โ€” ์ „์ฒด ์ƒ‰์กฐ ๋ฒ”์œ„์—์„œ ๋ณด๊ฐ„์ด ๊นจ๋—ํ•˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค
  4. ๊ธฐ๋ณธ์ ์œผ๋กœ sRGB-safe โ€” ๋Œ€๋ถ€๋ถ„์˜ OKLCH ๊ฐ’์ด ์˜์—ญ ๋‚ด sRGB ์ƒ‰์ƒ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค
  5. ์ง๊ด€์ ์ธ ์ฑ„๋„ โ€” HSL๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ์‹ค์ œ ์ง€๊ฐ์  ์ •ํ™•์„ฑ์„ ๊ฐ–์ถค

OKLCH ์‹ค์ œ ์‚ฌ์šฉ

/* OKLCH๋กœ ๊ท ํ˜• ์žกํžŒ ์ƒ‰์ƒ ์Šค์ผ€์ผ ๋งŒ๋“ค๊ธฐ */
--blue-100: oklch(95% 0.02 250);
--blue-300: oklch(75% 0.08 250);
--blue-500: oklch(55% 0.15 250);
--blue-700: oklch(35% 0.10 250);
--blue-900: oklch(15% 0.04 250);

๊ฐ ๋‹จ๊ณ„๊ฐ€ ๋Œ€๋žต ๋™์ผํ•œ ๋ช…๋„ ๊ฐ’(20 ํผ์„ผํŠธ ํฌ์ธํŠธ)๋งŒํผ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์— ์ฃผ๋ชฉํ•˜์„ธ์š”. OKLCH๋Š” ์ง€๊ฐ์ ์œผ๋กœ ๊ท ์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ๋‹จ๊ณ„๋Š” ์ธ๊ฐ„์˜ ๋ˆˆ์— ๊ท ๋“ฑํ•œ ๊ฐ„๊ฒฉ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค โ€” HSL๋กœ๋Š” ๋‹ฌ์„ฑํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ธŒ๋ผ์šฐ์ € ์ง€์›: OKLCH๋Š” Chrome 111+, Firefox 113+, Safari 15.4+์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ถŒ์žฅ๋˜๋Š” ์ตœ์‹  ์ƒ‰ ๊ณต๊ฐ„์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค.

Color-Mix: CSS์—์„œ ์ƒ‰์ƒ ํ˜ผํ•ฉํ•˜๊ธฐ

color-mix() ํ•จ์ˆ˜๋Š” ์ง€์ •๋œ ์ƒ‰ ๊ณต๊ฐ„์—์„œ ๋‘ ์ƒ‰์ƒ์„ ํ˜ผํ•ฉํ•ฉ๋‹ˆ๋‹ค:

/* sRGB์—์„œ ๋นจ๊ฐ•๊ณผ ํŒŒ๋ž‘์„ ๋™์ผํ•˜๊ฒŒ ํ˜ผํ•ฉ */
color: color-mix(in srgb, red, blue);

/* 30% ๊ธฐ๋ณธ ์ƒ‰์ƒ, 70% ํฐ์ƒ‰ โ€” ํ‹ดํŠธ */
color: color-mix(in oklch, var(--primary) 30%, white);

/* ๋ถ€๋“œ๋Ÿฌ์šด ๊ฒฐ๊ณผ๋ฅผ ์œ„ํ•ด ์ง€๊ฐ์  ์ƒ‰ ๊ณต๊ฐ„์œผ๋กœ ํ˜ผํ•ฉ */
background: color-mix(in oklch, var(--accent) 20%, var(--surface));

in <color-space> ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด๊ฐ„ ๊ณต๊ฐ„์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ in oklch๊ฐ€ ์ตœ์ƒ์˜ ์‹œ๊ฐ์  ๊ฒฐ๊ณผ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ ์‚ฌ๋ก€:

  • ์ „์ฒ˜๋ฆฌ๊ธฐ ํ•จ์ˆ˜ ์—†์ด ํ‹ดํŠธ์™€ ์…ฐ์ด๋“œ ๋งŒ๋“ค๊ธฐ
  • ๋‹จ์ผ ์ƒ‰์ƒ ํ† ํฐ์—์„œ ๊ตฌ์„ฑ ์š”์†Œ ๋ณ€ํ˜• ๊ตฌ์ถ•
  • ํ˜ธ๋ฒ„ ๋ฐ ํ™œ์„ฑ ์ƒํƒœ๋ฅผ ๋™์ ์œผ๋กœ ์ƒ์„ฑ
  • ๋‹จ์ผ ํ•จ์ˆ˜๋กœ ๊ทธ๋ผ๋ฐ์ด์…˜๊ณผ ์œ ์‚ฌํ•œ ํšจ๊ณผ ๋งŒ๋“ค๊ธฐ

์ƒ๋Œ€ ์ƒ‰์ƒ ๊ตฌ๋ฌธ: ๊ธฐ์กด ์ƒ‰์ƒ ์ˆ˜์ •ํ•˜๊ธฐ

CSS Color Level 4๋Š” ๊ฐœ๋ณ„ ์ฑ„๋„์„ ์ˆ˜์ •ํ•˜์—ฌ ๊ธฐ์กด ์ƒ‰์ƒ์—์„œ ์ƒˆ๋กœ์šด ์ƒ‰์ƒ์„ ํŒŒ์ƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค:

--primary: #3366cc;

/* OKLCH ์ฑ„๋„ ์‚ฌ์šฉ */
--primary-lighter: oklch(from var(--primary) l c calc(h + 30));
--primary-darker: oklch(from var(--primary) calc(l * 0.8) c h);

/* HSL ์ฑ„๋„ ์‚ฌ์šฉ */
--primary-light: hsl(from var(--primary) h s calc(l + 15%));
--primary-dark: hsl(from var(--primary) h s calc(l - 15%));

from <color> ํ‚ค์›Œ๋“œ๋Š” ์›๋ณธ ์ƒ‰์ƒ์˜ ์ฑ„๋„์„ ๋Œ€์ƒ ํ•จ์ˆ˜์˜ ์ฑ„๋„๋กœ ์–ธํŒฉํ•˜๋ฉฐ, ๊ทธ ํ›„ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์œผ๋กœ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ‰ ๊ณต๊ฐ„๋ณ„ ์ฑ„๋„ ํ‚ค์›Œ๋“œ

๊ฐ ์ƒ‰ ๊ณต๊ฐ„์€ ํŠน์ • ์ฑ„๋„ ํ‚ค์›Œ๋“œ๋ฅผ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค:

| ์ƒ‰ ๊ณต๊ฐ„ | ํ‚ค์›Œ๋“œ | |----------|---------------------------------| | rgb() | r, g, b, alpha | | hsl() | h, s, l, alpha | | hwb() | h, w, b, alpha | | lch() | l, c, h, alpha | | oklch()| l, c, h, alpha | | lab() | l, a, b, alpha | | oklab()| l, a, b, alpha |

๋ธŒ๋ผ์šฐ์ € ์ง€์› ๊ฐœ์š” (2026)

| ํ•จ์ˆ˜ | Chrome | Firefox | Safari | Edge | |------|--------|---------|--------|------| | rgb() / hsl() | ๋ชจ๋‘ | ๋ชจ๋‘ | ๋ชจ๋‘ | ๋ชจ๋‘ | | hwb() | 101+ | 96+ | 15+ | 101+ | | lab() / lch() | 111+ | 113+ | 15+ | 111+ | | oklch() / oklab() | 111+ | 113+ | 15.4+ | 111+ | | color-mix() | 111+ | 113+ | 16.2+ | 111+ | | ์ƒ๋Œ€ ์ƒ‰์ƒ ๊ตฌ๋ฌธ | 111+ | 113+ | 16.2+ | 111+ |

๋ชจ๋“  ์ตœ์‹  ์ƒ‰์ƒ ํ•จ์ˆ˜๋Š” Internet Explorer ์ง€์›์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•ด 2026๋…„์— ์•ˆ์ „ํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋” ๋„“์€ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด์„œ๋Š” ์ตœ์‹  ๊ตฌ๋ฌธ์„ hex ๋˜๋Š” ๋ ˆ๊ฑฐ์‹œ rgb()๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋นŒ๋“œ ๋‹จ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์‹ค์šฉ์  ๊ถŒ์žฅ ์‚ฌํ•ญ

  • ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์šฉ โ€” HSL์€ ์—ฌ์ „ํžˆ ๊ฐ€๋…์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ฑ์˜ ์ตœ์ƒ์˜ ๊ท ํ˜•์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค
  • ์ƒˆ ํ”„๋กœ์ ํŠธ์šฉ โ€” ์ง€๊ฐ์  ์ •ํ™•์„ฑ์„ ์œ„ํ•ด OKLCH๋ฅผ ๊ธฐ๋ณธ ์ƒ‰ ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”
  • ๊ทธ๋ผ๋ฐ์ด์…˜์šฉ โ€” ์น™์น™ํ•œ ์ „ํ™˜์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ํ•ญ์ƒ OKLCH์—์„œ ๋ณด๊ฐ„ํ•˜์„ธ์š”
  • ๋””์ž์ธ ์‹œ์Šคํ…œ์šฉ โ€” ๊ธฐ๋ณธ ์ƒ‰์ƒ์„ OKLCH์— ์ €์žฅํ•˜๊ณ , color-mix() ๋˜๋Š” ์ƒ๋Œ€ ๊ตฌ๋ฌธ์œผ๋กœ ๋ณ€ํ˜•์„ ์ƒ์„ฑํ•˜์„ธ์š”
  • canvas/WebGL์šฉ โ€” ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ์— ๋„ค์ดํ‹ฐ๋ธŒ์ธ RGB๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”

๊ฒฐ๋ก 

์ตœ์‹  CSS ์ƒ‰์ƒ ํ•จ์ˆ˜๋Š” ์›น์—์„œ ์ƒ‰์ƒ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์„ ๋ณ€ํ™”์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. OKLCH๋Š” ์ƒ‰์ƒ ์‹œ์Šคํ…œ ๋””์ž์ธ์„ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ง€๊ฐ์  ๊ท ์ผ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. color-mix()์™€ ์ƒ๋Œ€ ์ƒ‰์ƒ ๊ตฌ๋ฌธ์€ ์ „์ฒ˜๋ฆฌ๊ธฐ ์ƒ‰์ƒ ํ•จ์ˆ˜์˜ ํ•„์š”์„ฑ์„ ์—†์•ฑ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋„๊ตฌ๋“ค์€ ํ•จ๊ป˜ ์›น ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋””์ž์ธ ๋„๊ตฌ๊ฐ€ ์ˆ˜๋…„๊ฐ„ ์ œ๊ณตํ•ด ์˜จ ๊ฒƒ๊ณผ ๋™์ผํ•œ ์ƒ‰์ƒ ๊ธฐ๋Šฅ์„ โ€” ์ด์ œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

OKLCH, LAB, HWB ๋ฐ ํด๋ž˜์‹ HEX/RGB/HSL์„ ํฌํ•จํ•œ ๋ชจ๋“  ์ตœ์‹  CSS ์ƒ‰์ƒ ํ˜•์‹ ๊ฐ„์— ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ๋ฌด๋ฃŒ ์˜จ๋ผ์ธ ์ƒ‰์ƒ ๋ณ€ํ™˜๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ตœ์‹  CSS ์ƒ‰์ƒ ํ•จ์ˆ˜: rgba(), hsl(), oklch() ๊ทธ๋ฆฌ๊ณ  ๊ทธ ์ด์ƒ - CoolTool