Files
2nd/10_Wiki/Topics/Frontend_Mastery/Fluid Typography.md
T
Antigravity Agent cfafbdbc36 feat: massive wikification of styling systems and SaaS architecture
Processed 100+ files including Design Systems, CSS Architectures, and Enterprise Frontend strategies.
2026-04-26 12:08:51 +09:00

4.0 KiB

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)을 위한 주의사항: 폰트 크기를 1vw100vw와 같은 순수 뷰포트/컨테이너 단위로만 설정하는 것은 사용자에게 매우 적대적인(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


Last updated: 2026-04-26