# [[Fluid Typography]] ## πŸ“Œ[[ brief]] Summary Fluid Typography(μœ λ™μ  νƒ€μ΄ν¬κ·Έλž˜ν”Ό)λŠ” κ³ μ •λœ λ―Έλ””μ–΄ 쿼리 쀑단점(breakpoint)μ—μ„œ 폰트 크기가 κ°‘μžκΈ° λ³€ν•˜λŠ” λŒ€μ‹ , λ·°ν¬νŠΈλ‚˜ μ»¨ν…Œμ΄λ„ˆμ˜ 크기에 λΉ„λ‘€ν•˜μ—¬ 폰트 크기가 λ§€λ„λŸ½κ³  μ—°μ†μ μœΌλ‘œ λ³€ν•˜λ„λ‘ λ§Œλ“œλŠ” λ°˜μ‘ν˜• μ›Ή λ””μžμΈ κΈ°λ²•μž…λ‹ˆλ‹€ [1, 2]. μ΅œμ‹  CSSμ—μ„œλŠ” `clamp()` ν•¨μˆ˜μ™€ μƒλŒ€ λ‹¨μœ„(`vw`, `rem` λ“±)λ₯Ό μ‘°ν•©ν•˜μ—¬ μ‚¬μš©ν•˜λ©°, κΈ°κΈ°λ§ˆλ‹€ λ‹€λ₯Έ ν™”λ©΄ 크기에 맞좰 졜적의 가독성을 μ œκ³΅ν•©λ‹ˆλ‹€ [1, 3]. μˆ˜λ™μœΌλ‘œ μ—¬λŸ¬ 개의 쀑단점을 κ³„μ‚°ν•˜κ±°λ‚˜ μ§€μ •ν•  ν•„μš”κ°€ μ—†λ‹€λŠ” 것이 κ°€μž₯ 큰 μž₯μ μž…λ‹ˆλ‹€ [4]. ## πŸ“– Core κΈ°Content * **μž‘λ™ 원리와 ν•„μš”μ„±:** 기쑴의 ν•˜λ“œ 브레이크포인트(hard breakpoint) 기반 νƒ€μ΄ν¬κ·Έλž˜ν”ΌλŠ” ν™”λ©΄ 크기가 변경될 λ•Œ 폰트 크기가 κ°‘μž‘μŠ€λŸ½κ²Œ 도약(jarring jumps)ν•˜λŠ” 문제λ₯Ό λ°œμƒμ‹œν‚΅λ‹ˆλ‹€ [1]. 반면 Fluid TypographyλŠ” `vw`, `vi`, `cqi`와 같은 뷰포트 및 μ»¨ν…Œμ΄λ„ˆ λ‹¨μœ„λ₯Ό ν™œμš©ν•˜μ—¬ μ§€μ •λœ λ²”μœ„ λ‚΄μ—μ„œ μΌμ •ν•œ λΉ„μœ¨λ‘œ 폰트 크기λ₯Ό 보간(interpolate)ν•˜μ—¬ λΆ€λ“œλŸ¬μš΄ μ „ν™˜μ„ λ§Œλ“€μ–΄λƒ…λ‹ˆλ‹€ [2, 4]. 이λ₯Ό 톡해 μŠ€λ§ˆνŠΈν°μ—μ„œλŠ” λ„ˆλ¬΄ μž‘μ§€ μ•Šκ³ , λ°μŠ€ν¬ν†±μ—μ„œλŠ” λ„ˆλ¬΄ 크지 μ•Šμ€ κ· ν˜• 작힌 ν…μŠ€νŠΈ 크기λ₯Ό μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [3]. * **핡심 κ΅¬ν˜„ 방법 (`clamp()` ν•¨μˆ˜):** κ°€μž₯ ν˜„λŒ€μ μ΄κ³  ꢌμž₯λ˜λŠ” κ΅¬ν˜„ 방식은 CSS의 `clamp(min, preferred, max)` ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€ [1, 5, 6]. 이 ν•¨μˆ˜λŠ” μ΅œμ†Œ 폰트 크기(floor), 뷰포트 기반의 μ„ ν˜Έ 크기(scaling value), 그리고 μ΅œλŒ€ 폰트 크기(ceiling)λ₯Ό μ„€μ •ν•˜μ—¬ λΈŒλΌμš°μ €κ°€ 곡간에 맞좰 μžλ™μœΌλ‘œ 크기λ₯Ό κ³„μ‚°ν•˜κ²Œ ν•©λ‹ˆλ‹€ [1, 3]. 예λ₯Ό λ“€μ–΄ `font-size: clamp(1.5rem, 2vw + 1rem, 3rem);`와 같이 μž‘μ„±ν•˜λ©΄, 아무리 화면이 μž‘κ±°λ‚˜ 컀져도 ν°νŠΈκ°€ μ§€μ •λœ μ΅œμ†Œ/μ΅œλŒ€ λ²”μœ„λ₯Ό λ²—μ–΄λ‚˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ [1, 3, 7]. * **μ ‘κ·Όμ„±([[Accessibility]])을 μœ„ν•œ μ£Όμ˜μ‚¬ν•­:** 폰트 크기λ₯Ό `1vw`λ‚˜ `100vw`와 같은 순수 뷰포트/μ»¨ν…Œμ΄λ„ˆ λ‹¨μœ„λ‘œλ§Œ μ„€μ •ν•˜λŠ” 것은 μ‚¬μš©μžμ—κ²Œ 맀우 μ λŒ€μ μΈ(hostile) λ°©μ‹μž…λ‹ˆλ‹€ [8]. λΈŒλΌμš°μ € 창을 μ€„μ΄λŠ” 것과 돋보기(zoom) κΈ°λŠ₯을 μ‚¬μš©ν•˜λŠ” 것은 μ‚¬μš©μž μ˜λ„κ°€ 닀름에도 λΆˆκ΅¬ν•˜κ³  CSS 뷰포트 λ‹¨μœ„μ—μ„œλŠ” λ™μΌν•˜κ²Œ κ³„μ‚°λ˜μ–΄, μ‚¬μš©μžκ°€ λΈŒλΌμš°μ € 섀정을 톡해 화면을 ν™•λŒ€ν•˜λ”λΌλ„ 폰트 크기가 컀지지 μ•Šκ²Œ λ©λ‹ˆλ‹€ [9, 10]. μ΄λŠ” "보쑰 기술 없이 ν…μŠ€νŠΈλ₯Ό 200%κΉŒμ§€ ν™•λŒ€ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€"λŠ” μ›Ή μ½˜ν…μΈ  μ ‘κ·Όμ„± μ§€μΉ¨(WCAG 1.4.4)을 μ§μ ‘μ μœΌλ‘œ μœ„λ°˜ν•©λ‹ˆλ‹€ [8]. * **μ•ˆμ „ν•œ Fluid Typography 섀계 (Best Practices):** μ‚¬μš©μžμ˜ κΈ°λ³Έ 폰트 μ„€μ •κ³Ό λΈŒλΌμš°μ € ν™•λŒ€/μΆ•μ†Œ κΈ°λŠ₯을 μ‘΄μ€‘ν•˜κΈ° μœ„ν•΄, 뷰포트 λ‹¨μœ„μ™€ μ‚¬μš©μžμ˜ μ„ ν˜Έ λ‹¨μœ„(`rem`, `em`)λ₯Ό `calc()` ν•¨μˆ˜λ‘œ κ²°ν•©ν•΄μ•Ό ν•©λ‹ˆλ‹€(예: `calc(16px + 1vw)`) [11]. λ˜ν•œ `clamp()`λ₯Ό μ‚¬μš©ν•  λ•Œ μ΅œμ†Œκ°’κ³Ό μ΅œλŒ€κ°’μ„ λͺ¨λ‘ `em` λ˜λŠ” `rem` λ‹¨μœ„λ‘œ μ§€μ •ν•˜κ³ , μ΅œλŒ€ 폰트 크기가 μ΅œμ†Œ 폰트 크기의 2.5λ°°λ₯Ό μ΄ˆκ³Όν•˜μ§€ μ•Šλ„λ‘ μ„€μ •ν•΄μ•Ό WCAG SC 1.4.4 κΈ°μ€€(200% ν™•λŒ€ 보μž₯)을 μ•ˆμ „ν•˜κ²Œ 톡과할 수 μžˆμŠ΅λ‹ˆλ‹€ [12, 13]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Responsive Web Design]], [[CSS Media Queries]], [[Container Queries]], [[Web Content Accessibility Guidelines (WCAG)]] - **Projects/Contexts:** [[λͺ¨λ°”일 퍼슀트 및 λ‹€μ–‘ν•œ λ””λ°”μ΄μŠ€ ν™˜κ²½μ„ μœ„ν•œ λ°˜μ‘ν˜• λ ˆμ΄μ•„μ›ƒ ꡬ좕]], [[λ””μžμΈ μ‹œμŠ€ν…œμ˜ νƒ€μ΄ν¬κ·Έλž˜ν”Ό 토큰 ν™•μž₯ 및 μ΅œμ ν™”]] - **Contradictions/Notes:** 뷰포트 λ‹¨μœ„(`vw` λ“±)λŠ” ν™”λ©΄ 크기에 λ°˜μ‘ν•˜μ—¬ μœ λ™μ„±μ„ μ£Όμ§€λ§Œ, λ‹¨λ…μœΌλ‘œ μ‚¬μš©ν•  경우 μ‚¬μš©μžμ˜ λΈŒλΌμš°μ € ν™•λŒ€(Zoom) 및 κΈ°λ³Έ 폰트 섀정을 λ¬΄μ‹œν•˜κ²Œ λ˜μ–΄ μ ‘κ·Όμ„±(WCAG)을 μ‹¬κ°ν•˜κ²Œ ν›Όμ†ν•œλ‹€λŠ” 점에 μ£Όμ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λ°˜λ“œμ‹œ `clamp()` 및 `rem`/`em` λ‹¨μœ„μ™€ ν˜Όν•©ν•˜μ—¬ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€ [8, 13]. --- *Last updated: 2026-04-26*