<aside> ⚡
색상에 투명도를 적용하고 싶을 때, RGB로 변환하지 않고 hex코드를 바로 사용할 수 없을까?
</aside>
우리는 요소의 색상을 지정할 때, Hex 혹은 RGB 컬러를 주로 사용한다. RGB 컬러에 불투명도를 적용할 때에는, rgba(red, green, blue, opacity) 마지막 값인 Opacity를 지정하면 된다. 하지만 Hex컬러는 어떻게 불투명도를 조정할 수 있을까?
지금까지는 Hex컬러를 RGB로 변환하여 사용해 왔다😂 하지만 앞으로 아래의 방법들을 사용한다면, 더 편하게 불투명도를 지정할 수 있다!

우리가 주로 사용하던 Hex컬러는 6자리로 이루어진 Hex6로, 두 자리씩 끊어 빨강, 초록, 파랑을 표현한다.
그리고 오른쪽의 조금 생소한 8자리 색상 코드는 Hex8로, 빨강, 초록, 파랑 뒤에 불투명도를 표현할 수 있다.즉, Hex6에 투명도를 적용하려면 불투명도에 해당하는 Hex코드를 Hex6에 붙여 Hex8로 만들어야 한다.
다음은 투명도에 해당하는 hex코드를 10단위로 정리한 표이다.
| Opacity(%) | Hex Code |
|---|---|
| 100 | FF |
| 90 | E6 |
| 80 | CC |
| 70 | B3 |
| 60 | 99 |
| 50 | 80 |
| 40 | 66 |
| 30 | 4D |
| 20 | 33 |
| 10 | 1A |
| 0 | 00 |
rgba() 함수 사용하기기존 CSS에서 RGBA를 사용하기 위해서는 해당 색상의 RGB 값을 알아야 했다.
색상이 Hex 코드로만 주어진 경우에는 RGB 값으로 변환하는 작업이 필요했다.
하지만 SCSS에서는 HEX컬러를 바로 rgba() 함수에 사용할 수 있다.
rgba(HEX값,불투명도)
/* SCSS */
#box {
background-color: #000;
.red50 {
color: rgba(red, 0.5);
}
.red75 {
color: rgba(red, 0.75);
}
.red100 {
color: rgba(red, 1);
}
}
/* Compiled to */
#box {
background-color: #000;
}
#box .red50 {
color: rgba(255, 0, 0, 0.5);
}
#box .red75 {
color: rgba(255, 0, 0, 0.75);
}
#box .red100 {
color: red;
}