CSS - 커스텀 속성: 초보자를 위한 친절한 가이드

안녕하세요, 미래의 CSS 마법사 여러분! ? 오늘 우리는 CSS 커스텀 속성의 세상으로 흥미로운 여행을 떠납니다. 프로그래밍에 새로운 사람이라면 걱정 마세요 - 저는 여러분의 친절한 안내자가 되겠습니다. 단계별로 함께 공부하겠습니다. 이 튜토리얼이 끝나면, 여러분은 CSS 슈퍼파워로 친구들을 놀라게 할 수 있을 것입니다!

CSS - Custom Properties

CSS 커스텀 속성이란?

먼저 기본적인 것으로 시작해보겠습니다. CSS 커스텀 속성, 또는 CSS 변수는 마법의 컨테이너처럼 여러분의 스타일시트 전체에서 사용할 수 있는 값을 저장합니다. 그것들을 좋아하는 색상, 크기, 또는 다른 CSS 값을 저장할 수 있는 작은 상자라고 상상해보세요.

커스텀 속성을 사용하는 이유는 무엇인가요?

  1. 재사용성: 한 번 작성하고到处 사용할 수 있습니다!
  2. 유연성: 한 곳에서 값을 변경하면 어디서나 변경이 적용됩니다.
  3. 유지보수성: 스타일을 업데이트하고 관리하기 쉬워집니다.

문법: 커스텀 속성 선언 및 사용 방법

이제 코드로 들어가보겠습니다! 커스텀 속성을 선언하는 방법은 다음과 같습니다:

:root {
--my-favorite-color: #ff6347;
}

여기서 우리는 --my-favorite-color라는 커스텀 속성을 만들고 아름다운 토마토 빨간색을 값으로 지정하고 있습니다. :root 선택자는 이 변수가 문서 전체에서 사용 가능하다는 뜻입니다.

이 속성을 사용하려면 var() 함수를 사용합니다:

.tomato-text {
color: var(--my-favorite-color);
}

이제 tomato-text 클래스를 가진 모든 요소는 우리의 좋아하는 토마토 빨간색을 가집니다!

가능한 값: 커스텀 속성에 저장할 수 있는 것은 무엇인가요?

커스텀 속성은 매우 다양합니다. 거의 모든 CSS 값을 저장할 수 있습니다:

값 유형 예시
색상 --main-color: #3498db;
길이 --spacing: 20px;
문자열 --font-family: 'Arial', sans-serif;
숫자 --z-index: 100;
계산 --width: calc(100% - 20px);

적용 범위: 커스텀 속성을 어디에서 사용할 수 있나요?

단刀퍼즐! 커스텀 속성은 어디서나 CSS 속성 값으로 사용할 수 있습니다. 몇 가지 예시를 보겠습니다:

:root {
--primary-color: #3498db;
--secondary-color: #2ecc71;
--main-font: 'Helvetica', sans-serif;
--spacing: 20px;
}

.button {
background-color: var(--primary-color);
color: white;
font-family: var(--main-font);
padding: var(--spacing);
margin-bottom: var(--spacing);
}

.section {
border: 2px solid var(--secondary-color);
}

CSS 커스텀 속성 - 값 설정

CSS에서 커스텀 속성 값을 설정할 수 있지만, JavaScript에서도 설정할 수 있다는 것을 알고 계신가요? 이는 동적 스타일링의 가능성을 열어줍니다!

// JavaScript를 사용하여 커스텀 속성 값 설정
document.documentElement.style.setProperty('--primary-color', '#e74c3c');

CSS 커스텀 속성 - 색상 분할

이리하여 꽤 재미있는 트릭을 소개합니다: 색상을 구성 요소로 분할하고 각 부분에 커스텀 속성을 사용할 수 있습니다!

:root {
--red: 255;
--green: 99;
--blue: 71;
}

.tomato-background {
background-color: rgb(var(--red), var(--green), var(--blue));
}

CSS 커스텀 속성 - 그림자

커스텀 속성은 복잡한 속성을 더 쉽게 관리할 수 있게 합니다. 예를 들어, box-shadow:

:root {
--shadow-color: rgba(0, 0, 0, 0.2);
--shadow-offset-x: 5px;
--shadow-offset-y: 5px;
--shadow-blur: 10px;
}

.shadowed-box {
box-shadow: var(--shadow-offset-x) var(--shadow-offset-y) var(--shadow-blur) var(--shadow-color);
}

CSS 커스텀 속성 - 그라디언트

그라디언트 역시 커스텀 속성으로 간편하게 사용할 수 있습니다:

:root {
--gradient-start: #3498db;
--gradient-end: #2ecc71;
}

.gradient-background {
background: linear-gradient(to right, var(--gradient-start), var(--gradient-end));
}

CSS 커스텀 속성 - 그리드

커스텀 속성은 그리드 레이아웃을 더 유연하게 만들 수 있습니다:

:root {
--grid-columns: 3;
--grid-gap: 20px;
}

.grid-container {
display: grid;
grid-template-columns: repeat(var(--grid-columns), 1fr);
gap: var(--grid-gap);
}

CSS 커스텀 속성 - 변환

변환은 더 읽기 쉽고 유지보수하기 쉬워집니다:

:root {
--rotate-angle: 45deg;
--scale-factor: 1.2;
}

.transformed-element {
transform: rotate(var(--rotate-angle)) scale(var(--scale-factor));
}

CSS 커스텀 속성 - 단위 유형 결합

커스텀 속성을 단위와 결합할 수도 있습니다:

:root {
--base-size: 10;
}

.sized-element {
width: calc(var(--base-size) * 1px);
height: calc(var(--base-size) * 2px);
}

CSS 커스텀 속성 - 캐스케이드 사용

커스텀 속성은 CSS 캐스케이드를 따르므로 특정 요소에 대해 재정의할 수 있습니다:

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

.dark-theme {
--text-color: white;
}

p {
color: var(--text-color);
}

CSS 커스텀 속성 - :root

우리는 :root을 많이 사용했습니다. 이는 문서 트리의 루트 요소를 나타내는 특별한 조건입니다. 일반적으로 <html> 요소를 가리킵니다. 이는 글로벌 커스텀 속성을 정의하는 데 적합한 곳입니다.

CSS 커스텀 속성 - !important와 결합

커스텀 속성은 !important와 결합할 수 있습니다:

.override-color {
color: var(--text-color) !important;
}

CSS 커스텀 속성 - 대체 값

커스텀 속성이 정의되지 않았을 때 대체 값을 제공할 수 있습니다:

.fallback-example {
color: var(--undefined-color, blue);
}

CSS 커스텀 속성 - @property

@property 규칙은 커스텀 속성의 특성을 정의하는 흥미로운 새로운 기능입니다:

@property --my-color {
syntax: '<color>';
inherits: false;
initial-value: #c0ffee;
}

이는 --my-color 커스텀 속성이 유효한 색상 값이어야 하며 부모 요소로부터 상속되지 않으며 초기 값이 #c0ffee임을 정의합니다.

그렇게 하면, 우리는 오늘 많은 내용을 다루었습니다. CSS 커스텀 속성의 기본에서 몇 가지 고급 기술까지! 이 개념을 습득하려면 연습이 중요합니다. 그러니 forth, 실험하고 새로운 CSS 슈퍼파워로 놀라운 디자인을 만들어보세요!

다음 번에 만나까지, 행복한 코딩 되세요! ??‍??‍?

Credits: Image by storyset