خطوط متّجهة بألوان COLRv1 في متصفِّح Chrome 98

Dominik Röttsches
Dominik Röttsches
Rod Sheeter
Rod Sheeter

خطوط رسومات متجاوبة وملونة وسهلة الضغط مع جميع تصاميم التدرّج المفضّلة لديك

في الإصدار 98 من Chrome، أضافت فِرق Chrome و"الخطوط" تنسيق COLRv1، وهو تنسيق خطوط ناتج عن تطوير تنسيق COLRv0 ويهدف إلى نشر الخطوط الملونة من خلال إضافة تدرّجات ألوان وعمليات دمج ومزج وإعادة استخدام محسّن للأشكال الداخلية لإنشاء ملفات خطوط واضحة ومكثفة يتم ضغطها بشكل جيد.

اللون الآن

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

في الوقت الحالي، تشكّل الرموز التعبيرية الخطوط الملونة الوحيدة التي يراها معظم المستخدمين. تظهر الرموز التعبيرية عادةً على الويب من خلال خط الرموز التعبيرية للنظام أو عن طريق إدراج صور (وهذه العملية لها تعقيداتها الخاصة، رمز تعبيري على شكل باندا على وجهه تعابير حزينة.). وقد أدت أحجام الملفات الكبيرة، خاصةً للخطوط الملونة المستندة إلى الصور النقطية، إلى صعوبة استخدام خطوط الويب للرموز التعبيرية. من خلال إتاحة استخدام COLRv1، نأمل أن نشهد انتشارًا ل استخدام الخطوط الملونة الإبداعية على الويب وغير ذلك.

أريد معرفة ألوانك المفضّلة

لقد أنشأنا بعض الأمثلة التي يمكنك استخدامها:

تتوفّر نماذج مواد العرض من Google Fonts المستخدَمة في المثال في Google Fonts web API. وهي غير مُدرَجة في الدليل على fonts.google.com لأنّه لن تعمل إلا على الإصدار 98 من Chrome أو الإصدارات الأحدث، وتعرض أعمالًا تجريبية.

يمكنك الآن إنشاء خطوط COLRv1 باستخدام أدوات مجانية ومفتوحة المصدر. يمكنك الاطّلاع على مجمع خطوط الرموز التعبيرية الصغيرة الذي يتيح لك إنشاء خطوط COLRv1 من صور مصدر SVG، ثم تجربتها في Chrome 98 أو الإصدارات الأحدث. يمكنك إضفاء لمستك الخاصة على مظهر Bungee Spice من خلال تغيير ألوان التدرّج باستخدام هذه التعليمات.

على سبيل المثال، يمكنك تعديل خط Bungee Spice ليصبح تدرجًا باللون الأزرق والأحمر، كما يلي:

كلمة dune مكتوبة بخط Bungee Spice بالألوان، مع تدرّجات باللونين الأزرق والليموني

يمكنك نشر النتائج على تويتر على ‎@googlefonts 🙂. لماذا لا تجرب استخدام مخططات متدرجة شعاعية أو دائرية؟

الميزات الجديدة في COLRv1

يتيح تنسيق الخط طرقًا متعددة للسماح بإضافة الألوان، وكلّ طريقة منها لها مزايا وعيوب مختلفة، ولكن لم تنجح أيّ منها على الويب حتى الآن. (لمعرفة المزيد من المعلومات عن المفاضلات، اطّلِع على محادثة "دومينيك" في مؤتمر BlinkOn 15). يتيح الإصدار 98 من Chrome استخدام COLRv1، وهو إصدار مطوّر من COLRv0. نأمل أن يؤدي الجمع بين إمكانات الرسومات والملفات المكثّفة في COLRv1 إلى جعله خيارًا جيدًا للعديد من حالات استخدام الخطوط الملونة. يعمل COLRv1 على إضافة التدرجات والتركيب والمزج وتحسين إعادة استخدام الأشكال الداخلية لإنشاء ملفات أكثر إحكاما.

يتميّز COLRv1 بقدرة معبّرة مكافئة تقريبًا لمحتوى SVG Native بالإضافة إلى المزج والتركيب المضاف إليه. هناك أربعة أنواع من مساحات ملء الألوان: الألوان الكاملة والتدرّجات اللونية الخطية والتدرّجات اللونية الشعاعية والتدرّجات اللونية المموّهة/المخرّمة. يتيح لك تنسيق COLRv1 إعادة موضع عناصر الرمز المميّز وتحويلها باستخدام مجموعة كاملة من عمليات التحويل التالية: التمرير والتناوب والانحراف والتصغير. بالإضافة إلى ذلك، فهو يتيح دعم أشكال الخطوط ويعيد استخدام تنسيقات تعريف الأشكال الحالية في الخط.

إيموجي كرة بلورية زرقاء
    وأرجوانية مع نجوم مُعاد استخدامها على قاعدة بنية
إعادة استخدام الشكل في رمز الإيموجي كرة الكريستال

فكر في الرموز التعبيرية البلورية للكرة كمثال: إن الإضاءات على شكل نجمة هي نفس الشكل لكن بأحجام مختلفة، مما يعني أنه يمكن تغيير موضع شكل واحد فقط وإعادة استخدامه بدون تكرار داخل الملف. يتيح لك التنسيق مجددًا استخدام رمز كامل في رمز جديد، بدون الحاجة إلى ترميز الأشكال نفسها لكل رمز بشكلٍ متكرّر. تخيل خطًا ملونًا مزخرفًا يحتوي على زخارف نباتية، حيث يتم وضع أشكال الزهور نفسها على أحرف مختلفة من خلال الإشارة إلى الرموز الملونة الحالية فقط. بالنسبة لحالة استخدام خط الويب، يتم ضغط COLRv1 جيدًا تحت woff2. على سبيل المثال، يشغل الإصدار التجريبي من Twemoji باستخدام COLRv1 مساحة تبلغ حوالي 1.2 ميغابايت بعد تضخيم حجمه، ولكنّ حجمه يبلغ حوالي 0.6 ميغابايت بتنسيق woff2. تم تقليل حجم إصدار من مجموعة الرموز التعبيرية الكاملة في Noto من 9 ميغابايت لإصدار الصورة النقطية إلى 1.85 ميغابايت بتنسيق COLRv1+woff2.

رسم بياني شريطي يقارن بين Noto Emoji كخط مخطّط بياني وخط COLRv1، حجمه حوالي 9 ميغابايت مقارنةً بحجم 1.85 ميغابايت
حجم خط Noto Emoji بتنسيق CBDT/CBLC مقارنةً بتنسيق COLRv1 بعد ضغط WOFF2

حالات استخدام الخطوط الملونة

العناوين الجذابة

يُبرز الخط الملوّن الجديد العناصر المرئية المميّزة والعناوين والإعلانات البانر.

Plakato Color Happy 2022 يعرض تدرّجات ألوان نشطة، وهو من تصميم شركة Underware المبتكرة لتصميم الخطوط (Twitter: ‎@underware، Instagram: ‎@underwarefoundry). يمكنك الاطّلاع على مزيد من المعلومات حول أول إصدار من COLRv1 من Underware في مشاركة المدونة الخاصة بها.

لن يتم استبدال الصور بعد الآن: خطوط الرموز التعبيرية

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

مقتطف код يعرض صورًا مضمّنة كعلامات img وبيانات وصفية كجزء من سجلّ محادثة
استبدال الصور في Google Chat

إذا كان لديك خط رموز تعبيرية، ما عليك سوى عرض النص بالخط، على النحو التالي:

<style>
@import url(https://fonts.googleapis.com/css2?family=Noto+Color+Emoji);

.emoji {
  font-family: "Noto Color Emoji", sans-serif;
}
</style>
<span class="emoji">🙂</span>

وبالمثل، في مكوّن التفاعل باستخدام الرموز التعبيرية، يوفّر COLRv1 الفرصة لاستخدام ملف خط مضغوط بدلاً من كتالوج يحتوي على مواد عرض الصور.

واجهة مستخدم أداة اختيار رمز تعبيري
كما تُستخدَم على GitHub
أداة اختيار رموز الإيموجي للتفاعلات على GitHub

تخيل عدد الصور التي عليك جلبها لإنشاء أداة اختيار إيموجي كاملة.

استخدام الألوان في خطوط الرموز

يضيف استخدام الألوان في خطوط الرموز مزيدًا من الوضوح ويسهّل فهم الرموز.

ثلاثة رموًز
خضراء بإطار أسود
رموز Material ذات اللونَين من https://fonts.google.com/icons

التعبير الفني

تتيح الخطوط الملونة التي توفّر مساحة أشكالًا جديدة للتعبير الفني في النص على الويب. يستخدِم هذا المثال لخط عربي بأسلوب الكوفي تدرّجات لونية كتفسيرٍفني لشكل تدفق الحبر في الخط العربي التقليدي عند تطبيقه على أسلوب الكوفي للكتابة العربية، والذي ينبع من عدم كتابته باستخدام قلم حبر بل يتم نحته في الحجر.

حروف عربي
بدرجات لونية من الأسود إلى الأحمر
Reem Kufi Ink، خط عربي من تأليف "خالد حسني"

رصد الميزات

في الوقت الحالي، يمكن معرفة ما إذا كان محرّك المتصفّح يتيح استخدام تنسيق معيّن لخط كتابة بالألوان من خلال رصد وكيل المستخدم أو البحث في مكتبة مثل ChromaCheck من @PixelAmbacht لاختبار عرض ال glyphs بالألوان على Canvas. كلا الحلّين ليسا مثاليين. ومن المفترض أن يكشف اختبار الميزات عن ميزة محدّدة فقط ويتجنّب سرقة وكيل المستخدم. يجب ألا تحتاج مكتبة ChromaCheck إلى تنفيذ عمليات لوحة ثنائية الأبعاد تستهلك موارد كثيرة لتحديد مدى التوافق.

يريد فريق Chrome تحسين ذلك، وبدأ سلسلة من المناقشات [1، 2] في مجموعة عمل CSS لتقديم معلومات حول إتاحة تكنولوجيا خطوط المتصفّح في JavaScript وبشكل صريح في CSS. يخطّط الفريق لإطلاق ميزة فعّالة لرصد الخطوط الملونة وتقنيات الخطوط الأخرى في إصدار مستقبلي من Chrome.

إذا كنت ترغب في استخدام الخطوط الملونة في مشروعك الآن عندما يقتصر دعم COLRv1 على Chrome، فهناك طريقتان يمكنك من خلال ذلك: أن تطلب من بائع الخطوط الحصول على خط COLRv1 يحتوي على رموز رسومية أحادية اللون أيضًا. أما موظّفو وكيل المستخدمين الذين لا يتيحون استخدام COLRv1، فسيستخدمون رسومًا رمزية أحادية اللون. بدلاً من ذلك، يمكنك استخدام مكتبة ChromaCheck أو فحص وكيل المستخدم لتحديد ما إذا كان دعم COLRv1 متاحًا. بعد ذلك، يمكنك إرسال ملف CSS يحمِّل خطوط COLRv1 في وكلاء المستخدمين المتوافقين مع استخدام تنسيق خط بديل، مثل COLRv0 أو تنسيق خط مخطّط بكامله أو OpenType SVG في المتصفّحات الأخرى.

دعم لوحة خطوط CSS

سيكون من المفيد جدًا عدم استخدام خط جديد عند استخدام مجموعة مختلفة من الألوان. لحسن الحظ، تتوفّر آلية: خاصية palette-font في CSS. ويعمل فريق Chrome على إضافة إمكانية استخدام لوحة الخطوط في Chrome.

خطوط COLRv1 وتأثيرها فيك

إذا كانت خطوط COLRv1 تثير اهتمامك، يمكنك أن تسأل مورّد الخطوط عن خطوط COLRv1 الملوّنة لاستخدامها في مشروعك، أو يمكنك تجربة الأمثلة والعروض التوضيحية أعلاه، أو لماذا لا تبدأ مباشرةً وتجرب إنشاء خطك الخاص؟

إذا كانت لديك ملاحظات حول COLRv1 في Chrome، يُرجى نشرها على قائمة المراسلات blink-dev، أو إرسال مشكلة في نظام تتبُّع المشاكل. إذا كانت لديك ملاحظات بشأن تنسيق الخط COLRv1 نفسه، يُرجى الإبلاغ عن مشكلة في مستودع GitHub لمواصفات COLRv1.

يسرّنا أنّ الإصدار 98 من Chrome يقدّم مستوى جديدًا تمامًا من الابداع الطباعي على الويب من خلال COLRv1.

مزيد من المعلومات

إذا أردت الاطّلاع على مزيد من التفاصيل، إليك بعض المراجع الأخرى:

للتعرّف على آلية عمل COLRv1 وكيفية تنفيذه في Chrome، يمكنك الاطّلاع على محاضرة "دومينيك" في مؤتمر BlinkOn 15.

شكر وتقدير

نشكر بشدة "بهداد إسفاهبود" و"كوسيمو لوبو" و"بيتر كونستابل" و"بن واغنر" و"فيرنر ليمبيرغ" و"ديف كروسلند" و"فلاديمير ليفانتوفسكي" و"جوناثان كيو" و"لورانس بيني" و "كريس ليللي" و"ديفيد جوناثان روس" و"Underware" و"جست فان روسوم" و"رول نيسكنز" و غيرهم على مساهماتهم في COLRv1.