next/font로 로컬파일 폰트, google 폰트 적용하는 방법에 대해 포스팅 하려 해요.
next/font 왜 사용해요 ?next/font 는 자체적으로 폰트를 호스팅하고 CSS에 포함된 폰트 변수로 미리 스타일링 하여 이러한 문제를 방지한다.next/font는 자동으로 필요한 CSS를 생성하여 폰트 로드 시간을 줄이고 페이지 성능을 향상시킵니다.public 폴더에 폰트 파일을 넣는다.public/font/GeistVF.woff에 폰트 파일 저장import localFont from "next/font/local";
const fonts = localFont({
src: "./fonts/GeistVF.woff",
variable: "--font-geist-sans",
weight: "100 900",
});
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="ko">
<body className={`${fonts.variable} antialiased`}>{children}</body>
</html>
);
}
Next.js google font 공식 문서
https://nextjs.org/docs/pages/building-your-application/optimizing/fonts#google-fonts
npm i @next/font
저자는 next 14버전, app router 기반입니다.
저는 전체 레이아웃에 적용할겁니다.
// app/layout.tsx
import { Gowun_Batang } from '@next/font/google';
const gowunBatangFont = Gowun_Batang({
subsets: ['latin'], // 필요한 언어 설정
weight: ['400', '700'], // 사용할 폰트 굵기 설정
display: 'swap', // 텍스트 표시 방식
});
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="ko">
<body className={`${gowunBatangFont.className} antialiased`}>
{children}
</body>
</html>
);
}