Computer >> 컴퓨터 >  >> 프로그래밍 >> CSS

CSS RGB vs RGBa 색상 완벽 정리: 개념부터 UI 카드 활용까지

CSS에서 RGB와 RGBa 색상의 차이점을 알아보고, RGBa의 알파 채널을 활용해 웹사이트에 어울리는 아름답고 시선을 사로잡는 UI 컴포넌트를 만드는 방법을 배워보세요.

RGB와 RGBa란 무엇인가?

RGBRGBa는 CSS에서 사용되는 두 가지 색상 모델로, 16진수(Hex) 색상 코드(예: #282828)를 대신해 사용할 수 있는 방식입니다.

그렇다면 RGB와 RGBa의 차이점은 무엇일까요?

  • RGB: 빨강(Red), 초록(Green), 파랑(Blue)의 약자
  • RGBa: 빨강, 초록, 파랑에 알파(Alpha)가 추가된 형태

알파는 투명도(transparency) 채널로, 색상이 얼마나 투명하게 보일지를 조절할 때 사용합니다.

처음에는 다소 헷갈릴 수 있지만, 곧 이해하게 될 테니 걱정하지 마세요.

rgb() 함수와 rgba() 함수

CSS에서는 RGB와 RGBa 색상을 사용하기 위해 rgb()rgba()라는 두 가지 색상 함수를 제공합니다.

두 함수 모두 빨강, 초록, 파랑 각각의 색상 값(0~255 범위)을 지정해 배경색을 설정하는 데 사용됩니다.

다만 rgb() 함수는 불투명한 단색 배경색만 지정할 수 있습니다:

{   
    /* 100% 불투명한 초록색 */
    background-color: rgb(0, 255, 0); 
}

반면 RGBa는 알파 채널을 통해 투명도까지 함께 조절할 수 있어 훨씬 더 유연하게 활용할 수 있습니다:

{   
    /* 50% 투명한 초록색 */
    background-color: rgb(0, 255, 0, 0.5); 
}

배경색에 투명도를 적용하는 이유

배경색에 투명도를 추가하면 어떤 점이 좋을까요?

예를 들어, 웹사이트에 아래와 같은 시선을 사로잡는 UI 카드를 디자인한다고 가정해 보겠습니다.

CSS RGB vs RGBa 색상 완벽 정리: 개념부터 UI 카드 활용까지

위 UI 카드는 다음 요소들로 구성되어 있습니다:

  • 썸네일 이미지
  • 오버레이(overlay)
  • 그 위에 배치된 텍스트

rgba() 함수의 알파 채널을 활용하면, 배경 이미지가 텍스트에 비해 얼마나 잘 보이게 할지 조절할 수 있습니다. 여기서는 UI 카드 오버레이에 50% 검은색 반투명을 적용했습니다:

.card-overlay {
    background-color: rgba(0, 0, 0, 0.5); /* 0.5 = 50% */
}

왜 하필 50% 투명도를 사용했을까요?

사실 40%나 60%여도 무방합니다. 서로 다른 투명도 수준을 조합한 linear-gradient를 사용할 수도 있죠. 결국 어떤 느낌의 결과물을 원하는지에 따라 달라지는 부분입니다.

알파 값에 따른 투명도 변화

  • 알파 채널 값이 낮을수록(예: 0.1) 투명도가 높아져 배경 이미지가 더 선명하게 드러납니다.
  • 알파 채널 값이 높을수록(예: 0.9) 투명도가 낮아져 배경 이미지가 덜 보입니다.

아래 비교 이미지에서 확인할 수 있듯이, 알파 채널 값은 화면의 가독성과 전체적인 분위기에 큰 영향을 미칩니다.

CSS RGB vs RGBa 색상 완벽 정리: 개념부터 UI 카드 활용까지

오버레이를 너무 밝게 하거나 너무 어둡게 하면 안 됩니다.

중요한 것은 콘텐츠를 사용자에게 어떻게 보여주고 싶은지에 맞춰 최적의 균형점을 찾는 것입니다.

예제 코드

아래는 위 UI 카드 예제에 사용된 전체 HTML과 CSS 코드입니다.

HTML

    <div class="card">
      <div class="card-overlay"></div>
      <img class="card-thumbnail" src="/images/the-north-sea-denmark.png" />
      <div class="card-text">
        <h3 class="card-title">The North Sea of Denmark</h3>
        <p class="card-description">
          Explore the beautiful & dynamic North Sea of Denmark — where every day
          is a new experience.
        </p>
      </div>
    </div>

CSS

.card {
    position: relative;
    height: 400px;
    width: 400px;
}

.card-thumbnail {
    height: 100%;
    width: 100%;
    display: block;
    object-fit: cover;
}

.card-text {
    color: white;
    position: absolute;
    width: 80%;
    max-width: 300px;
    top: 70%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
}

.card-title {
    font-size: 1.45rem;
}
.card-description {
    font-size: 1.15rem;
    margin-top: 0.5rem;
    line-height: 1.4;
}

.card-overlay {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1;
}

이 코드를 참고 자료로 활용하거나, 직접 만드는 UI 카드의 출발점으로 삼아보세요.