font-size
텍스트의 크기를 설정하는 속성입니다. Atomic CSS에서 fs는 단위 유무에 따라 의미가 달라집니다. fs0, fs1은 flex-shrink이고, fs16px, fs2rem처럼 단위가 붙으면 font-size입니다.
클래스 목록 — px 단위
20px 미만은 px 단위를 사용합니다. 정밀한 크기 제어가 필요할 때 적합합니다.
| 클래스 | CSS | 용도 |
|---|---|---|
fs10px | font-size: 10px | 최소 가독 크기 |
fs11px | font-size: 11px | 매우 작은 텍스트 |
fs12px | font-size: 12px | 보조 텍스트, 캡션 |
fs13px | font-size: 13px | 작은 본문, 코드 |
fs14px | font-size: 14px | 기본 본문 (컴팩트 UI) |
fs16px | font-size: 16px | 기본 본문 (표준) |
fs18px | font-size: 18px | 강조 본문, 소제목 |
클래스 목록 — rem 단위
20px 이상은 rem 단위를 사용합니다. 1rem = 10px 기준이므로, fs2rem은 20px입니다.
| 클래스 | CSS | 환산 |
|---|---|---|
fs1-2rem | font-size: 1.2rem | 12px |
fs1-4rem | font-size: 1.4rem | 14px |
fs1-6rem | font-size: 1.6rem | 16px |
fs1-8rem | font-size: 1.8rem | 18px |
fs2rem | font-size: 2rem | 20px — h3 |
fs2-4rem | font-size: 2.4rem | 24px — h2 |
fs3-2rem | font-size: 3.2rem | 32px |
fs3-6rem | font-size: 3.6rem | 36px — h1 |
fs4-8rem | font-size: 4.8rem | 48px — 히어로 타이틀 |
클래스 목록 — em 단위
em은 부모 요소의 font-size를 기준으로 합니다. 부모 크기에 따라 상대적으로 변해야 할 때 사용합니다.
| 클래스 | CSS | 설명 |
|---|---|---|
fs0-8em | font-size: 0.8em | 부모의 80% |
fs0-9em | font-size: 0.9em | 부모의 90% |
fs1em | font-size: 1em | 부모와 동일 |
fs1-2em | font-size: 1.2em | 부모의 120% |
fs1-5em | font-size: 1.5em | 부모의 150% |
fs2em | font-size: 2em | 부모의 200% |
클래스 목록 — % 단위
p는 퍼센트를 의미합니다. 부모 요소의 font-size를 100%로 기준 잡습니다.
| 클래스 | CSS | 설명 |
|---|---|---|
fs80p | font-size: 80% | 부모의 80% |
fs90p | font-size: 90% | 부모의 90% |
fs100p | font-size: 100% | 부모와 동일 |
fs120p | font-size: 120% | 부모의 120% |
fs150p | font-size: 150% | 부모의 150% |
fs200p | font-size: 200% | 부모의 200% |
fs0 vs fs16px — 주의사항
fs 뒤에 단위 없이 숫자만 오면 flex-shrink, 단위가 붙으면 font-size입니다.
| 클래스 | CSS | 속성 |
|---|---|---|
fs0 | flex-shrink: 0 | flex-shrink (단위 없음) |
fs1 | flex-shrink: 1 | flex-shrink (단위 없음) |
fs0px | font-size: 0px | font-size (px 단위) |
fs12px | font-size: 12px | font-size (px 단위) |
fs1-6rem | font-size: 1.6rem | font-size (rem 단위) |
fs2rem | font-size: 2rem | font-size (rem 단위) |
fs1em | font-size: 1em | font-size (em 단위) |
fs100p | font-size: 100% | font-size (% 단위) |
주의
fs0은 font-size: 0이 아니라 flex-shrink: 0입니다. font-size를 0으로 설정하려면 fs0px를 사용하세요.
px vs rem 비교
동일한 크기를 px과 rem으로 표현할 수 있습니다. 1rem = 10px 기준입니다.
| 크기 | px 클래스 | rem 클래스 | 권장 |
|---|---|---|---|
| 12px | fs12px | fs1-2rem | px 권장 (20px 미만) |
| 14px | fs14px | fs1-4rem | px 권장 (20px 미만) |
| 16px | fs16px | fs1-6rem | px 권장 (20px 미만) |
| 18px | fs18px | fs1-8rem | px 권장 (20px 미만) |
| 20px | fs20px | fs2rem | rem 권장 (20px 이상) |
| 24px | fs24px | fs2-4rem | rem 권장 (20px 이상) |
| 32px | fs32px | fs3-2rem | rem 권장 (20px 이상) |
| 36px | fs36px | fs3-6rem | rem 권장 (20px 이상) |
| 48px | fs48px | fs4-8rem | rem 권장 (20px 이상) |
rem 환산 참조표
html { font-size: 10px } 기준 rem 환산표입니다.
| 클래스 | CSS | 환산 |
|---|---|---|
fs1-2rem | font-size: 1.2rem | = 12px |
fs1-4rem | font-size: 1.4rem | = 14px |
fs1-6rem | font-size: 1.6rem | = 16px |
fs2rem | font-size: 2rem | = 20px |
fs2-4rem | font-size: 2.4rem | = 24px |
fs3-2rem | font-size: 3.2rem | = 32px |
fs3-6rem | font-size: 3.6rem | = 36px |
fs4-8rem | font-size: 4.8rem | = 48px |
추천 사이즈
일반적인 웹 프로젝트에서 권장하는 font-size 기준입니다.
| 용도 | 크기 | 클래스 |
|---|---|---|
| 캡션 / 보조 텍스트 | 12px | fs12px |
| 작은 본문 / 코드 | 13-14px | fs13px / fs14px |
| 기본 본문 | 16px | fs16px |
| h3 소제목 | 20px | fs2rem |
| h2 제목 | 24px | fs2-4rem |
| h1 제목 | 36px | fs3-6rem |
| 히어로 타이틀 | 48px | fs4-8rem |
시각적 비교
각 font-size 클래스가 텍스트에 어떤 영향을 주는지 비교합니다.
12px — fs12px
The quick brown fox jumps over the lazy dog
14px — fs14px
The quick brown fox jumps over the lazy dog
16px — fs16px
The quick brown fox jumps over the lazy dog
20px (2rem) — fs2rem
The quick brown fox jumps over the lazy dog
24px (2.4rem) — fs2-4rem
The quick brown fox jumps over the lazy dog
32px (3.2rem) — fs3-2rem
The quick brown fox jumps over the lazy dog
36px (3.6rem) — fs3-6rem
The quick brown fox jumps over the lazy dog
48px (4.8rem) — fs4-8rem
The quick brown fox jumps over the lazy dog
코드 예시
<!-- 기본 본문 -->
<p class="fs16px lh1-7">일반 본문 텍스트입니다.</p>
<!-- 제목 계층 -->
<h1 class="fs3-6rem fw800 lh1-3">h1 제목 — 36px</h1>
<h2 class="fs2-4rem fw700 lh1-3">h2 제목 — 24px</h2>
<h3 class="fs2rem fw700 lh1-3">h3 제목 — 20px</h3>
<!-- 보조 텍스트 -->
<small class="fs12px c71717A">캡션 또는 보조 설명</small>
<!-- 코드 인라인 -->
<code class="fs14px bg1E1E2E py2px px5px br4px">코드 텍스트</code>
<!-- 히어로 타이틀 -->
<h1 class="fs4-8rem fw900 lh1-1">대형 히어로 타이틀</h1>반응형 font-size
미디어 쿼리 프리픽스와 조합하여 화면 크기에 따라 글자 크기를 조절할 수 있습니다.
<!-- 데스크탑 16px → 태블릿 14px → 모바일 12px -->
<p class="fs16px md-fs14px sm-fs12px">반응형 텍스트</p>
<!-- 제목: 데스크탑 36px → 태블릿 28px → 모바일 24px -->
<h1 class="fs3-6rem md-fs2-8rem sm-fs2-4rem fw800">반응형 제목</h1>
<!-- 히어로: 데스크탑 48px → 모바일 32px -->
<h1 class="fs4-8rem sm-fs3-2rem fw900 lh1-1">히어로 타이틀</h1>| 클래스 조합 | 동작 |
|---|---|
fs16px md-fs14px sm-fs12px | 기본 16px → 1024px 이하 14px → 768px 이하 12px |
fs3-6rem md-fs2-8rem sm-fs2-4rem | 기본 36px → 1024px 이하 28px → 768px 이하 24px |
fs4-8rem sm-fs3-2rem | 기본 48px → 768px 이하 32px |
fs14px es-fs12px | 기본 14px → 640px 이하 12px |
팁 & 주의사항
rem을 기본으로 사용하세요
rem은 루트 font-size에 비례하므로 확장성이 뛰어납니다. 사용자가 브라우저 기본 글꼴 크기를 변경해도 자연스럽게 대응합니다.
20px 미만은 px로 정밀하게
12px, 13px, 14px처럼 작은 사이즈는 rem 소수점이 길어질 수 있으므로 fs12px, fs14px처럼 px 단위를 사용하는 것이 간결합니다.
fs0은 font-size가 아닙니다
fs0 = flex-shrink: 0입니다. font-size를 설정하려면 반드시 단위를 붙여야 합니다: fs16px, fs2rem.
line-height와 함께 사용하세요
font-size를 변경할 때 lh(line-height)도 함께 조절해야 가독성이 좋습니다. 일반적으로 본문은 lh1-7, 제목은 lh1-3이 적합합니다.