WOFF2

Web Open Font Format 2.0 — المعيار الذهبي لخطوط الويب، مع ضغط Brotli الذي يُحقق أصغر أحجام الملفات.

.woff2 Web Open Font Format 2.0
النوعثنائي مضغوط
الضغطBrotli
حجم الملفالأصغر (~30% أصغر من WOFF)
الدعم97%+ من المتصفحات
الأفضل لـمشاريع الويب الحديثة (موصى به)
Bobcornمُدرَج دائماً

ما هو WOFF2؟

طوّرت Google نظام WOFF2 وأصبح توصية W3C في مارس 2018. يبني على مفهوم WOFF الأصلي لكنه يستبدل ضغط zlib بـBrotli — خوارزمية ضغط طوّرتها Google أيضاً — وهي تُحقق نسب ضغط أفضل بشكل ملحوظ.

لكن WOFF2 ليس مجرد "WOFF بضغط أفضل". إنه يُقدّم تحويل معالجة مسبقة يُعيد هيكلة بيانات الخط قبل الضغط، مما يجعلها قابلة للضغط بدرجة أكبر بكثير. بالنسبة لحواف TrueType، يعني ذلك تطبيق الترميز التنبؤي على إحداثيات الحروف الرسومية — يُرمَّز كل نقطة كفرق من قيمة متنبَّأ بها بدلاً من إحداثيات مطلقة. النتيجة تدفق بايتات أكثر تكراراً يستطيع Brotli ضغطه بقوة.

هذا الأسلوب ذو الخطوتين — المعالجة المسبقة الخاصة بالمجال متبوعةً بضغط متعدد الأغراض — هو السبب في أن WOFF2 يُنتج باستمرار أصغر ملفات الخطوط بين جميع التنسيقات.

كيف يعمل

يُطبّق WOFF2 خط أنابيب ضغط ثنائي المرحلة على بيانات الخط المصدر:

  • المرحلة 1: تحويل المعالجة المسبقة — تُعيد تحويلات خاصة بالخط هيكلة البيانات لتعظيم قابلية الضغط. بالنسبة لحواف حروف TrueType الرسومية، يُستخدم الترميز التنبؤي للإحداثيات — تُرمَّز كل نقطة كفرق من الموضع المتنبَّأ به، مما يُنتج أعداداً أصغر بكثير. تُطبَّق تحويلات مماثلة على جداول الخطوط الأخرى.
  • المرحلة 2: ضغط Brotli — تُضغَط البيانات المُعالَجة مسبقاً بـ Brotli، الذي يجمع بين ضغط النافذة المنزلقة LZ77 وترميز Huffman وقاموس ثابت مدمج. يُحقق Brotli ضغطاً أفضل بنسبة 20-30% من zlib على بيانات الخطوط النموذجية.

على جانب المتصفح، تنعكس العملية: فك ضغط Brotli متبوعاً بتحويلات عكسية لإعادة بناء جداول الخط الأصلية. على الرغم من الخطوة الإضافية، فك ضغط WOFF2 في الواقع أسرع من WOFF1 — صُمِّم Brotli للفك السريع، والملف الأصغر يُنقل أسرع عبر الشبكة.

مجموعة الخطوط النموذجية مع WOFF2
@font-face {
  font-family: 'MyIcons';
  src: url('icons.woff2') format('woff2');
  font-display: swap;
}

.icon { font-family: 'MyIcons'; }
.icon-home::before { content: '\E001'; }

لاحظ أننا نُدرج إدخال src واحداً فقط — WOFF2 وحده. بتغطية 97%+ من المتصفحات، لا تحتاج كثير من المشاريع الحديثة بعد الآن إلى تنسيق احتياطي. تُخبر توجيهة font-display: swap المتصفح بعرض النص فوراً باستخدام خط احتياطي بينما يُحمَّل خط الأيقونات، مما يمنع النص غير المرئي.

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

    المزايا
  • أفضل نسبة ضغط بين جميع تنسيقات الخطوط
  • أسرع فك ضغط (Brotli محسَّن لسرعة الفك)
  • توصية W3C (معيار ويب رسمي منذ 2018)
  • مدعوم من 97%+ من المتصفحات العالمية
  • المعيار الصناعي الراسخ لخطوط الويب
    العيوب
  • غير مدعوم في أي إصدار من Internet Explorer
  • يتطلب أدوات تحويل (لا يمكن تحريره يدوياً كـ SVG Font)
  • غير مناسب لتثبيت الخطوط على مستوى نظام التشغيل (استخدم TTF لذلك)

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

يحظى WOFF2 بدعم واسع عبر جميع المتصفحات الحديثة. الثغرة الوحيدة المهمة هي Internet Explorer الذي أوقفت Microsoft دعمه في يونيو 2022.

المتصفحالحد الأدنى للإصدار
Chrome36+
Firefox39+
Safari12+
Edge14+
Opera23+
Internet Explorerغير مدعوم

يبلغ إجمالي التغطية العالمية المشتركة تقريباً 97%. يتكوّن الـ~3% المتبقية تقريباً بالكامل من تثبيتات IE القديمة ومتصفحات المحمول القديمة جداً.

نصيحة
في عام 2024 وما بعده، يكفي WOFF2 وحده لغالبية مشاريع الويب. أضف WOFF كاحتياطي فقط إذا أظهرت تحليلاتك حركة مرور IE 11 ذات معنى.

مقارنة أحجام الملفات

لتوضيح ميزة ضغط WOFF2، إليك الأحجام النموذجية لخط أيقونات يحتوي على 200 حرف رسومي:

التنسيقالحجم النموذجيالتخفيض مقارنةً بـ TTF
.ttf~80 KBالأساس
.woff~48 KBأصغر بـ~40%
.woff2~34 KBأصغر بـ~58%

تتضاعف الوفورات مع مجموعات الأيقونات الأكبر. قد يكون خط من 500 حرف رسومي 200 KB كـ TTF و120 KB كـ WOFF و82 KB فقط كـ WOFF2. عبر آلاف تحميلات الصفحة، تُترجَم هذه الكيلوبايتات مباشرةً إلى أوقات رسم أسرع وتكاليف نطاق ترددي أقل.

متى تستخدم WOFF2

دائماً. ينبغي أن يكون WOFF2 التنسيق الافتراضي لأي نشر لخط أيقونات على الويب. يوفر أصغر الملفات وأسرع فك الضغط ودعم متصفح شبه عالمي.

السيناريو الوحيد الذي لن تستخدم فيه WOFF2 هو إذا كنت تستهدف Internet Explorer — في هذه الحالة، اقرنه بـWOFF كاحتياطي:

@font-face {
  font-family: 'MyIcons';
  src: url('icons.woff2') format('woff2'),
       url('icons.woff') format('woff');
  font-display: swap;
}

تأخذ المتصفحات الحديثة ملف WOFF2؛ يتراجع IE 11 إلى WOFF. يحصل الجميع على الخط، ويحصل الجميع عليه مضغوطاً.

في Bobcorn
يُدرَج WOFF2 دائماً في تصدير Bobcorn — ليس اختيارياً لأنه تنسيق الويب الأساسي. يستخدم Bobcorn مكتبة ttf2woff2 مع ضغط Brotli للحصول على نتائج مثلى. ستجد ملف .woff2 المُولَّد إلى جانب CSS وصفحات العرض التوضيحي في كل تصدير.
نصيحة للأداء
للحصول على أفضل أداء تحميل، استخدم font-display: swap في إعلان @font-face الخاص بك. يُتيح هذا للمتصفح عرض النص فوراً بخط احتياطي بينما يُحمَّل خط الأيقونات، مما يمنع "وميض النص غير المرئي" (FOIT) الذي قد يجعل الصفحات تبدو غير مستجيبة.