رموز التصميم في منشئي واجهة بدون كود للحفاظ على ثيمات متسقة
رموز التصميم في منشئي واجهة بدون كود تساعد الفرق على تعريف الألوان والطباعة والمسافات والمتغيرات مرة واحدة، ثم نشر واجهة متسقة دون تخمين.

لماذا تنحرف واجهات الفرق عن الاتساق
نادراً ما يبدأ عدم اتساق الواجهة كمشكلة "تصميم" بحتة. يبدأ كمشكلة وقت. يحتاج أحدهم زرًا الآن، فينسخه من صفحة أخرى ويعدّله حتى يبدو مقبولًا.
هكذا تتسلل الفروقات الصغيرة: لونان أزرقان متقاربان قليلاً، نصف قطر زاوية يتغير من 6 إلى 8، عنوان يبدو "قويًا إلى حد ما"، وحشوة تعتمد على من بنى الشاشة. في منشئي الواجهات بدون كود، يصبح من الأسهل إجراء تعديلات فردية صغيرة لأن أدوات التحكم متاحة والشعور أن التغيير غير مؤذٍ.
مع نمو المنتج، يتسارع الانحراف. مزيد من الصفحات يعني مزيدًا من النماذج المكررة. مزيد من البَانِين يعني مزيدًا من الأذواق الشخصية. مزيد من الزملاء يعني مزيدًا من "الإصلاحات السريعة" المنفصلة. إذا بنى شخص البوابة العميلية وآخر لوحة الإدارة، ينتهي بك الأمر بتفسيرين مختلفين لنفس العلامة.
الـ"تخمين بالعين" يظهر في العمل اليومي: اختيار لون حتى "يبدو مناسبًا"، دفع المسافات ببضعة بكسلات لأن الشاشة "ضيقة جدًا"، إنشاء نمط زر جديد بدلًا من استخدام الموجود، مزج أحجام الخطوط لأن الافتراضي "صغير قليلًا"، أو إصلاح شاشة واحدة دون فحص الباقي.
التكلفة تظهر لاحقًا. تتباطأ المراجعات لأن الملاحظات تصبح ذاتية ("اجعلها تشبه الصفحة الأخرى أكثر"). يتكدس إعادة العمل لأن التغييرات صعبة التطبيق في كل مكان. يتباعد الويب والهاتف لأن أشخاصًا مختلفين يتخذون قرارات متشابهة لكنها ليست متطابقة.
تحل رموز التصميم هذا باستبدال قرارات "قريبة بما يكفي" بقيم مشتركة. تبقى الواجهة متسقة حتى مع نمو الفريق والتطبيق.
رموز التصميم بلغة بسيطة
رموز التصميم هي قرارات مسمّاة بشأن واجهتك. بدلًا من قول "استخدم هذا الأزرق" أو "اجعل الأزرار مريحة"، تعطي تلك الخيارات أسماء واضحة يعاد استخدامها.
الرمز ليس القيمة الخام. قد تكون القيمة الخام 16px أو #2563EB أو 600 (وزن الخط). الرمز هو التصنيف الذي يشرح ما يعنيه هذا القيمة في منتجك، مثل space-4 أو color-primary أو font-weight-semibold.
هذا التحول يوقف مشكلة التخمين بالعين. عندما يختار الناس القيم اعتمادًا على الإحساس، تجمع ببطء خمسة أزرقات مختلفة، ثلاثة عناوين متباينة قليلًا، ومسافات تتغير من شاشة إلى أخرى.
تعمل الرموز بشكل أفضل كمصدر واحد للحقيقة. إذا كانت كل شاشة ومكوّن تشير إلى نفس مجموعة الأسماء، يمكنك تغيير الشكل عبر التطبيق كله بتحديث قيم بعض الرموز بدلًا من البحث عبر عشرات الشاشات.
الرموز تربط أيضًا التصميم والبناء. يستخدم المصممون أسماء الرموز في المواصفات، ويستخدم البنّاؤون نفس الأسماء في منشئ الواجهة بدون كود، فتنجو النية التصميمية من عملية التسليم.
تندرج معظم مجموعات الرموز في فئات قليلة: أدوار الألوان (primary، background، text، danger)، الطباعة (عائلة الخط، الأحجام، الأوزان، ارتفاع السطر)، خطوات المسافات (padding، margins، gaps)، الشكل والعمق (radius، سماكات الحدود، الظلال)، وأحيانًا الحركة (المدد والانسياب).
مجموعة الرموز التي تحتاجها معظم المنتجات
معظم الفرق لا تحتاج مكتبة رموز ضخمة. تحتاج مجموعة صغيرة وواضحة تغطي معظم الشاشات لتتوقف التخمينات. هذا مهم أكثر في أدوات بدون كود، حيث تنتشر التعديلات "فقط هذه المرة" بسرعة.
مجموعة بداية عملية تغطي خمس مجموعات:
- الألوان: بعض أدوار العلامة (primary، secondary)، مجموعة محايدة (text، background، border)، وأدوار الحالة (success، warning، error). أضف أدوار hover و disabled إذا استخدمتها كثيرًا.
- الطباعة: عائلة خط واحدة (اثنتان كحد أقصى)، مقياس أحجام صغير (مثل 12/14/16/20/24/32)، الأوزان التي تستخدمها فعلًا، وارتفاعات السطر المطابقة.
- المسافات: سلم بسيط (مثل 4/8/12/16/24/32) للحشو والفجوات.
- الشكل والتأثيرات: بعض أنصاف أقطار الزوايا (none/sm/md/lg)، سماكات الحدود، ومجموعة صغيرة من الظلال (0-3).
- الحركة (اختياري): فقط إذا كان تطبيقك يستخدم رسومًا متحركة، مع 2-3 مدد و1-2 أسماء انسياب.
قاعدة واحدة تحافظ على المكتبة: إذا ظهرت قيمة في ثلاث أماكن أو أكثر، اجعلها رمزًا. إذا ظهرت مرة واحدة، تعامل معها بشك قبل أن تصبح "المعيار الجديد".
قواعد تسمية تمنع فوضى الرموز
أسماء الرموز الجيدة تمنع الشجارات قبل أن تبدأ. إذا كان بإمكان الناس تخمين اسم الرمز دون بحث، سيعيدون استخدامه. إذا لم يستطيعوا، سينشئون واحدًا جديدًا وينقسم الثيم.
استخدم أسماء معنوية أولًا (ليس الألوان)
فضّل الأسماء التي تصف وظيفة القيمة في الواجهة، لا مظهرها. text-primary يخبر الجميع متى يُستخدم. blue-600 مجرد دلو طلاء.
نمط مفيد ذو طبقتين:
- الرموز الأساسية: اللبنات الخام مثل
color-blue-600,space-16,font-14 - الرموز المعنوية: أدوار الواجهة مثل
text-primary,bg-surface,border-muted
في منشئ واجهة بدون كود، الرموز المعنوية هي ما يساعد غير المصممين على اختيار القيمة الصحيحة بسرعة دون التخمين.
قواعد لإضافة رموز جديدة
معظم مكتبات الرموز تزدحم لأن "الجديد" هو الوضع الافتراضي. اجعل "إعادة الاستخدام" هو الافتراضي.
حافظ على القواعد بسيطة:
- أضف رمزًا فقط إذا كان مستخدمًا في مكانين أو أكثر أو يدعم حالة فعلية (hover, disabled, error).
- إذا كان خاصًا مرة واحدة، اجعله محليًا للمكوّن.
- إذا اختلف رمزان بفوارق طفيفة، اختر واحدًا واحذف الآخر.
- إذا لم تستطع شرح غرض الرمز في جملة واحدة، لا تضفه.
ثم نمط التسمية. اختر أسلوب كتابة واحد (kebab-case يعمل جيدًا)، استخدم بادئات ثابتة (text-, bg-, border-, icon-, space-)، واحفظ مقاييس الأرقام متسقة (space-4, space-8, space-12, space-16).
خطوة بخطوة: عرّف الرموز مما تستخدمه بالفعل
عامل واجهتك الحالية كدليل. قبل إنشاء أي شيء جديد، قم بجرد سريع: اجمع لقطات شاشة، افحص الأنماط، واكتب كل قيمة لون وحجم خط ومسافة تراها في الإنتاج (بما في ذلك القيم "لمرة واحدة").
بعدها، قلل التكرارات بشكل مقصود. عادةً ستجد نفس الرمادي مستخدمًا بخمس قيم hex متقاربة، أو مسافات تتقافز بين 14 و15 و16. اختر قيمة واحدة للاحتفاظ بها، ثم اربط القيم القديمة بها. هنا تصبح الرموز عملية: تتوقف عن الجدال حول الذوق وتبدأ في الاتفاق على مجموعة صغيرة من الخيارات المشتركة.
يمكن بناء إصدار أولي قوي بتمرير واحد:
- رموز لوحة الألوان: ألوان خام (brand, neutrals, feedback colors)
- الرموز المعنوية: ألوان ذات معنى (text, background, border, success, warning)
- مقياس الطباعة: 6-8 أحجام مع أدوار واضحة (body, label, H1-H3)
- سلم المسافات: 6-10 خطوات قابلة لإعادة الاستخدام
- أساسيات المكونات: بعض أنصاف الأقطار والظلال القياسية
لكل رمز، أضف جملة إرشادية واحدة: أين يُستخدم وأين لا يُستخدم. مثال: "text-muted مخصص لنص المساعدة، ليس للأزرار الأساسية."
أخيرًا، قرر الملكية. يساعد تسمية شخص واحد (أو مجموعة صغيرة) للموافقة على التغييرات، بقاعدة بسيطة: "أضف رمزًا جديدًا فقط إذا لم يكن هناك رمز قائم يناسب." هذا يحافظ على ثبات النظام أثناء نمو المنتج.
كيف تطبّق الرموز داخل منشئ واجهة بدون كود
ابدأ بالإعدادات الافتراضية التي ترثها كل شاشة: نمط نص أساسي (الخط، الحجم، ارتفاع السطر، اللون)، أنماط عناوين (H1-H3)، ومجموعة صغيرة من قواعد تخطيط حتى لا تبدو الصفحات عشوائية.
بعدها، اربط الرموز بما يسميه أداتك إعدادات الثيم: متغيرات الثيم، الأنماط العالمية، presets، أو إعدادات نظام التصميم. الهدف أن اختيار "Primary" أو "Space/16" يختار رمزًا، لا قيمة لمرة واحدة.
اجعل الأنماط القابلة لإعادة الاستخدام مركّزة على الأنماط التي تستعملها يوميًا. مجموعة بداية قد تشمل نمط بطاقة (خلفية، حد، نصف قطر، حشو، ظل)، نمط حقل نموذج (وسم، مدخل، نص مساعدة)، أنماط أزرار، وكثافة صفوف الجداول وحالات hover.
الحالات هي المكان الذي يتسلل منه عدم الاتساق، لذا عرّفها مبكرًا. يجب أن يكون لكل مكوّن تفاعلي قيم مدفوعة بالرموز للـ hover، focus، disabled، و error. يجب أن يستخدم الـ focus نفس لون الحافة وسمكها في كل مكان. يجب أن يستخدم الـ error نفس ازدواجية الحدود والنص.
أخيرًا، خطط للمشاركة. إذا كانت مساحة العمل تدعم القوالب أو الوحدات القابلة لإعادة الاستخدام، ضع الرموز والأنماط الأساسية في "تطبيق بداية" تنسخ المشاريع الجديدة منه. هكذا تبدأ الشاشات الجديدة متسقة افتراضيًا.
متغيرات المكونات التي تظل متسقة
المتغيرات هي المكان الذي يصبح فيه نظام الواجهة هادئًا ومتوقعًا أو يتحول إلى كومة تعديلات لمرة واحدة. تعمل المتغيرات أفضل عندما تكون طبقة رقيقة تربط بالرموز للألوان، الطباعة، والمسافات.
ابدأ بمجموعة صغيرة من المكونات الأساسية التي تستخدمها في كل مكان: أزرار، مدخلات، شارات، تنبيهات، وبطاقات. اعط كلًا منها بعدي اختيار: الحجم و الغاية. يجب أن يكون الحجم ميكانيكيًا (الطباعة والمسافات). يجب أن تكون الغاية معنوية (الألوان المعنوية).
الحجم والغاية بدون تخمين
تحافظ متغيرات الحجم على الاتساق عندما تغير فقط بعض الخصائص المبنية على الرموز: حجم الخط، الحشو، ونصف القطر. يجب أن تغير متغيرات الغاية الأدوار اللونية (الخلفية، النص، الحد) بالدرجة الأساسية وألا تغيّر المسافات سرًا.
مجموعة تغطي معظم المنتجات:
- الأحجام: sm، md، lg
- الغايات: primary، secondary، danger
- الحالات: default، hover، focus، disabled
قواعد تفاعل يمكن للفرق اتباعها
عيّن قواعد حالة تنطبق على كل المكونات، ليس الأزرار فقط. على سبيل المثال: الـ focus دائمًا يظهر حلقة مرئية، الـ hover يزيد التباين بشكل موحّد، و الـ disabled يستخدم نفس الشفافية ويمنع النقر.
أضف متغيرًا جديدًا فقط عندما يعبّر عن معنى متكرر (مثل "danger"). إذا كان حاجة تخطيط لمرة واحدة، فعادةً ما يكون مكوّنًا جديدًا أو غلافًا، ليس متغيرًا قد يُساء استخدامه لاحقًا.
الحفاظ على توافق ثيمات الويب والهاتف
عندما يُطلق منتج على الويب والهاتف، "نفس العلامة" لا تعني دائمًا "نفس البيكسلات". الهدف أن تشعر الشاشات أنها من عائلة واحدة، حتى لو كانت المنصات لها افتراضات مختلفة.
ابدأ برموز مشتركة تنتقل جيدًا: أدوار الألوان (background, surface, text, primary, danger)، مقياس الطباعة (الأحجام والأوزان)، ورموز المسافات (4، 8، 12، 16، 24). هذه تزيل التخمين وتجعل التحديثات متوقعة.
ثم اقبل الاختلافات الحقيقية. يحتاج الهاتف إلى أهداف لمس أكبر وغالبًا مسافات أكثر قليلًا. يحتاج الويب إلى جداول أكثر كثافة، أشرطة جانبية، وتصميمات متعددة الأعمدة. قد تختلف الخطوط أيضًا: قد تستخدم خط العلامة على الويب لكن تفضّل الافتراضات الخاصة بالمنصة على iOS/Android للقراءة والأداء.
نهج عملي هو طبقتان: رموز عالمية تحدد المعنى، ورموز منصات تحدد كيف يُعرض ذلك المعنى.
- عالمي:
color.text,color.primary,space.md,radius.sm,type.body - للويب فقط:
type.family.web,control.height.web,space.tableRow - للجوال فقط:
type.family.mobile,control.height.mobile,space.touch
حافظ على أسماء المكونات متناسقة (Button/Primary) حتى لو اختلفت الأحجام. اشترط فحوصات التباين لكل الثيمات قبل الإصدار.
الحوكمة: كيف تبقى الرموز صحية مع الزمن
الرموز تعمل فقط إذا بقيت مستقرة ومفهومة. بدون حوكمة خفيفة الوزن، يضيف الفريق بهدوء "أزرقًا آخر" أو "حشوًا آخر"، وتعود للتخمين بالعين.
سير تغيير رموز خفيف الوزن
حافظ على العملية صغيرة لكن حقيقية:
- الطلب: يستطيع أي شخص طلب رمز جديد أو تغيير، مع لقطة شاشة وسبب.
- المراجعة: مصمم واحد ومطور واحد يفحصان التأثير عبر الشاشات الرئيسية.
- الموافقة: تأكد من التسمية، إمكانية الوصول (التباين، حجم اللمس)، وما إذا كان جديدًا فعلًا.
- الإصدار: انشر التحديثات وفق جدول (أسبوعي أو لكل سبرينت)، لا بعشوائية.
- التواصل: شارك ماذا تغيّر وماذا يُستخدم بدلاً منه.
حافظ على سجل تغييرات بسيط مع عمليات إهمال. إذا تم استبدال رمز قديم، قل ما يجب استخدامه بدلاً منه، اتركه يعمل لفترة، وعلمه بوضوح حتى لا تعتمد الشاشات الجديدة عليه.
التنظيف جزء من المهمة. مرة في الشهر، احذف الرموز والمتغيرات غير المستخدمة (أو على الأقل علمها).
اجعل الرموز قابلة للاستخدام للجميع
غير المصممين يحتاجون أمثلة لا نظرية.
افعل: استخدم سلم المسافات للفجوات، واستخدم متغير زر Primary للعمل الرئيسي.
لا تفعل: اضبط الحشو على "13px لأنه يبدو مناسبًا"، أو أنشئ نمط زر جديد لمطابقة شاشة واحدة.
اربط عمل الرموز بأولويات المنتج: الميزات الجديدة، إعادة العلامة، وتصحيحات الوصول يجب أن تقود تحديثات الرموز، لا التفضيلات الشخصية.
أخطاء وفخاخ شائعة
أسرع طريقة لفقدان فوائد الرموز هي معاملتها كمستودع للمهملات. تبدأ بنية حسنة، ثم تتراكم بعض الإصلاحات السريعة، ويعود الفريق للتخمين بالعين.
فخ شائع هو إنشاء الكثير من الرموز مبكرًا. إذا حصل كل شاشة على رمز لوني أو مسافة خاصة بها، فأنت لا تبني نظامًا - أنت توثّق الاستثناءات. أضف رمزًا جديدًا فقط عندما يمكنك الإشارة إلى مكانين على الأقل سيُستخدم فيهما.
مشكلة صامتة أخرى هي السماح للقيم الخام بالتسلل إلى المكونات. يضبط أحدهم حشو الزر إلى 14px "فقط هذه المرة"، أو يستخدم لون hex مباشرة في بطاقة. بعد أسابيع، لا يتذكر أحد لماذا هو مختلف. اجعلها عادة: إذا كانت مرئية وقابلة لإعادة الاستخدام، يجب أن تكون رمزًا.
راقب أيضًا خلط أنواع الرموز. الرموز الأساسية (مثل gray-900 أو space-4) تصف قيمًا خام. الرموز المعنوية (مثل text-primary أو surface-muted) تصف معنى. تبدأ المشاكل عندما يستخدم مكوّن واحد الرموز الأساسية وآخر الرموز المعنوية لنفس الدور.
الحالات مرحلة مؤلمة أخرى. غالبًا ما يعرّف الفرق الأنماط العادية، ثم يضمّنون focus و hover و disabled و error قبل الإصدار مباشرة. هكذا تنتهي بحلقات تركيز غير متسقة وثلاثة أحمر طوارئ مختلفة.
قبل التوسع، قم بفحص سريع للفخاخ:
- قصر إضافة الرموز على الاحتياجات المشتركة، لا الشاشات الخاصة
- تجنب القيم الخام داخل المكونات قدر الإمكان
- فصل الرموز الأساسية عن المعنوية وتطبيقها بثبات
- عرّف الحالات (focus, error, disabled) مبكرًا
- اترك مجالًا للوضع الداكن أو تحديث علامة مستقبلية عبر تبديل الرموز المعنوية، لا إعادة كتابة المكونات
قائمة تحقق سريعة قبل التوسع
قبل نشر واجهة إلى مزيد من الشاشات أو الفرق أو المنتجات، تحقق ما إذا كان الأساس واضحًا بما يكفي للنسخ دون تخمين.
- أدوار الألوان معنوية. الرموز تغطي النص (افتراضي، مكتوم، عكسي)، الأسطح (الصفحة، البطاقة)، الحدود (افتراضية، تركيز)، والحالات (نجاح، تحذير، خطأ).
- النوع يطابق مقياسًا صغيرًا. مجموعة قصيرة من أنماط النص (H1-H3، body، small) مع حجم ووزن وارتفاع سطر محدد.
- المسافات تستخدم خطوات يتذكّرها الناس. الحشوات والفواصل الشائعة تأتي من سلم ضيق (4، 8، 12، 16، 24). إذا استمر ظهور "14" فهذه إشارة إلى أن السلم يحتاج تعديل.
- المكونات العليا لها متغيرات. مكوناتك الأكثر استخدامًا لها حجم (sm/md/lg) وغاية (primary/secondary/danger) تتطابق مع أدوار الرموز.
- الملكية واضحة. شخص واحد (أو مجموعة صغيرة) يوافق على التغييرات، مع روتين خفيف: لماذا، التأثير، ومتى تنشر.
مثال: إيقاف انحراف الواجهة في بوابة ولوحة إدارة
فريق صغير يبني تطبيقين معًا: بوابة العملاء ولوحة إدارة داخلية. أشخاص مختلفون يعملون على شاشات مختلفة، ويبنون بسرعة داخل منشئ واجهة بدون كود. بعد أسابيع، تبدأ الواجهة بالشعور "بغرابة" رغم أن لا أحد يستطيع تسمية مشكلة محددة.
قبل الرموز، تتراكم تعليقات المراجعة: الأزرار تكاد تكون متطابقة لكن ليست كذلك، المسافات تتغير شاشةً بعد أخرى، حقول النماذج لا تطابق بعضها، وتشعر البوابة بأنها "ودية" بينما لوحة الإدارة تبدو "صارمة" بالصدفة.
يحلونها بتقديم مجموعة رموز صغيرة وعملية. يعرّفون ألوان معنوية (Primary, Success, Danger, TextMuted)، سلم مسافات (4، 8، 12، 16، 24)، ومتغيرات أزرار (Primary, Secondary, Ghost) بنصف قطر واحد وحالات متسقة.
الآن يتوقف المساهمون عن اختيار قيم hex عشوائية وأحجام خطوط لكل شاشة. يختارون الرموز والمتغيرات، فتتكفل كل صفحة جديدة بنفس القرارات.
البناء يصبح أسرع لأن الخيارات موجودة سلفًا. تتحول المراجعات من تفاصيل بصرية صغيرة إلى مشكلات تجربة فعلية. "اجعل هذا الزر متغير Primary" يحل محل "هل يمكنك جعله أكثر زرقة قليلًا وأطول قليلًا؟"
بعدها يحدث تغيير بسيط في العلامة: يتغير اللون الأساسي ويتشدد مقياس الخط. مع الرموز، يحدث الفريق تحديثًا لعدد قليل من القيم مرة واحدة، وتتجدد البوابة ولوحة الإدارة معًا.
الخطوات التالية: ابدأ صغيرًا، ثم نمذج
اختر تدفّقًا واحدًا يستخدمه الناس كثيرًا ويظهر به الانحراف بوضوح، مثل الإعداد، صفحة الإعدادات، أو نموذج بسيط. تحويل تدفّق واحد هو أسرع طريقة لإثبات الفكرة وإيقاف التخمين بالعين.
ابدأ بمجموعة رموز صغيرة وآمنة: primary/background/text/border/danger، سلم طباعة قصير، سلم مسافات، و2-3 مستويات نصف قطر وظلال. ثم اصنع مجموعة مكونات صغيرة تستخدم الرموز فقط: زر واحد، مدخل واحد، بطاقة واحدة، وتنبيه واحد. أضف المتغيرات فقط عندما تحل حاجة حقيقية.
قم بمراجعة قصيرة مع الفريق باستخدام لقطتي شاشة: واحدة "قبل" بها حشوات وخطوط غير متسقة، وواحدة "بعد" مبنية من الرموز والمتغيرات. اتفقوا على قواعد قليلة (مثل "لا ألوان مشفرة" و "المسافات يجب أن تكون رمزًا") واصلحوا أهم حالات عدم الاتساق أولًا.
للنشر، حول الشاشات الجديدة أولًا، ثم عدّل القديمة عند لمسها. عندما يطلب الدعم فلترًا إداريًا جديدًا، أعد بناء تلك اللوحة باستخدام مكونات ورموز وستستبدل فقط ما تعدّله.
إذا كنت تبني منتجات كاملة (backend، web، و mobile) في AppMaster، فالمفيد أن تضع الرموز والأنماط القابلة لإعادة الاستخدام مبكرًا حتى ترث الشاشات الجديدة نفس القرارات. بهذه الطريقة، يمكن للتناسق البصري ومنطق التطبيق أن يتحركا سويًا دون تنظيف متكرر لاحقًا.
الأسئلة الشائعة
انحراف الواجهة عادةً يبدأ بتعديلات بسيطة "فقط هذه المرة": نسخ مكوّن، تعديل الحشو، أو اختيار لون بالنظر. مع الوقت تتراكم هذه الاختلافات عبر الصفحات وأفراد الفريق، وتتحول مراجعات التصميم إلى نقاشات ذاتية بدلاً من فحوص سريعة مقابل قواعد مشتركة.
رموز التصميم هي قرارات مسمّاة للواجهة يعيد الناس استخدامها بدلًا من تخمين القيم الخام. قد تكون القيمة 16px أو #2563EB، لكن اسم الرمز يشرح الغرض مثل space-16 أو color-primary، فيلجأ الجميع إلى نفس الاختيار في كل مرة.
ابدأ بأدوار الألوان، الطباعة، المسافات، وبعض قيم الزوايا والظلال. هذا يغطي معظم الشاشات ويوقف أكثر مشكلات "التخمين بالعين" شيوعًا مع إبقاء مجموعة الرموز صغيرة بما يكفي ليستخدمها الناس فعليًا.
قاعدة عملية: أنشئ رمزًا عندما تظهر القيمة في موضعين أو أكثر، أو عندما تدعم حالة فعلية مثل hover أو focus أو disabled أو error. إذا كانت القيمة فريدة حقًا، اجعلها محلية للمكوّن حتى لا تصبح معيارًا عالميًا بالخطأ.
الأسماء المعنوية توضّح متى يُستخدم الرمز، مثل text-primary أو bg-surface، لذا يمكن للناس الاختيار دون حفظ لوحة ألوان. الأسماء الخام مثل blue-600 مناسبة كطبقة أساسية، لكن الاعتماد عليها في المكونات يجعل سوء استخدام الألوان أسهل.
راجع ما تنشرونه: اجمع الألوان، أحجام الخطوط، وقيم المسافات الفعلية في الإنتاج، ثم دمج القيم المتشابهة عن قصد. بعد أن تحصل على مجموعة صغيرة ونظيفة، اربط القيم القديمة بالرموز الجديدة حتى تعيد الشاشات المستقبلية استخدام الرموز بدلًا من إعادة إدخال القيم "قريبة من بعضها".
ضع افتراضات أساسية على مستوى العمل، ثم اربط الرموز بما يسميه المُنشئ بدون كود متغيرات الثيم أو الأنماط العالمية حتى تشير المكونات إلى أسماء لا إلى أكواد hex أو قيم بكسل. بعد ذلك أنشئ مجموعة صغيرة من الأنماط القابلة لإعادة الاستخدام للمكونات التي تستخدمونها يوميًا، وتأكد من أن حالات hover و focus و disabled و error تستخدم أيضًا رموزًا.
اجعل المتغيرات بسيطة ومتوقعة بتقييدها إلى بعدين فقط: الحجم والغاية. ينبغي أن يغيّر الحجم خصائص بحسب الرموز فقط مثل حجم الخط والحشو، بينما تغيّر الغاية أدوار الألوان المعنوية بحيث لا تغيّر المسافات أو الطباعة من دون قصد.
شارك الرموز المعنوية بين المنصات حتى تبقى المعاني نفسها، واسمح لرموز خاصة بالمنصة بالتعامل مع الاختلافات مثل أحجام أهداف اللمس والكثافة. الهدف هو "عائلة واحدة، ليست نفس البيكسلات"، بحيث يشعر الويب والهاتف بأنهما متناسقان دون فرض تطابق بصري تام.
عيّن ملكية واضحة واستخدم سير مراجعة صغير للتغييرات حتى لا تضاف رموز جديدة كحلول سريعة. اعتمد جدول نشر ثابتًا، ودوّن سجل تغييرات مع إهمال تدريجي (deprecation) للرموز القديمة بدلًا من استبدالها بصمت، وهكذا يبقى النظام مستقرًا مع ازدياد عدد المساهمين، خاصًة في مشاريع AppMaster السريعة.


