WOFF

Web Open Font Format — أول تنسيق خط مصمم خصيصاً للويب.

.woff Web Open Font Format 1.0
النوعثنائي مضغوط
الضغطzlib (deflate)
حجم الملفأصغر بـ~40% من TTF
الدعم98%+ من المتصفحات
الأفضل لـبديل للمتصفحات القديمة
Bobcornتصدير اختياري

ما هو WOFF؟

طوّرت Mozilla وOpera وMicrosoft مجتمعةً WOFF 1.0 بوصفه أول تنسيق خط مبني من الصفر للويب. أصبح توصية W3C في ديسمبر 2012، محققاً إنجازاً بارزاً في طباعة الويب.

في جوهره، WOFF غلاف حول بيانات خط TrueType أو OpenType الموجودة. يُطبّق ضغط zlib لتقليل حجم الملف ويتضمن حقول بيانات وصفية اختيارية للترخيص والإسناد. قبل WOFF، كان على مطوري الويب تقديم ملفات TTF أو OTF خام — كبيرة وغير مضغوطة وتفتقر إلى أي طريقة معيارية لتضمين معلومات الترخيص.

كان الابتكار الرئيسي هو إنشاء حاوية خط ويب متخصصة حلّت ثلاث مشكلات في آنٍ واحد: أحجام ملفات أصغر عبر الضغط، وكتلة بيانات وصفية معيارية لترخيص الخط، وتنسيق يستطيع المتصفح التحقق منه بسهولة وعزله للأمان.

كيف يعمل

يُغلّف حاوية WOFF الجداول الموجودة في الخط (من ملفات مصدر TTF أو OTF) بـضغط zlib لكل جدول على حدة. يُضغَّط كل جدول في الخط الأصلي — حواف الحروف الرسومية وبيانات التتباع وسجلات التسمية — بشكل مستقل، مما يتيح للمتصفح فك ضغط الجداول التي يحتاجها فحسب.

يبدأ رأس WOFF بتوقيع من أربعة بايتات (wOFF)، يليه نوع الخط (يشير إلى ما إذا كانت البيانات المُغلَّفة TrueType أو CFF)، ثم الحجم المضغوط الإجمالي، وأخيراً مؤشر إلى كتلة البيانات الوصفية الاختيارية. يقرأ المتصفح هذا الرأس، ويفك ضغط الجداول المنفردة إلى صورتها الأصلية، ثم يسلّم بيانات الخط المُعاد تشكيلها إلى محرك تصيير النص.

من منظور محرك التصيير، ملف WOFF المفكوك مطابق للملف الأصلي TTF أو OTF — الضغط شفاف تماماً.

الاستخدام النموذجي لـ @font-face
@font-face {
  font-family: 'MyIcons';
  src: url('icons.woff2') format('woff2'),
       url('icons.woff') format('woff');
}

يجرّب المتصفح كل إدخال src بالترتيب. تُحمّل المتصفحات الحديثة ملف WOFF2 (أصغر وأسرع)؛ أما المتصفحات القديمة التي لا تفهم WOFF2 فتلجأ إلى ملف WOFF. يوفر هذا الأسلوب التتالي أداءً مثالياً مع أقصى توافق.

المزايا والعيوب

    المزايا
  • ضغط جيد — أصغر بنحو 40% من TTF الخام
  • مدعوم على نطاق واسع، بما في ذلك IE 9 وما فوق
  • توصية W3C (معيار ويب رسمي)
  • يتضمن دعم البيانات الوصفية والترخيص
  • تحويل مباشر من مصادر TTF أو OTF
    العيوب
  • تجاوزه WOFF2 بضغط أفضل
  • أكبر بـ~30% من ملف WOFF2 المكافئ
  • ضغط zlib أقل كفاءة من Brotli

دعم المتصفحات

دعمت جميع المتصفحات الرئيسية WOFF منذ أوائل العقد الثاني من الألفية الثالثة، مما يجعله أكثر تنسيقات الخطوط الاحتياطية أماناً للويب. يغطي نطاقاً أوسع من المتصفحات مقارنةً بـ WOFF2 لأنه يشمل دعم الإصدارات القديمة من Internet Explorer.

المتصفحالحد الأدنى للإصدار
Chrome6+
Firefox3.5+
Safari5.1+
Internet Explorer9+
Edgeجميع الإصدارات
Opera11.1+

بتغطية عالمية تبلغ 98%+ من المتصفحات، يُفهم WOFF من قِبَل كل متصفح تقريباً لا يزال في الاستخدام الفعّال. الثغرة الوحيدة الجديرة بالملاحظة هي IE 6-8، الذي يتطلب EOT بدلاً منه.

WOFF مقابل WOFF2

WOFF2 هو خلف WOFF، وهو من الناحية العملية تحسين صريح. إليك المقارنة:

الجانبWOFFWOFF2
الضغطzlib (deflate)Brotli
نسبة الضغطأصغر بـ~40% من TTFأصغر بـ~30% من WOFF
المعالجة المسبقةلا يوجدتحويل بيانات الحرف الرسومي
سرعة فك الضغطسريعأسرع
دعم IEIE 9+Edge فقط (لا IE)
معيار W3C20122018

يوفر WOFF2 ضغطاً أفضل بنحو 30% من WOFF بفضل Brotli وخطوة معالجة مسبقة متخصصة تجعل بيانات الحروف الرسومية أكثر قابلية للضغط. سرعة فك الضغط أيضاً أعلى. دعم المتصفحات الحديثة لـ WOFF2 واسع بالقدر ذاته — الثغرة الوحيدة هي Internet Explorer 9-11 الذي يدعم WOFF لكن لا يدعم WOFF2.

لمعظم المشاريع التي تستهدف المتصفحات من عام 2024 فصاعداً، يكفي WOFF2 وحده. الميزة الوحيدة المتبقية لـ WOFF هي تغطية IE 9-11.

متى تستخدم WOFF

على الرغم من تجاوز WOFF2 له، لا تزال هناك أسباب وجيهة لتضمين WOFF في مجموعة خطوطك:

  • كبديل إلى جانب WOFF2 — ضع WOFF2 أولاً في إعلان @font-face وWOFF ثانياً، مما يمنح المتصفحات الحديثة الملف الأصغر مع ضمان حصول المتصفحات القديمة على الخط.
  • عند الحاجة لدعم IE 11 — يدعم IE 11 WOFF لكن لا يدعم WOFF2، لذا WOFF هو أفضل تنسيق مضغوط متاح لهذا المتصفح.
  • في البيئات التي لا تدعم Brotli — قد لا تتعامل بعض أدوات البناء أو الوكلاء أو شبكات CDN القديمة مع ضغط Brotli في WOFF2 بشكل صحيح؛ فضغط zlib في WOFF مدعوم عالمياً.

إذا لم ينطبق أي من هذه على مشروعك، يمكنك تخطي WOFF بأمان واستخدام WOFF2 فقط.

في Bobcorn
في مربع حوار التصدير الخاص بـ Bobcorn، يُعدّ WOFF تنسيقاً اختيارياً. إذا كان مشروعك يحتاج دعم IE 11، فعّله إلى جانب WOFF2 المُدرَج دائماً. بالنسبة لمعظم المشاريع الحديثة، يمكنك تخطي WOFF كلياً والاعتماد على WOFF2 وحده.