خلال بضعة أيام، سأدمج هذا الطلب في النواة الأساسي الذي يُجري تغييرًا في طريقة تجميع أوراق تنسيق الإضافات. يؤثر هذا التغيير على متغيرات ألوان SCSS المستخدمة في أوراق تنسيق الإضافات. باختصار، يجب استبدالها بخصائص CSS المخصصة. تم تحديث معظم الإضافات بالفعل، وفي كثير من الحالات، يكون هذا التغيير بسيطًا؛ حيث يجب استبدال متغير SCSS بخاصية CSS مخصصة:
- background-color: $primary-low;
+ background-color: var(--primary-low);
يحتوي الدليل الموجود على Update themes and plugins to support automatic dark mode على أمثلة إضافية، ويوضح أيضًا كيفية التعامل مع تحويلات الألوان الأكثر تعقيدًا. (يجب أن يكون هذا الدليل كافيًا لمؤلفي الإضافات لضمان عمل تنسيقاتهم بشكل صحيح.)
إذا كنت تتساءل عن سبب إجراء هذا التغيير، فاستمر في القراءة.
في السابق، كان يتم تجميع أوراق تنسيق النواة الأساسي والإضافات لكل سمة بغرض تضمين مخطط ألوان السمة في كل مكان تُستخدم فيه متغيرات ألوان SCSS. هذا يعني أن الموقع الذي يحتوي على العديد من السمات (أو بيئة متعددة المواقع) سيستغرق وقتًا طويلاً للتجميع المسبق، لأنه سيتعين عليه ضرب عدد أوراق تنسيق النواة والإضافات في عدد السمات النشطة لتغطية جميع التوليفات الضرورية.
منذ أغسطس 2020، وللدعم التبديل التلقائي للوضع الداكن، أضفنا ورقة تنسيق منفصلة لتعريف الألوان تخزن متغيرات الألوان كخصائص CSS مخصصة. سمح لنا هذا التغيير بالتبديل بين مخططات الألوان على الفور، لكنه أيضًا جعل الألوان مجردة في معظم أوراق التنسيق. بفضل سحر خصائص CSS المخصصة، يمكننا الآن الإشارة إلى الألوان في كل مكان (النواة، الإضافات، السمات) دون الحاجة إلى تحميل كل سمة عند تجميع ورقة التنسيق.
على مدار الأشهر القليلة الماضية، كنا نحول جميع الإضافات لاستخدام خصائص CSS المخصصة. الغالبية العظمى من إضافات Discourse محدثة الآن، ولكن ربما توجد إضافة نادرة لا تزال تستخدم متغيرات SCSS للألوان، وسيحتاج ذلك إلى تحديث.
