themes
صيغة حزمة الثيم
الملفات وبيان theme.json v2 والحدود وقواعد الإصدارات لحزمة ثيم ساس.
الثيم أرشيف ZIP. المسارات حساسة لحالة الأحرف وتستخدم أسماء بأحرف لاتينية صغيرة وشرطات.
الملفات
| المسار | الغرض |
|---|---|
theme.json | البيان (إلزامي) |
templates/<type>.<name>.json | القوالب مثل home.default.json أو product.luxury.json |
sections/<type>/schema.json | مخططات الأقسام |
blocks/<type>/schema.json | مخططات العناصر |
snippets/<name>.json | أجزاء JSON مشتركة |
config/settings.schema.json، config/settings.defaults.json | إعدادات الثيم وقيمها الافتراضية |
locales/ar.json، locales/en.json | نصوص الواجهة |
migrations/<from>-<to>.json | ترحيل تصريحي للإعدادات بين الإصدارات |
assets/** | .css و.png و.jpg و.jpeg و.webp و.avif و.gif و.svg و.woff و.woff2 |
README، CHANGELOG، LICENSE | ملفات نصية اختيارية |
يُرفض أي نوع ملف أو موقع آخر، بما في ذلك السكربتات وHTML والروابط الرمزية والملفات المخفية.
ملف theme.json
{
"schemaVersion": 2,
"id": "luxe-perfume",
"name": { "ar": "لوكس للعطور", "en": "Luxe Perfume" },
"version": "1.1.0",
"publisher": "my-studio",
"description": { "ar": "…", "en": "…" },
"minimumPlatformVersion": "1.0.0",
"sdkVersion": "2.0.0",
"supportedLocales": ["ar", "en"],
"rtl": true,
"templates": [{ "id": "home.default", "type": "home", "file": "templates/home.default.json" }],
"sections": [{ "type": "hero", "file": "sections/hero/schema.json" }],
"blocks": [{ "type": "heading", "file": "blocks/heading/schema.json" }],
"settingsSchema": "config/settings.schema.json",
"locales": ["locales/ar.json", "locales/en.json"],
"assets": ["assets/theme.css"]
}لا تُقبل إلا المفاتيح العليا الموثقة. يجب أن يدعم الثيم العربية والاتجاه من اليمين لليسار وأن يوفر قالب home. المثال الكامل موجود في examples/themes/luxe-perfume داخل مستودع المنصة.
الحدود
| الحد | القيمة |
|---|---|
| حجم الأرشيف | 50 ميجابايت |
| عدد الملفات | 2,000 |
| الملف الواحد | 10 ميجابايت |
| الحجم الكلي بعد الفك | 100 ميجابايت |
| نسبة الضغط | 100:1 |
| ملف JSON الواحد | 2 ميجابايت |
| CSS الثيم بعد البناء | 256 كيلوبايت |
تُرفض الأرشيفات المشفرة أو متعددة الأجزاء أو التالفة قبل تخزين أي شيء.
الإصدارات
قيمة version بصيغة MAJOR.MINOR.PATCH ويجب أن تزيد مع كل إصدار تسجّله. الإصدار لا يتغير بعد إرساله للمراجعة؛ لأي تعديل ارفع إصداراً جديداً. تسجّل المنصة بصمة SHA-256 لحزمة المصدر وللحزمة المبنية، وتتحقق من بصمة الحزمة المبنية في كل مرة تُحمَّل فيها.
الترحيل
عندما يغيّر إصدار اسم إعداد أو يحذفه، أرفق ملف ترحيل حتى يحتفظ التجار بتخصيصاتهم:
{
"from": "1.0.0",
"to": "1.1.0",
"operations": [
{ "op": "rename_setting", "scope": "theme", "from": "layout_width", "to": "page_width" },
{ "op": "set_value", "scope": "section", "type": "hero", "id": "overlay", "value": 30, "onlyIfMissing": true }
]
}العمليات الأخرى هي remove_setting وmove_setting_to_block وrename_section_type وrename_block_type وrename_template. قبل أن يطبّق التاجر التحديث يرى تقريراً بما سيُحفظ وما سيُرحَّل وما لن ينتقل؛ لا يُحذف شيء دون إشعار.