تحسين خطوط الكتابة في Next.js
تمتلك Next.js ابتداءً من الإصدار 10.2 آلية مدمجة لتحسين خطوط الكتابة، إذ تُدرج تلقائيًا تنسيقات سطرية لخطوط الكتابة أثناء بناء التطبيق موفّرة جولة إضافية لإحضار تصريحات خطوط الكتابة. وهذا ما سيحسن المؤشرات الحيوية للويب مثل أولى عناصر المحتوى المرئية First Contentful Paint واختصارًا (FCP) وعناصر المحتوى المرئية الأضخم حجمًا Largest Contentful Paint واختصارًا (LCP). إليك مثالًا:
// قبل
<link
href="https://fonts.googleapis.com/css2?family=Inter&display=optional"
rel="stylesheet"
/>
// بعد
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<style data-href="https://fonts.googleapis.com/css2?family=Inter&display=optional">
@font-face{font-family:'Inter';font-style:normal...
</style>
استخدام خطوط الكتابة في Next.js
لإضافة خط كتابة لمحتوى ويب في تطبيق، أضف الخط إلى مستند مخصص:
// pages/_document.js
import Document, { Html, Head, Main, NextScript } from 'next/document'
class MyDocument extends Document {
render() {
return (
<Html>
<Head>
<link
href="https://fonts.googleapis.com/css2?family=Inter&display=optional"
rel="stylesheet"
/>
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
}
export default MyDocument
لا ننصح بإضافة خطوط من خلال الترويسة لأنها ستُطبق الخطوط على صفحة محددة فقط، ولن تعمل مع معمارية مبنية على تدفق البيانات. تدعم آلية تحسين الخطوط خطوط Google وخطوط Typekit، وستدعم قريبًا خطوطًا أخرى. كما يجري التخطيط لإضافة إمكانية التحكم بأساليب التحميل وقيم الخاصية font-display
.
ملاحظة: لا تدعم آلية تحسين خطوط الكتابة حاليًا ميزة الاستضافة الذاتية للخطوط self-hosted fonts
تعطيل ميزة تحسين خطوط الكتابة في Next.js
إن لم تشأ أن تُحسّن Next.js خطوط الكتابة التي تستخدمها، يمكنك إلغاء ذلك كالتالي:
// next.config.js
module.exports = {
optimizeFonts: false,
}
المصادر
- صفحة Font Optimization من توثيق Next.js الرسمي