Font Stack
Embed This Widget
Add the script tag and a data attribute to embed this widget.
Embed via iframe for maximum compatibility.
<iframe src="https://fontfyi.com/iframe/glossary/font-stack/" width="420" height="400" frameborder="0" style="border:0;border-radius:10px;max-width:100%" loading="lazy"></iframe>
Paste this URL in WordPress, Medium, or any oEmbed-compatible platform.
https://fontfyi.com/glossary/font-stack/
Add a dynamic SVG badge to your README or docs.
[](https://fontfyi.com/glossary/font-stack/)
Use the native HTML custom element.
An ordered list of fonts in CSS font-family, providing fallbacks if the preferred font is unavailable. E.g., 'Inter, system-ui, sans-serif'.
A font stack is the ordered list of font families in a CSS font-family declaration. The browser works through the list from left to right, using the first font that is available on the system or has been loaded. The later entries in the stack are fallbacks — they serve when preferred fonts aren't available.
/* Classic font stack */
body {
font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
}
Here, Inter is tried first. If unavailable, Helvetica Neue is used. If that's missing, Arial. If all named fonts fail, the browser uses its default sans-serif.
Generic font families (always last in the stack):
The final entry in any stack should be a generic keyword — serif, sans-serif, monospace, cursive, or system-ui. These are not specific fonts; they're instructions to the browser to use its default font in that category. They never fail.
/* Complete stacks for common use cases */
/* Sans-serif body text */
body {
font-family: 'Source Sans 3', 'Helvetica Neue', Arial, sans-serif;
}
/* Serif editorial */
.article {
font-family: 'Lora', Georgia, 'Times New Roman', serif;
}
/* Monospace code */
code {
font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code',
'Consolas', 'Courier New', monospace;
}
System font stack:
For interfaces that should feel native to the operating system, the system font stack uses each OS's default UI font:
body {
font-family:
system-ui,
-apple-system, /* Safari on macOS/iOS */
BlinkMacSystemFont, /* Chrome on macOS (legacy) */
'Segoe UI', /* Windows */
Roboto, /* Android/Chrome OS */
'Helvetica Neue', /* Older macOS */
Arial, /* Universal fallback */
sans-serif;
}
GitHub, Linear, and many developer tools use system font stacks to reduce load times and match platform conventions.
Fallback font metrics — reducing layout shift:
When a web font loads and replaces a fallback, differences in the fonts' metrics (x-height, line-height, character width) cause layout shift. CSS allows overriding fallback font metrics to match the web font:
/* Override fallback metrics to match Inter */
@font-face {
font-family: 'Inter-fallback';
src: local('Arial');
ascent-override: 90%;
descent-override: 22.43%;
line-gap-override: 0%;
size-adjust: 107.64%;
}
body {
font-family: 'Inter', 'Inter-fallback', sans-serif;
}
Tools like Fontaine and Next.js's next/font module generate these adjusted fallback declarations automatically, making them practical to use without manual metric measurement.
관련 용어
관련 도구
이 개념을 보여주는 폰트
더 알아보기
Tailwind CSS에 Google Fonts나 커스텀 폰트를 추가합니다 — font-family 테마 확장, 효율적인 폰트 로딩, Tailwind 타이포그래피 모범 사례를 다룹니다.
폰트 리뷰이메일 타이포그래피는 여전히 클라이언트 지원에 제한을 받습니다. 이메일에 가장 좋은 폰트 — 웹 세이프 기본값, 호스팅 폰트 대안, 확실한 폴백 스택까지 다룹니다.
폰트 리뷰훈련되지 않은 눈으로 보면 거의 똑같아 보입니다. 하지만 Arial과 Helvetica에는 핵심적인 차이점이 있으며, 모방과 경쟁의 복잡한 역사도 얽혀 있습니다.
웹 성능폰트 로딩은 누적 레이아웃 시프트(CLS)의 숨겨진 원인입니다. size-adjust, 폰트 지표 오버라이드, 폰트 관련 CLS를 없애는 전략을 배웁니다.