HTML&CSS

[CSS] 15. 변수 (CSS Custom Properties)

인생아 2024. 9. 20. 17:10
반응형

CSS 변수CSS Custom Properties라고도 불리며, 반복적으로 사용하는 값을 변수처럼 저장하고 재사용할 수 있게 도와줍니다. CSS에서 코드의 유연성을 높이고, 유지보수를 쉽게 할 수 있도록 설계된 기능으로, 동일한 값이 여러 군데에 사용될 때 특히 유용합니다. 이 변수를 사용하면, 나중에 변경이 필요할 때 모든 값을 하나하나 수정할 필요 없이 변수만 변경하면 됩니다.

CSS 변수의 선언과 사용

CSS 변수는 일반적인 CSS 속성과는 달리, -- (이중 대시)로 시작하는 이름으로 선언됩니다. 변수를 선언하는 방법은 다음과 같습니다:

:root {
  --main-color: #3498db;
  --padding-size: 20px;
}

:root는 문서의 최상위 요소로, 전역에서 변수를 사용할 수 있도록 정의하는 데 사용됩니다. 이후 이 변수를 CSS 속성 내에서 활용할 때는 var() 함수를 사용합니다.

.button {
  background-color: var(--main-color);
  padding: var(--padding-size);
}

위 예제에서, .button 클래스는 background-color로 --main-color, padding 값으로 --padding-size 변수를 사용하고 있습니다. 만약 --main-color를 다른 색상으로 바꾸고 싶다면, --main-color 변수를 정의한 부분만 수정하면 됩니다.

기본값 설정

CSS 변수는 값을 설정하지 않았을 때 사용할 기본값을 지정할 수도 있습니다. 이 기능은 변수를 사용할 때, 값이 없거나 정의되지 않은 경우에 기본값을 대신 사용할 수 있게 해줍니다.

.button {
  background-color: var(--main-color, #2ecc71); /* 변수가 없을 때 #2ecc71 사용 */
}

이 경우, --main-color가 정의되지 않았다면 #2ecc71이 기본값으로 적용됩니다.

예제: 테마 적용하기

CSS 변수는 테마를 적용할 때 매우 유용합니다. 예를 들어, 다크 모드와 라이트 모드를 지원하는 사이트에서 테마에 따라 색상을 쉽게 바꿀 수 있습니다.

:root {
  --background-color: white;
  --text-color: black;
}

.dark-mode {
  --background-color: black;
  --text-color: white;
}

body {
  background-color: var(--background-color);
  color: var(--text-color);
}

여기서 .dark-mode 클래스가 적용되면, --background-color--text-color 값이 변경되어 다크 모드가 구현됩니다. 이를 통해 간단히 테마 전환을 구현할 수 있습니다.

변수의 범위와 상속

CSS 변수는 선언된 요소와 그 하위 요소에서만 사용할 수 있습니다. 예를 들어, 특정 클래스 내에서만 변수를 사용할 수 있도록 정의할 수도 있습니다:

.container {
  --main-color: #e74c3c;
}

.button {
  background-color: var(--main-color); /* .container의 하위에 있는 경우에만 사용 가능 */
}

여기서 .container 내의 요소만 --main-color 변수를 사용할 수 있습니다. CSS 변수상속되기 때문에, 하위 요소에서도 변수를 사용할 수 있는 특징이 있습니다.

CSS 변수의 장점

  • 유지보수가 용이합니다. 같은 값을 여러 곳에서 사용하는 경우, 변수 하나만 변경하면 모든 값이 업데이트됩니다.
  • 테마 설정에 유용합니다. 다크 모드, 라이트 모드 같은 테마 변경을 간단하게 구현할 수 있습니다.
  • 유연성이 높아져 다양한 브라우저 환경에서도 일관된 디자인을 유지할 수 있습니다.

예제: 간단한 버튼 스타일링

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>CSS Variables Example</title>
  <style>
    :root {
      --button-bg-color: #3498db;
      --button-padding: 10px;
      --button-font-size: 16px;
    }
    .button {
      background-color: var(--button-bg-color);
      padding: var(--button-padding);
      font-size: var(--button-font-size);
      color: white;
      border: none;
      border-radius: 5px;
      cursor: pointer;
    }
  </style>
</head>
<body>

<button class="button">Click Me</button>

</body>
</html>

이 예제에서는 --button-bg-color, --button-padding, --button-font-size 변수를 선언하여 버튼 스타일을 정의하고 있습니다. 나중에 버튼 스타일을 변경하고 싶다면 변수만 수정하면 됩니다.

결론

CSS 변수는 코드의 유지보수유연성을 높여주는 강력한 도구입니다. 이를 통해 동일한 값을 여러 번 사용할 때 효율적으로 관리할 수 있으며, 테마 적용 및 다양한 스타일 변경 작업을 훨씬 간편하게 처리할 수 있습니다.

참고 사이트

반응형