Capítulo 290 de 456
next/font self-hosts any font (Google or local) automatically, eliminando requisições externas e layout shift causado por carregamento de fonte.
next/font/google: importa e self-hosta qualquer Google Font como asset estático servido do próprio domínio (nenhuma request pro Google no browser).next/font/local: carrega arquivo de fonte local (.woff2 etc.) via prop src, opcionalmente um array de variantes (peso/estilo).weight.className no elemento raiz do Custom App (pages/_app).import { Roboto } from 'next/font/google'
import type { AppProps } from 'next/app'
const roboto = Roboto({
weight: '400',
subsets: ['latin'],
})
export default function MyApp({ Component, pageProps }: AppProps) {
return (
<main className={roboto.className}>
<Component {...pageProps} />
</main>
)
}
weight explícito, aplicado globalmente via _app.const roboto = localFont({
src: [
{ path: './Roboto-Regular.woff2', weight: '400', style: 'normal' },
{ path: './Roboto-Italic.woff2', weight: '400', style: 'italic' },
{ path: './Roboto-Bold.woff2', weight: '700', style: 'normal' },
{ path: './Roboto-BoldItalic.woff2', weight: '700', style: 'italic' },
],
})
weight em fonte não-variável: sem ele o next/font/google falha, pois só variable fonts dispensam essa prop.next/font sempre self-hosta, mesmo pra Google Fonts, zerando request externa.weight quando a fonte não for variável.className no _app propaga a fonte pra toda a aplicação Pages Router.