أثناء تحميل خط ويب، يمكنك الآن ضبط حجمه لتوحيد أحجام خطوط المستند ومنع تغيُّر التصميم عند التبديل بين الخطوط.
راجِع المثال التالي
التجريبي
حيث يكون font-size
هو 64px
متّسق، والفرق الوحيد بين كلّ من هذه العناوين هو font-family
. لم يتم تعديل الأمثلة على يمين الصفحة، وبالتالي
لها حجم نهائي غير متّسق. تستخدِم الأمثلة على اليمين size-adjust
لمحاولة
ضمان أنّ 64px
هو المقاس النهائي المتّسق.
تتناول هذه المشاركة موصّفًا جديدًا لواجهة الخط في CSS يُعرف باسم
size-adjust
. ويوضّح أيضًا بعض الطرق لتصحيح أحجام الخطوط وتوحيدها
لتوفير تجربة سلسة للمستخدمين وأنظمة تصميم متّسقة وتنسيق صفحات قابل للتنبؤ
بدرجة أكبر. ومن حالات الاستخدام المهمة تحسين عرض خطوط الويب لمنع تغيُّر التصميم التراكمي (CLS).
في ما يلي عرض توضيحي تفاعلي لمساحة الصعوبات. جرِّب تغيير نوع الخط باستخدام القائمة المنسدلة ولاحظ ما يلي:
- الاختلافات في الارتفاع في النتائج
- تغييرات المحتوى المفاجئة بصريًا
- نقل المناطق المستهدَفة التفاعلية (ينتقل القائمة المنسدلة من مكان إلى آخر).
كيفية تغيير حجم الخطوط باستخدام size-adjust
مقدمة عن البنية:
@font-face {
font-family: "Adjusted Typeface";
size-adjust: 150%;
src: url(some/path/to/typeface.woff2) format('woff2');
}
- تنشئ خطًا مخصّصًا باسم
Adjusted Typeface
. - يستخدم
size-adjust
لتوسيع كل رمز نصي بنسبة% 150 من حجمه التلقائي. - يؤثر هذا الخيار في الخط المُستورَد فقط.
استخدِم الخط المخصّص أعلاه على النحو التالي:
h1 {
font-family: "Adjusted Typeface";
}
الحدّ من متغيّرات التصميم التراكمية (CLS) من خلال تبديل الخطوط بسلاسة
في الصورة المتحركة التالية، شاهِد الأمثلة على يمين الشاشة وكيف يحدث تغيُّر عند تغيير الخط. هذا مجرد مثال صغير يتضمّن عنصرًا واحدًا للعنوان ، وتظهر المشكلة بشكل واضح جدًا.
لتحسين عرض الخطوط، يمكنك استخدام أسلوب رائع وهو تبديل الخطوط. يمكنك عرض خط نظام يتم تحميله بسرعة لعرض المحتوى أولاً، ثم استبداله بخط ويب عند اكتمال تحميله. يمنحك ذلك أفضل ما في الحالتَين: يظهر المحتوى في أقرب وقت ممكن، وتحصل على صفحة ذات تصميم جميل بدون التضحية بوقت المستخدم للوصول إلى المحتوى. ولكن المشكلة هي أنّه في بعض الأحيان عند تحميل خط الويب، يتم نقل الصفحة بأكملها لأنّه يظهر بحجم مختلف قليلاً في ارتفاع المربّع.
من خلال وضع size-adjust
في قاعدة @font-face
، يتم ضبط تعديل عالمي
للرمز المميّز لواجهة الخط. سيؤدي ضبط الوقت المناسب لهذا الإجراء إلى إجراء تغيير مرئي بسيط، أي عملية تبديل سلسة. لإجراء عملية تبديل سلسة، يمكنك تعديل الصورة يدويًا أو تجربة
أداة تعديل
الحجم
التي أنشأها مالتي أوبل.
في بداية هذه المشاركة، تم حلّ مشكلة حجم الخط من خلال المحاولة والخطأ. تم تعديل size-adjust
في رمز المصدر إلى أن عرض العنوان نفسه في
Cookie
وArial
64px
نفسه الذي عرضه Press Start 2P
بشكل طبيعي.
لقد قيّمت خطّين بحجم خط مستهدَف.
@font-face {
font-family: 'Adjusted Arial';
size-adjust: 86%;
src: local(Arial);
}
@font-face {
font-family: 'Cookie';
size-adjust: 90.25%;
src: url(...woff2) format('woff2');
}
معايرة الخطوط
بصفتك مؤلفًا، يمكنك تحديد أهداف المعايرة لتسويت قياس الخط. يمكنك توحيد الخطوط على Times أو Arial أو خط نظام، ثم تعديل الخطوط المخصّصة لمطابقتها. أو يمكنك تعديل الخطوط المحلية لتتطابق مع الخطوط التي نزّلتها.
استراتيجيات معايرة size-adjust
:
- الاستهداف عن بُعد:
يمكنك ضبط الخطوط المحلية لتتوافق مع الخطوط التي تم تنزيلها. - الاستهداف المحلي:
يمكنك تعديل الخطوط التي تم تنزيلها لتصبح الخطوط المستهدَفة المحلية.
المثال 1: هدف بعيد
راجِع المقتطف التالي الذي يعدّل خطًا متاحًا محليًا لحجمه ليتطابق مع خط مخصّص في src عن بُعد. الخط المخصّص عن بُعد هو الهدف الذي يتم فيه التعيير، ربما خط العلامة التجارية:
@font-face {
font-family: "Adjusted Regular Arial For Brand";
src: local(Arial);
size-adjust: 90%;
}
@font-face {
font-family: "Rad Brand";
src: url(some/path/to/a.woff2) format('woff2');
}
html {
font-family: "Rad Brand", "Adjusted Regular Arial For Brand";
}
في هذا المثال، يتم تعديل الخط المحلي Arial تحسبًا لتحميل خط مخصّص، وذلك لإجراء عملية تبديل سلسة.
تتميز هذه الاستراتيجية بتقديم المخطّط نفسه للمصمّمين والمطوّرين من حيث الحجم وأسلوب الخط. العلامة التجارية هي هدف المعايرة. هذا نبأ سار لأنظمة التصميم.
تعمل آلة حاسبة Malte أيضًا على استخدام خط العلامة التجارية كهدف. اختَر أحد خطوط Google، وسيتم احتساب كيفية تعديل Arial للتبديل معه بسلاسة. في ما يلي مثال على ملف Roboto CSS من calculator، حيث يتم تحميل Arial وتسميته "Roboto-fallback":
@font-face {
font-family: "Roboto-fallback";
size-adjust: 100.06%;
src: local("Arial");
}
لإنشاء تعديل متوافق مع جميع المنصات، اطّلِع على المثال التالي الذي يقدّم خطّين احتياطيَين محليَّين معدَّلَين تحسباً لخطّ العلامة التجارية.
@font-face {
font-family: "Roboto-fallback-1";
size-adjust: 100.06%;
src: local("Arial");
}
@font-face {
font-family: "Roboto-fallback-2";
size-adjust: 99.94%;
src: local("Arimo");
}
@font-face {
font-family: "Roboto Regular";
src: url(some/path/to/roboto.woff2) format('woff2');
}
html {
font-family: "Roboto Regular", "Roboto-fallback-1", "Roboto-fallback-2";
}
المثال 2: استهداف محلي
راجِع المقتطف التالي الذي يعدّل خطًا مخصّصًا للعلامة التجارية ليطابق خط Arial:
@font-face {
font-family: "Rad Brand - Adjusted For Arial";
src: url(some/path/to/a.woff2) format('woff2');
size-adjust: 110%;
}
html {
font-family: "Rad Brand - Adjusted For Arial", Arial;
}
تتميز هذه الاستراتيجية بإمكانية العرض بدون أي تعديلات، ثم تعديل أي خطوط واردة لمطابقتها.
ضبط أكثر دقة باستخدام ascent-override
وdescent-override
وline-gap-override
إذا لم يكن تغيير الحجم العام للرموز النصية كافيًا لتعديل التصميم أو استراتيجية التحميل، إليك بعض خيارات الضبط الدقيقة التي تعمل مع
size-adjust
. يتم حاليًا استخدام السمات
ascent-override
و
descent-override
و
و
line-gap-override
في الإصدار 87 من Chromium والإصدار 89 من Firefox والإصدارات الأحدث.
ascent-override
يحدِّد العنصر الوصفي ascent-override
الارتفاع فوق خط الأساس ل
الخط.
@font-face {
font-family: "Ascent Adjusted Arial Bold";
src: local(Arial Bold);
ascent-override: 71%;
}
يتضمّن العنوان الأحمر (غير المعدَّل) مساحة فوق الحرفَين الكبيرَين A وO، في حين تم تعديل العنوان الأزرق لكي يكون ارتفاعه الكبير مناسبًا بشكلٍ محكم مع الحدود العامة.
descent-override
يحدِّد العنصر الوصفي descent-override
الارتفاع أسفل خط قاعدة
الخط.
@font-face {
font-family: "Ascent Adjusted Arial Bold";
src: local(Arial Bold);
descent-override: 0%;
}
يتضمّن العنوان الأحمر (غير المعدَّل) مساحة أسفل خطوط الأساس للحرفَين D وO، في حين تم تعديل العنوان الأزرق لكي تستقر حروفه بشكل مريح على خط الأساس.
line-gap-override
يحدّد العنصر الوصفي line-gap-override
مقياس فجوة السطر للخط.
هذا هو الفاصل بين السطور أو المسافة البادئة الخارجية المقترَحة للخط.
@font-face {
font-family: "Line Gap Adjusted Arial";
src: local(Arial);
line-gap-override: 50%;
}
لا يحتوي العنوان الأحمر (غير المعدَّل) على line-gap-override
، فهو في الأساس عند
0%
، في حين تم تعديل العنوان الأزرق بنسبة %50، ما أدّى إلى توفير مساحة فوق
أسفل الأحرف وفقًا لذلك.
خلاصة ما سبق ذكره
يقدّم كلّ من عمليات الاستبدال هذه طريقة إضافية لقطع الأجزاء الزائدة من مربّع حدود النص الآمن على الويب. يمكنك تخصيص مربّع النص لتقديم عرض دقيق.
الخاتمة
إنّ ميزة @font-face
size-adjust
في CSS هي طريقة مثيرة لتخصيص
مربّع حدود النص في تنسيقات الويب لتحسين تجربة تبديل الخطوط
وبالتالي تجنُّب تغيير التنسيق للمستخدمين. لمزيد من المعلومات، اطّلِع على هذين
المرجعَين:
- مواصفات Fonts Level 5 في CSS
- ضبط الحجم على MDN
- تبديل سلس لـ @font-face generator
- متغيّرات التصميم التراكمية (CLS) على web.dev
- طريقة جديدة للحدّ من تأثير تحميل الخطوط: أوصاف الخطوط في CSS
صورة كريستيان ستراندست على Unsplash