From 011a00e151b5da162d5cdaf5f23f1483bebe7ad5 Mon Sep 17 00:00:00 2001 From: mortezaei Date: Sun, 30 Aug 2026 21:27:02 +0330 Subject: [PATCH] perf(fonts): enable font preloading across active typography to eliminate FOUT/layout shift --- src/app/layout.tsx | 39 +++++---------------------------------- 1 file changed, 5 insertions(+), 34 deletions(-) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 0ba432f..ca02791 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -17,7 +17,7 @@ const yekanxArabic = localFont({ src: "../../public/fonts/yekanx-arabic/ArabicYekanXRegular.ttf", variable: "--font-yekanx-arabic", display: "swap", - preload: false, + preload: true, fallback: ["Segoe UI", "Tahoma", "Geneva", "Verdana", "sans-serif"], }); @@ -25,7 +25,7 @@ const yekanx = localFont({ src: "../../public/fonts/yekanx/YekanXFaNum-R.ttf", variable: "--font-yekanx", display: "swap", - preload: false, + preload: true, fallback: ["Segoe UI", "Tahoma", "Geneva", "Verdana", "sans-serif"], }); @@ -33,7 +33,7 @@ const notoNastaliqUrdu = localFont({ src: "../../public/fonts/urdu/NotoNastaliqUrdu.ttf", variable: "--font-nastaliq-urdu", display: "swap", - preload: false, + preload: true, fallback: ["Segoe UI", "Tahoma", "Geneva", "Verdana", "sans-serif"], }); @@ -52,7 +52,7 @@ const segoeui = localFont({ ], variable: "--font-segoeui", display: "swap", - preload: false, + preload: true, fallback: ["Segoe UI", "Tahoma", "Geneva", "Verdana", "sans-serif"], }); @@ -64,35 +64,6 @@ const faminela = localFont({ fallback: ["Arial", "sans-serif"], }); -const amiri = localFont({ - src: [ - { - path: "../../public/fonts/Amiri/Amiri-Regular.ttf", - weight: "400", - style: "normal", - }, - { - path: "../../public/fonts/Amiri/Amiri-Italic.ttf", - weight: "400", - style: "italic", - }, - { - path: "../../public/fonts/Amiri/Amiri-Bold.ttf", - weight: "700", - style: "normal", - }, - { - path: "../../public/fonts/Amiri/Amiri-BoldItalic.ttf", - weight: "700", - style: "italic", - }, - ], - variable: "--font-amiri", - display: "swap", - preload: false, - fallback: ["Arial", "sans-serif"], -}); - const isDevelopment = process.env.NODE_ENV !== "production"; export const metadata: Metadata = { @@ -450,7 +421,7 @@ export default async function RootLayout({ />