themes
فحص الثيم وسياسة CSS
ما يتحقق منه فحص الثيم، وكيف تُعرض النتائج، وقواعد CSS التي يجب أن يلتزمها كل ملف أنماط.
يعمل فحص الثيم عند تشغيل saas theme check محلياً (فحص أولي سريع)، وعند رفع إصدار (الفحص المعتمد)، ومرة أخرى أثناء المراجعة الآلية. لكل نتيجة معرّف قاعدة وملف ومسار ورسالة ودرجة خطورة. الأخطاء توقف الإصدار، والتحذيرات تظهر لك وللمراجع.
مجموعات القواعد
| البادئة | ما تغطيه |
|---|---|
package.* | الاستخراج الآمن: المسارات وأنواع الملفات المسموحة والأحجام ونسبة الضغط والتشفير والمدخلات المكررة أو الخاصة وصيغة JSON وحجمه |
manifest.* | مفاتيح theme.json والمعرّف والإصدار واللغات ودعم العربية والاتجاه من اليمين لليسار وتوافق المنصة والقوالب والترحيل |
schema.* | تعريفات الإعدادات: المعرفات والأنواع والعناوين والقيم الافتراضية والنطاقات وخيارات الاختيار |
check.section.*، check.block.* | المخططات وأدوات العرض والمواضع وأعداد العناصر والحاويات |
check.dynamic_source.* | أسماء مصادر البيانات الديناميكية وأنواعها وتوفرها في القوالب |
check.locale.* | ملفات اللغة والنصوص الناقصة؛ الترجمة الناقصة تحذير |
check.asset.*، check.template.*، check.reference.* | الإشارة إلى ملفات أو قوالب أو عناصر غير موجودة |
tree.* | أشجار القوالب: معرفات العُقد وعمق التداخل وقواعد العناصر والحدود |
سياسة CSS
يُبنى CSS الخاص بك قبل تخزينه:
- كل محدِّد يُحصر تحت جذر ثيمك
[data-saas-theme="…"]، وتُحوَّل:rootوhtmlوbodyإلى هذا الجذر. - القواعد المسموحة هي
@mediaو@supportsو@font-faceو@keyframesو@container. تُرفض@importوقواعد التصريح الأخرى، وتُسبق أسماء الحركات بمعرّف الثيم. - يجب أن يشير
url()إلى ملف في حزمتك، ويُعاد كتابته إلى رابط أصل بحسب محتواه؛ الروابط الخارجية مرفوضة. - يُحذف
position: fixedلأنه قد يغطي واجهة المنصة. - تُرفض التعبيرات والسلوكيات القديمة والقيم الشبيهة بالسكربتات.
- الحد الأقصى لـCSS بعد البناء 256 كيلوبايت.
المراجعة المعروضة
بعد اجتياز فحص الثيم، تعرض المنصة كل قوالب ثيمك على كتالوج تجريبي بثلاث حالات — فارغ (بلا منتجات ولا تصنيفات)، ومعتاد، وضغط (أسماء وأوصاف طويلة، بلا صور، ومنتجات كثيرة) — بالعربية والإنجليزية. لا يُشغَّل أي شيء من حزمتك: عارض المنصة هو من يرسم أقسامك وكتلك التصريحية. تجري المراجعة نفسها عند الرفع وعند saas theme dev وعند الإرسال للمراجعة.
| القاعدة | الخطورة | المعنى |
|---|---|---|
review.render.section_failed | خطأ | قسم أو كتلة تفشل في العرض في حالة أو لغة ما؛ سيراها العملاء مفقودة |
review.render.template_failed | خطأ | قالب كامل يفشل في العرض |
review.a11y.image_alt | تحذير | صور تُعرض بلا نص بديل |
review.a11y.link_name | تحذير | روابط بلا اسم يمكن الوصول إليه |
review.a11y.contrast | تحذير | تباين النص مع الخلفية الافتراضية أقل من 4.5:1، أو اللون المميز مع الخلفية أقل من 3:1 |
review.rtl.physical_property | تحذير | خصائص CSS فيزيائية (left/right) لا تنعكس في العربية؛ استخدم الخصائص المنطقية |
review.perf.html_size | تحذير | صفحة معروضة أكبر من 300 كيلوبايت |
review.perf.css_size | تحذير | CSS المترجم أكبر من 100 كيلوبايت |
review.perf.image_size | تحذير | صورة أكبر من 1 ميغابايت |
review.perf.assets_size | تحذير | مجموع الملفات أكبر من 8 ميغابايت |
review.perf.font_count | تحذير | أكثر من أربعة ملفات خطوط |
أخطاء العرض تمنع الإصدار (theme_render_failed)؛ التحذيرات تظهر لك وللمراجع. يمكنك معاينة الحالات نفسها في متجر التطوير (راجع الأداة والمراجعة والنشر).
معالجة النتائج
أصلح كل الأخطاء ثم ارفع مجدداً؛ المنصة لا تقبل الحزمة جزئياً. إذا بدت لك نتيجة غير صحيحة، اذكر معرّف القاعدة والملف عند التواصل مع الدعم.