CSS · 25 사용자 정의 속성과 테마
단계: 모션·토큰·렌더링 검증 · 편집 가능한 예제 · 저장 ID: css-step-25
목표와 학습 후 역량
- 세 요소의 색·간격 토큰 연결을 기록한다.
- 두 테마에서 본문 대비와 포커스 표시를 확인한다.
선수 지식
24단위 「Cascade layers로 규칙 정리」의 결과물과 실험 기록
핵심 개념과 설명
값 공유
CSS 사용자 정의 속성은 cascade와 상속에 참여합니다. 선언 위치에 따라 같은 이름의 값이 다르게 해석됩니다.
대체값
var의 fallback은 참조 변수가 없거나 유효하지 않을 때 사용됩니다. 최종 속성 문법에 맞지 않는 값은 계산 시 문제가 될 수 있습니다.
실습 준비
예제 화면의 실행 범위 안내를 먼저 확인하세요. 다음은 과제를 별도 프로젝트로 확장할 때의 준비 환경입니다. 별도 로컬 프로젝트에서 직접 구현하고 브라우저 개발자 도구로 확인하세요. 별도 폴더의 index.html에 콘텐츠를 만들고 link rel="stylesheet"로 실습 CSS를 연결하세요. 개발자 도구에서 뷰포트·계산 스타일·성능 기록을 확인합니다.
연결된 예제는 출발점입니다. 아래 과제 전체가 완성된 코드는 아니며, 예제의 지원 범위를 넘는 작업은 별도 프로젝트에서 수행하세요.
실습 과제
- index.html에 카드·입력·버튼과 두 테마 조건의 콘텐츠를 준비하고 tokens.css를 연결하세요.
- 색상·간격·반경 토큰을 :root에 정의하고 data-theme로 어두운 테마를 덮으세요.
- 카드·입력·버튼과 두 테마 조건으로 실행하세요. 확인할 결과: 세 요소의 색·간격 토큰 연결을 기록한다. 두 테마에서 본문 대비와 포커스 표시를 확인한다. 예상과 실제 결과는 구분해 기록하세요.
관찰할 변수
| 변수 | 기준 조건 | 바꿀 조건 | 예상할 변화·검증 가설 |
|---|---|---|---|
| 테마 | light | dark | 실행 전 가설: 공유 토큰을 쓰는 요소가 함께 바뀔 것이다. 다른 조건은 고정하고 실행 후 실제 결과를 따로 기록합니다. |
표의 예상은 측정 결과가 아닙니다. 한 번에 한 조건만 바꾸고 실제 결과가 다르면 원인을 기록하세요.
완료 조건
- 세 요소의 색·간격 토큰 연결을 기록한다.
- 두 테마에서 본문 대비와 포커스 표시를 확인한다.
자가 점검
- 사용자 정의 속성은 전역 상수인가요?
- 토큰 값이 속성 문법과 맞지 않으면 어떻게 되나요?
공식 참고
연결된 예제와 실행 범위
실제 CSS 문서를 렌더하고 DOM 치수와 계산 스타일을 검사합니다. Shadow DOM에서 문서 body/html 선택자를 범위화합니다. @media는 외부 미리보기 viewport에 반응하며 폭 슬라이더는 컨테이너만 변경합니다. 네트워크·폼 이동·iframe 실행은 제한됩니다.
원본 코드·기록은 자동으로 덮어쓰지 않습니다. 기존 예제를 초기화할 때도 필기는 유지됩니다.
다음 학습
이전: Cascade layers로 규칙 정리 · 다음: 레이아웃과 페인트 관찰