📚공부
Next.js Local Fonts 로컬 폰트 적용
주인가미
2024. 12. 13. 14:52
반응형
Next.js Local Fonts 로컬 폰트 적용
Next.js로 로컬에서 폰트를 적용하는 법을 요약해 둔다.
- fonts 폴더에 원하는 폰트를 다운로드
- layout.js에 아래와 같이 작성
- localFont를 불러오고
- const 폰트명 = localFont({src: "경로",})
- 그 외 font-display 속성 조정 가능
- display: 'auto'브라우저에 맡김. 대부분 block으로 처리됨
- display: 'block'폰트가 다운로드 되기 전엔 아예 안보였다가, 다운로드 완료 되면 보여줌
- display: 'swap'폰트가 다운로드 되기 전엔 시스템 기본 글꼴로 보여줬다가, 다운로드가 완료 되면 해당 폰트로 보여줌
- display: 'fallback'100ms 동안 아무것도 안보여 주다가, 100ms가 지나서도 다운로드가 다 안됐으면 시스템 기본 폰트로 보여주고 그 전에 다운로드 됐으면 해당 폰트를 보여줌
- display: 'optional'fallback과 비슷하나 인터넷 상태에 따라 적용이 안될 수도 있다 함
- 3초 내에 다운로드가 다 됐으면 해당 폰트로 보여줌
- 그 외 font-display 속성 조정 가능
- 폰트변수명을 클래스로 부여 이하 참고(예: body에 className={`${seoulNamsan.variable} antialiased`} )
// layout.js
import localFont from "next/font/local";
const 폰트변수명seoulNamsan = localFont({
src: "./fonts/폰트명SEOULNAMSANB.ttf",
});
export default function RootLayout({ children }) {
return (
<html lang="ko">
<body
className={`${폰트변수명seoulNamsan.variable} antialiased`}
>
{children}
</body>
</html>
);
}
tailwindcss를 사용중이라면, tailwind.config.js에 아래처럼 폰트변수명(layout에 추가했던)을 추가
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
theme: {
extend: {
fontFamily: {
폰트변수명seoulNamsan: ['var(--작명font-seoul-namsan)'],
}
},
},
plugins: [],
};
반응형