Less.js: 뢈투λͺ…도가 μžˆλŠ” 16μ§„μˆ˜ 색상이 μ—‰ν‚΄

에 λ§Œλ“  2018λ…„ 07μ›” 17일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: less/less.js

[email protected]둜 μ—…λ°μ΄νŠΈλœ ν›„ λ‹€μŒκ³Ό 같이 λ Œλ”λ§ν•˜μ—¬ 뢈투λͺ…도λ₯Ό μ§€μ •ν•©λ‹ˆλ‹€.

배경색: #55555599; --> #55555599 99; (μœ νš¨ν•˜μ§€)
배경색: #5559; --> #5559 9; (μœ νš¨ν•˜μ§€)

bug medium priority

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚΄κ°€ μ—…λ°μ΄νŠΈ ν•œ color() 인식 κΈ°λŠ₯을 #RRGGBBAA 뿐만 μ•„λ‹ˆλΌ λ™μΌν•œ 색상 κ³΅κ°„μ˜ 색상을 μœ μ§€ν•˜κΈ° μœ„ν•΄ 일뢀 μ—…λ°μ΄νŠΈλ₯Όν•˜κ³ . κ³Όκ±°μ—λŠ” λΈŒλΌμš°μ € ν˜Έν™˜μ„±μ„ μœ„ν•΄ λͺ¨λ“  것이 λ‹¨μˆœ 16μ§„μˆ˜(μ•ŒνŒŒ = 1인 경우) λ˜λŠ” rgba() λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이제 μ‚¬μš©λœ λŒ€λ‘œ 색상 값을 μœ μ§€ν•˜μ—¬ Lessλ₯Ό 더 일관성 있게 μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 16μ§„μˆ˜ 색상과 ν‚€μ›Œλ“œλŠ” 이미 μžˆλŠ” κ·ΈλŒ€λ‘œ 좜λ ₯λ˜μ—ˆμ§€λ§Œ λ‚΄ PR을 μ‚¬μš©ν•˜λ©΄ Lessκ°€ hsl() 및 hsla() λ₯Ό μžˆλŠ” κ·ΈλŒ€λ‘œ(값을 ν΄λž¨ν•‘ν•˜λŠ” 경우 μ œμ™Έ) 좜λ ₯ν•˜κ³  색상 μ΄ν›„μ˜ 색상 곡간도 λ³΄μ‘΄ν•©λ‹ˆλ‹€. darken() λ˜λŠ” spin() 와 같은 μž‘μ—….

λͺ¨λ“  14 λŒ“κΈ€

LessλŠ” 이전에 16μ§„μˆ˜ rgba ν‘œκΈ°λ²•λ„ μ§€μ›ν–ˆμŠ΅λ‹ˆκΉŒ?

@rjgotten μ§μ ‘μ μœΌλ‘œ, μ•„λ‹ˆμš”. κ·ΈλŸ¬λ‚˜ 인식할 수 μ—†λŠ” 값은 κ±΄λ„ˆλ›°(보쑴)ν•΄μ•Ό ν•©λ‹ˆλ‹€. 그것이 μ•„λ§ˆλ„ νšŒκ·€μΌ κ²ƒμž…λ‹ˆλ‹€.

@rjgotten @tapsaman 아직 μ§€μ›λ˜μ§€ μ•Šμ€ 만큼 νšŒκ·€λΌκ³  μƒκ°ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 이 ν˜•μ‹μ„ μ§€μ›ν•˜κΈ° μœ„ν•΄ 색상 λ…Έλ“œμ— λŒ€ν•œ λͺ‡ 가지 μ •κ·œμ‹ λ³€κ²½ 및 변경에 λΆˆκ³Όν–ˆμŠ΅λ‹ˆλ‹€. 확인을 μœ„ν•΄ PR 의 ν…ŒμŠ€νŠΈ λ₯Ό

이것이 ν•˜λŠ” ν•œ κ°€μ§€λŠ” ν–₯ν›„ ν˜Έν™˜μ„±μ„ μœ„ν•΄ "잘λͺ»λœ" 색상을 μ œκ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 색상 μž‘μ—…μ—μ„œ "잘λͺ»λœ" 색상을 μ‚¬μš©ν•˜λ €κ³  ν•  λ•ŒκΉŒμ§€λŠ” 평가 μ‹œκ°„μ— 였λ₯˜κ°€ λ°œμƒν•΄μ•Ό ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 3.0+의 LessλŠ” 속성 값을 더 κ΄€λŒ€ν•˜λ―€λ‘œ μ œκ±°ν•˜λŠ” 것이 ν•©λ¦¬μ μœΌλ‘œ λ³΄μ˜€μŠ΅λ‹ˆλ‹€.

ν•œ 가지: ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” λΈŒλΌμš°μ €μ— λŒ€ν•΄ Lessκ°€ #RRGGBBAA λ₯Ό λ³€ν™˜ν•΄μ•Ό ν•©λ‹ˆκΉŒ? ν˜„μž¬ IE/EdgeλŠ” μ§€μ›ν•˜μ§€ μ•ŠμœΌλ©° 일뢀 λ‹€λ₯Έ λΈŒλΌμš°μ €λ„ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. MicrosoftλŠ” 곧 κ΅¬ν˜„ν•  κ²ƒμ΄λΌλŠ” μ–΄λ– ν•œ ν‘œμ‹œλ„ ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ΅¬ν˜„ν•œ μ΄μœ λŠ” ν™•μ‹€νžˆ 컬러 νŒŒμ‹± κΈ°λŠ₯μ—μ„œ νŒŒμ‹±μ— λ¬Έμ œκ°€ μžˆμ—ˆκΈ° λ•Œλ¬Έμ΄λ‹€. 전체 λ¬Έμžμ—΄μ„ 작고 μƒ‰μƒμœΌλ‘œ μ €μž₯ν–ˆμ§€λ§Œ 색상이 4 λ˜λŠ” 8자인 경우 νŒŒμ„œλ₯Ό μ§„ν–‰ν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λ§ˆμ§€λ§‰ 숫자λ₯Ό λ°˜λ³΅ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

νŽΈμ§‘ : λ‚΄κ°€ ν•œ 것은 μž‘μ„±μžκ°€ rgba() λ₯Ό 톡해 rgba(#55555599) rgba() ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λŠ” 것을 ν—ˆμš©ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ€ 이와 κ΄€λ ¨ν•˜μ—¬ μ œκ°€ 가지고 μžˆλŠ” μƒκ°μ˜ λͺ©λ‘μž…λ‹ˆλ‹€.

  • λΈŒλΌμš°μ € 지원을 μ˜μ‹ν•˜λŠ” 것이 Less의 일인지 잘 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€.
  • Less ν•¨μˆ˜λ₯Ό CSS ν•¨μˆ˜μ™€ λ³‘ν•©ν•˜λŠ” 것은 "μœ„ν—˜ν•˜κ²Œ λŠκ»΄μ§€μ§€λ§Œ" κ·Έ 이유λ₯Ό 말할 수 μ—†μŠ΅λ‹ˆλ‹€.
  • μš°λ¦¬λŠ” 이미 #AARRGGBB λ₯Ό 좜λ ₯ν•˜λŠ” argb() ν•¨μˆ˜λ₯Ό _DO_ 가지고 μžˆμŠ΅λ‹ˆλ‹€.
  • color() ν•¨μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. #AARRGGBB , #ARGB ν•©λ‹ˆκΉŒ?
  • color: #AA334455; 및 color: #A345; λŠ” ν•΄λ‹Ή ν˜•μ‹μ„ _μ΄ν•΄ν•˜λŠ”_ λΈŒλΌμš°μ €κ°€ λ§Žμ§€ μ•Šλ”λΌλ„ μœ νš¨ν•œ(λ˜λŠ” ν—ˆμš©λ˜λŠ”) CSSμž…λ‹ˆλ‹€.
  • rbga() μΊμŠ€νŒ…μ΄ λ―Έλ„λŸ¬μš΄ 건지 κΆκΈˆν•©λ‹ˆλ‹€. rgb() , hsl() 및 hsla() λͺ¨λ‘ CSS ν•¨μˆ˜μž…λ‹ˆλ‹€.
  • 반면 Lessκ°€ CSS의 μƒμœ„ μ§‘ν•©μ΄λΌλŠ” 점을 κ°μ•ˆν•˜λ©΄ rgba() λŠ” 맀우 μ˜λ―Έκ°€ μžˆμŠ΅λ‹ˆλ‹€.

tl;dr: 제 μ „λ°˜μ μΈ 첫인상은 color() ν•¨μˆ˜κ°€ 8자리 및 4자리 ARGB λ¬Έμžμ—΄μ„ μ§€μ›ν•˜λŠ”μ§€ 확인해야 ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. μ–΄μ¨Œλ“  그것이 λͺ©μ μΈ 것 κ°™κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.

Less ν•¨μˆ˜λ₯Ό CSS ν•¨μˆ˜μ™€ λ³‘ν•©ν•˜λŠ” 것은 "μœ„ν—˜ν•˜κ²Œ λŠκ»΄μ§€μ§€λ§Œ" κ·Έ 이유λ₯Ό 말할 수 μ—†μŠ΅λ‹ˆλ‹€.

κ·Έ λ°°λŠ” ν•­ν•΄ν–ˆμŠ΅λ‹ˆλ‹€. rgba() λŠ” μ˜€λž˜μ „λΆ€ν„° Less ν•¨μˆ˜λ‘œ μ‘΄μž¬ν•΄ μ™”μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 주된 μ΄μœ λŠ” lighten() 와 같은 것에 색상을 전달할 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. 즉, rgba() λŠ” λ‚΄λΆ€μ μœΌλ‘œ 색상을 λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ‹€μ œλ‘œ Less의 색상 ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ rgba() _have_와 같은 ν•¨μˆ˜κ°€ Less ν•¨μˆ˜κ°€ λ©λ‹ˆλ‹€. (예: lighten(rgba(50,50,50,0.5), 50%)) 그렇지 μ•ŠμœΌλ©΄ μ•Œ 수 μ—†λŠ” ν•¨μˆ˜ 호좜일 λΏμž…λ‹ˆλ‹€. 색상을 μ‘°μž‘ν•˜λ €λ©΄ 색상이 μ‹€μ œλ‘œ _is_인지 μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€.

rbga() μΊμŠ€νŒ…μ΄ λ―Έλ„λŸ¬μš΄ μŠ¬λ‘œν”„μΈμ§€ κΆκΈˆν•©λ‹ˆλ‹€. rgb(), hsl() 및 hsla()도 λͺ¨λ‘ CSS ν•¨μˆ˜μž…λ‹ˆλ‹€.

λ„€, 그런 것 κ°™μ•„μš”. ν•˜μ§€λ§Œ μΊμŠ€νŒ…μ€ 잘λͺ»λœ μƒκ°μž…λ‹ˆλ‹€. λ˜ν•œ λΈŒλΌμš°μ €μ—μ„œ ν—ˆμš©λ˜κ±°λ‚˜ ν—ˆμš©λ  rgba(#777777, 0.5) ν˜•μ‹μ„ ν™œμ„±ν™”ν•©λ‹ˆλ‹€. hsla() ν™•μž₯ν•˜μ§€ μ•ŠλŠ” 것은 μ‚¬μ‹€μ΄μ§€λ§Œ λ‚΄λΆ€ κ΅¬ν˜„μ€ 훨씬 더 μ–΄λ ΅κ³  μž‘λ™ν•˜λŠ” λ©”μ„œλ“œκ°€ μžˆλŠ” 경우 ν•„μš”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

color() ν•¨μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. #AARRGGBB, #ARGBλ₯Ό μ§€μ›ν•©λ‹ˆκΉŒ?

μ•„λ‹ˆμš”, 지적해 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ™œ κ·Έ κΈ°λŠ₯이 μ „ν˜€ μ‘΄μž¬ν•˜λŠ”μ§€ ν˜Όλž€ μŠ€λŸ½μ§€λ§Œ?

λ˜ν•œ λΈŒλΌμš°μ €μ—μ„œ ν—ˆμš©λ˜κ±°λ‚˜ ν—ˆμš©λ  rgba(#777777, 0.5) ν˜•μ‹μ„ ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

λ‹€μ‹œ λ§ν•˜λ©΄, 이 양식은 CSSμ—μ„œ μœ νš¨ν•œ μƒ‰μƒμž…λ‹ˆλ‹€: rgba(<Color> [, opacity]) . λ”°λΌμ„œ 이것을 ν—ˆμš©ν•˜μ§€ μ•Šμ„ μ΄μœ κ°€ μ—†μŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” 이미 #AARRGGBB λ₯Ό 좜λ ₯ν•˜λŠ” argb() ν•¨μˆ˜λ₯Ό _DO_ 가지고 μžˆμŠ΅λ‹ˆλ‹€.

ARGB μˆœμ„œλŠ” 특히 Internet Explorer의 λ ˆκ±°μ‹œ DirectShow 필터에 μ‚¬μš©λ©λ‹ˆλ‹€.
CSS의 8자리 λ˜λŠ” 4자리 16μ§„μˆ˜ ꡬ문은 afaik RGBA μˆœμ„œμž…λ‹ˆλ‹€.

두 가지λ₯Ό λͺ¨λ‘ μ§€μ›ν•˜λ©΄ #000000FF λ¦¬ν„°λŸ΄μ΄ ARGB(μ™„μ „ 투λͺ… νŒŒλž‘) λ˜λŠ” RGBA(μ™„μ „ 뢈투λͺ… κ²€μ •)λ₯Ό λ‚˜νƒ€λ‚΄λŠ”μ§€ μ—¬λΆ€λ₯Ό μ§μ ‘μ μœΌλ‘œ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€.

λ‚΄ μ‘°μ–Έ: ARGB 색상 지원을 μ€‘λ‹¨ν•˜μ‹­μ‹œμ˜€. μ˜€λž«λ™μ•ˆ μ‚¬μš©λ˜μ§€ μ•Šμ€ 석기 μ‹œλŒ€ IE λΈŒλΌμš°μ €μ—λ§Œ ν•„μš”ν•©λ‹ˆλ‹€.

λ‚΄ μ‘°μ–Έ: ARGB 색상 지원을 μ€‘λ‹¨ν•˜μ‹­μ‹œμ˜€. μ˜€λž«λ™μ•ˆ μ‚¬μš©λ˜μ§€ μ•Šμ€ 석기 μ‹œλŒ€ IE λΈŒλΌμš°μ €μ—λ§Œ ν•„μš”ν•©λ‹ˆλ‹€.

IE11 λ―Έλ§Œμ—μ„œλŠ” 지원을 ν…ŒμŠ€νŠΈν•˜μ§€ μ•ŠμœΌλ―€λ‘œ 이것이 쒋은 μƒκ°μž…λ‹ˆλ‹€.

@rjgotten μ‚¬μš© 쀑단을 μœ„ν•œ λ‹€λ₯Έ κΈ°λŠ₯ 후보(λ˜λŠ” κΈ°λŠ₯)κ°€ μžˆμŠ΅λ‹ˆκΉŒ? μ™œ λˆ„κ΅°κ°€κ°€ Lessμ—μ„œ _string_으둜 색상을 μž‘μ„±ν•œ λ‹€μŒ color() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μƒ‰μƒμœΌλ‘œ λ³€ν™˜ν•΄μ•Ό ν•˜λŠ”μ§€ μ—¬μ „νžˆ ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€. 4λ…„ 전에 μΆ”κ°€λœ 것 κ°™μŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” μ™œ λˆ„κ΅°κ°€κ°€ Lessμ—μ„œ 색상을 λ¬Έμžμ—΄λ‘œ μž‘μ„±ν•œ λ‹€μŒ color() ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ μƒ‰μƒμœΌλ‘œ λ³€ν™˜ν•΄μ•Ό ν•˜λŠ”μ§€ μ—¬μ „νžˆ ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ 상상할 수 μžˆλŠ” μœ μΌν•œ 것은 μžλ™ν™”λœ μΆ”μΆœ μ‹œλ‚˜λ¦¬μ˜€μž…λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ SVG λ°°κ²½ 이미지λ₯Ό λ‚΄λΆ€ κ²€μ‚¬ν•˜κ³  λ‹€λ₯Έ κ·œμΉ™μ˜ 색상 μ‚¬μš©κ³Ό μΌμΉ˜ν•˜λ„λ‘ 색상 μ •μ˜λ₯Ό μΆ”μΆœν•˜λŠ” λ³΅μž‘ν•œ ν”ŒλŸ¬κ·ΈμΈ λ“±μž…λ‹ˆλ‹€.

μƒλ‹Ήνžˆ μ‹¬μ˜€ν•œ 엣지 μΌ€μ΄μŠ€λΌκ³  μƒκ°ν•©λ‹ˆλ‹€.

@rjgotten λΆˆν–‰νžˆλ„ λ‚˜λŠ” 그것이 μ–΄λ””μ—μ„œ μ™”λŠ”μ§€ μ„€λͺ…ν•˜λŠ” λ¬Έμ œμ—μ„œ μ–΄λ–€ 기둝도 찾을 수 μ—†μ—ˆμŠ΅λ‹ˆλ‹€.

λ‚΄κ°€ μ—…λ°μ΄νŠΈ ν•œ color() 인식 κΈ°λŠ₯을 #RRGGBBAA 뿐만 μ•„λ‹ˆλΌ λ™μΌν•œ 색상 κ³΅κ°„μ˜ 색상을 μœ μ§€ν•˜κΈ° μœ„ν•΄ 일뢀 μ—…λ°μ΄νŠΈλ₯Όν•˜κ³ . κ³Όκ±°μ—λŠ” λΈŒλΌμš°μ € ν˜Έν™˜μ„±μ„ μœ„ν•΄ λͺ¨λ“  것이 λ‹¨μˆœ 16μ§„μˆ˜(μ•ŒνŒŒ = 1인 경우) λ˜λŠ” rgba() λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이제 μ‚¬μš©λœ λŒ€λ‘œ 색상 값을 μœ μ§€ν•˜μ—¬ Lessλ₯Ό 더 일관성 있게 μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 16μ§„μˆ˜ 색상과 ν‚€μ›Œλ“œλŠ” 이미 μžˆλŠ” κ·ΈλŒ€λ‘œ 좜λ ₯λ˜μ—ˆμ§€λ§Œ λ‚΄ PR을 μ‚¬μš©ν•˜λ©΄ Lessκ°€ hsl() 및 hsla() λ₯Ό μžˆλŠ” κ·ΈλŒ€λ‘œ(값을 ν΄λž¨ν•‘ν•˜λŠ” 경우 μ œμ™Έ) 좜λ ₯ν•˜κ³  색상 μ΄ν›„μ˜ 색상 곡간도 λ³΄μ‘΄ν•©λ‹ˆλ‹€. darken() λ˜λŠ” spin() 와 같은 μž‘μ—….

λ”°λΌκ°€κ² μŠ΅λ‹ˆλ‹€. νƒ‘μŠΉ μ€‘μž…λ‹ˆλ‹€. argb() ν•¨μˆ˜λŠ” 이전 ν˜•μ‹μ— λŒ€ν•œ λͺ¨λ“  μš”κ΅¬ 사항에 λŒ€ν•œ 닡변이라고 μƒκ°ν•©λ‹ˆλ‹€. 이것은 쒋은 μ›€μ§μž„μž…λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰