본문으로 건너뛰기
웹 개발 기초집LESSON 12

글꼴·색상·CSS 변수

난이도입문
예상 시간25분
선수지식이전 강의

12강. 글꼴·색상·CSS 변수

이번 강의의 결과물은 일관된 글꼴, 행간, 색상, 간격 값을 이름으로 관리하는 포트폴리오 테마입니다.

1. 이번 강의에서 해결할 문제​

같은 파란색과 간격 값을 여러 규칙에 직접 반복하면 디자인을 바꿀 때 누락이 생깁니다. 읽기 편한 기본 글자 규칙을 정하고 반복되는 디자인 값을 CSS 사용자 정의 속성으로 관리합니다.

학습 목표​

  • 같은 파란색과 간격 값을 여러 규칙에 직접 반복하면 디자인을 바꿀 때 누락이 생깁니다. 읽기 편한 기본 글자 규칙을 정하고 반복되는 디자인 값을 CSS 사용자 정의 속성으로 관리합니다.
  • 핵심 개념을 코드 예시와 짧은 실습에 적용하고 결과를 설명합니다.

2. 핵심 개념​

  • font-family: 사용할 글꼴 후보를 순서대로 지정합니다.
  • font-size: 글자 크기입니다. rem은 루트 요소의 글자 크기를 기준으로 합니다.
  • line-height: 줄 사이 높이입니다. 단위 없는 값은 현재 글자 크기에 비례합니다.
  • color: 글자색, background-color: 배경색입니다.
  • 사용자 정의 속성: --color-primary처럼 작성자가 이름 붙인 값입니다.
  • var(--color-primary): 저장한 값을 다른 속성에서 사용합니다.
:root {
--color-primary: #1d4ed8;
}

:root에 공통 값을 선언하면 문서 전체에서 사용할 수 있습니다. W3C 표준은 사용자 정의 속성이 반복 값을 의미 있는 이름으로 관리하고 한 곳의 변경을 여러 사용처에 전달할 수 있게 한다고 설명합니다. CSS Custom Properties 표준

3. 코드 예시​

파일명: web-basics/portfolio/css/style.css

:root {
--color-text: #1e293b;
--color-muted: #475569;
--color-surface: #ffffff;
--color-background: #f8fafc;
--color-primary: #1d4ed8;
--color-border: #cbd5e1;
--space-small: 0.5rem;
--space-medium: 1rem;
--space-large: 1.5rem;
}

body {
margin: 0;
color: var(--color-text);
background-color: var(--color-background);
font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
font-size: 1rem;
line-height: 1.6;
}

h1,
h2,
h3 {
line-height: 1.25;
}

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

a {
color: var(--color-primary);
}

.project-card {
padding: var(--space-large);
background-color: var(--color-surface);
border: 1px solid var(--color-border);
}

실행 위치: D:\WebProject\StartBook\dev-foundations\web-basics\portfolio

python -m http.server 5500

4. 코드가 동작하는 이유​

  1. :root에 선언한 사용자 정의 속성이 하위 요소로 상속됩니다.
  2. 각 규칙의 var()가 해당 이름의 계산된 값을 가져옵니다.
  3. 시스템 글꼴 목록은 사용자의 운영체제에서 사용 가능한 UI 글꼴을 순서대로 선택합니다.
  4. 본문 line-height: 1.6은 글자 크기에 비례하는 줄 높이를 만들어 긴 문장을 읽기 쉽게 합니다.
  5. rem 기반 간격은 루트 글자 크기와 함께 비례해 변합니다.
  6. 기본 색상을 한 곳에서 바꾸면 이를 사용하는 링크와 카드가 함께 갱신됩니다.

색 조합은 취향만이 아니라 가독성 문제입니다. 작은 일반 텍스트는 전경과 배경이 충분히 구분되어야 하며, 색만으로 상태를 전달하지 않아야 합니다. W3C WCAG 대비 안내

5. 자주 하는 실수​

  • 모든 글자 크기와 간격을 고정 px로만 작성함
  • 줄 높이를 글자 크기와 같게 만들어 줄이 붙음
  • 서로 다른 규칙에 같은 색상 값을 반복해서 작성함
  • 변수 이름을 --blue처럼 색 자체로만 지어 역할을 알기 어려움
  • 낮은 대비의 회색 글자를 밝은 배경에 사용함
  • 색상만으로 오류·성공·선택 상태를 구분함

6. 짧은 실습 과제​

  1. 자신의 CSS에서 반복되는 색상과 간격을 찾습니다.
  2. 역할에 따라 --color-*, --space-* 변수로 옮깁니다.
  3. 본문 글자 크기와 행간을 설정하고 긴 문단을 읽어 봅니다.
  4. --color-primary 값 하나만 바꾸어 모든 사용처가 바뀌는지 확인합니다.
  5. 개발자 도구에서 링크와 본문의 최종 색상을 확인합니다.
  6. 브라우저 확대를 200%로 바꾸어 텍스트가 잘리거나 겹치지 않는지 확인합니다.

완료 기준은 주요 디자인 값을 CSS 한 곳에서 바꾸고, 해당 값을 사용하는 모든 요소에 일관되게 반영할 수 있는 것입니다.

7. 이해 점검 질문 3개​

  1. 반복 색상을 사용자 정의 속성으로 관리하면 어떤 실수를 줄일 수 있나요?
  2. 1rem은 무엇을 기준으로 계산되나요?
  3. 색 조합을 선택할 때 예쁜지 여부 외에 무엇을 확인해야 하나요?

핵심 요약​

  • 이번 강의의 핵심 개념을 코드의 구조와 실행 결과에 연결했습니다.
  • 코드 예시를 직접 바꾸는 짧은 실습으로 핵심 동작을 확인했습니다.
  • 이해 점검 질문에 답하며 다음 강의에 필요한 기준을 정리했습니다.
MINI QUIZ

글꼴·색상·CSS 변수 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1다음 중 “글꼴·색상·CSS 변수”의 핵심 요약을 실제 상황에 맞게 적용한 것은 무엇인가요?
  2. 문제 2“글꼴·색상·CSS 변수”에서 비슷한 개념이나 선택을 구분하는 기준은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

12강. 글꼴·색상·CSS 변수 미완료 상태