size-adjust fallback не только swap, zero Google runtime, subsets, module scope loader, explicit weight, preload scope — типичные вопросы.
Разбор
- «How avoid font layout shift?» Metric-matched
size-adjust @font-face, не только display: swap. Swap без matched metrics still reflows.
next/font/google zero runtime Google requests. Self-host at build — GDPR fix too, не proxy <link>.
- Forgetting
subsets ships all language glyphs — huge file. Always subset.
- Font loader inside component vs module scope — re-triggers work, breaks optimization.
- Non-variable fonts need explicit
weight. Omitting = common miss.
preload only fonts used on current route. Font declared but used deep rare route — not preloaded elsewhere (usually desired).
Итог
Senior font answer = size-adjust mechanics + build-time self-host + module-level declaration.