font-size
Sets the text size. In Atomic CSS, fs has different meanings depending on whether a unit is present. fs0, fs1 are flex-shrink, while fs16px, fs2rem with units become font-size.
Class List -- px Unit
Use px units for sizes under 20px. Suitable when precise size control is needed.
| Class | CSS | Usage |
|---|---|---|
fs10px | font-size: 10px | Minimum readable size |
fs11px | font-size: 11px | Very small text |
fs12px | font-size: 12px | Secondary text, captions |
fs13px | font-size: 13px | Small body text, code |
fs14px | font-size: 14px | Default body (compact UI) |
fs16px | font-size: 16px | Default body (standard) |
fs18px | font-size: 18px | Emphasized body, subheading |
Class List -- rem Unit
Use rem units for sizes 20px and above. Based on 1rem = 10px, so fs2rem is 20px.
| Class | CSS | Conversion |
|---|---|---|
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 -- Hero title |
Class List -- em Unit
em is relative to the parent element's font-size. Use when size should change proportionally with the parent.
| Class | CSS | Description |
|---|---|---|
fs0-8em | font-size: 0.8em | parent 80% |
fs0-9em | font-size: 0.9em | parent 90% |
fs1em | font-size: 1em | Same as parent |
fs1-2em | font-size: 1.2em | parent 120% |
fs1-5em | font-size: 1.5em | parent 150% |
fs2em | font-size: 2em | parent 200% |
Class List -- % Unit
p represents percentage. Uses the parent element's font-size as the 100% baseline.
| Class | CSS | Description |
|---|---|---|
fs80p | font-size: 80% | parent 80% |
fs90p | font-size: 90% | parent 90% |
fs100p | font-size: 100% | Same as parent |
fs120p | font-size: 120% | parent 120% |
fs150p | font-size: 150% | parent 150% |
fs200p | font-size: 200% | parent 200% |
fs0 vs fs16px -- Caution
When only a number follows fs without a unit, it is flex-shrink; with a unit, it is font-size.
| Class | CSS | Property |
|---|---|---|
fs0 | flex-shrink: 0 | flex-shrink (no unit) |
fs1 | flex-shrink: 1 | flex-shrink (no unit) |
fs0px | font-size: 0px | font-size (px unit) |
fs12px | font-size: 12px | font-size (px unit) |
fs1-6rem | font-size: 1.6rem | font-size (rem unit) |
fs2rem | font-size: 2rem | font-size (rem unit) |
fs1em | font-size: 1em | font-size (em unit) |
fs100p | font-size: 100% | font-size (% unit) |
Caution
fs0 is not font-size: 0 but flex-shrink: 0. To set font-size to 0, use fs0px.
px vs rem Comparison
The same size can be expressed in both px and rem. Based on 1rem = 10px.
| Size | px class | rem class | Recommended |
|---|---|---|---|
| 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 Conversion Reference Table
rem conversion table based on html { font-size: 10px }.
| Class | CSS | Conversion |
|---|---|---|
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 |
Recommended Sizes
Recommended font-size guidelines for typical web projects.
| Usage | Size | Class |
|---|---|---|
| 캡션 / 보조 텍스트 | 12px | fs12px |
| 작은 본문 / 코드 | 13-14px | fs13px / fs14px |
| 기본 본문 | 16px | fs16px |
| h3 소제목 | 20px | fs2rem |
| h2 제목 | 24px | fs2-4rem |
| h1 제목 | 36px | fs3-6rem |
| Hero title | 48px | fs4-8rem |
Visual Comparison
Compares how each font-size class affects text.
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
Code Examples
<!-- Default body text -->
<p class="fs16px lh1-7">This is regular body text.</p>
<!-- Title hierarchy -->
<h1 class="fs3-6rem fw800 lh1-3">h1 Title — 36px</h1>
<h2 class="fs2-4rem fw700 lh1-3">h2 Title — 24px</h2>
<h3 class="fs2rem fw700 lh1-3">h3 Title — 20px</h3>
<!-- Auxiliary text -->
<small class="fs12px c71717A">Caption or auxiliary description</small>
<!-- Inline code -->
<code class="fs14px bg1E1E2E py2px px5px br4px">Code text</code>
<!-- Hero title -->
<h1 class="fs4-8rem fw900 lh1-1">Large hero title</h1>responsive font-size
Combine with media query prefixes to adjust font size based on screen size.
<!-- Desktop 16px → Tablet 14px → Mobile 12px -->
<p class="fs16px md-fs14px sm-fs12px">Responsive Text</p>
<!-- Title: Desktop 36px → Tablet 28px → Mobile 24px -->
<h1 class="fs3-6rem md-fs2-8rem sm-fs2-4rem fw800">Responsive Title</h1>
<!-- Hero: desktop 48px → mobile 32px -->
<h1 class="fs4-8rem sm-fs3-2rem fw900 lh1-1">Hero title</h1>| <tr> <th class="tal py12px px16px bg18181B bb2pxsolid27272A cA1A1AA fw600 ttu fs12px ls0-05em">Class Combination | Behavior |
|---|---|
fs16px md-fs14px sm-fs12px | Default 16px, 14px at 1024px and below, 12px at 768px and below |
fs3-6rem md-fs2-8rem sm-fs2-4rem | Default 36px, 28px at 1024px and below, 24px at 768px and below |
fs4-8rem sm-fs3-2rem | Default 48px, 32px at 768px and below |
fs14px es-fs12px | Default 14px, 12px at 640px and below |
Tips & Notes
Use rem as the default
rem scales proportionally with root font-size, offering excellent scalability. Adapts naturally even when users change browser default font size.
Use px for precision under 20px
For small sizes like 12px, 13px, 14px, rem decimals can get long, so using px units like fs12px, fs14px is more concise.
fs0 is not font-size
fs0 = flex-shrink: 0. To set font-size, you must include a unit: fs16px, fs2rem.
Use with line-height
When changing font-size, also adjust lh(line-height) for better readability. Generally lh1-7 for body text and lh1-3 for headings.