Variante regional: Ocidental · CJK · RTL · Sul da Ásia · Russo
المنتج

كيف بنينا Cerne: نظام تصميم من الصفر

IN
Isaac Newton
29 يوليو 2026 · 8 دقائق قراءة

ينتهي الأمر بكل إطار عمل للواجهات بتقديم نفس الوعود: الاتساق وسرعة التطوير ومظهر متماسك. الفرق يكمن في كيفية حل كل إطار عمل للتوتر بين المرونة (الأدوات المساعدة) والدلالة (المكونات الجاهزة). يحاول Cerne الجمع بين الاثنين.

الرموز كمصدر وحيد للحقيقة

تعيش الألوان والمسافات والطباعة والانحناءات والظلال كمتغيرات CSS (--cerne-color-primary، --cerne-space-4...)، يتم توليدها من خرائط Sass. هذا يعني أن المكونات والأدوات المساعدة — وحتى هذا التوثيق نفسه — تقرأ من نفس القيم. التبديل من الوضع الفاتح إلى الداكن هو مجرد تبديل مجموعة المتغيرات في :root.

إذا كان التوثيق و CSS قد يختلفان، فسيختلفان عاجلاً أم آجلاً. لهذا السبب تقرأ صفحة الرموز القيم المحسوبة مباشرة، بدلاً من أرقام منسوخة يدويًا.

الطبقات مرتبة حسب الخصوصية

نتبع نسخة من ITCSS: إعدادات وأدوات Sass أولاً (دون توليد CSS)، ثم:

ITCSS (المثلث المقلوب لـ CSS) هو منهجية لتنظيم CSS حسب الخصوصية المتزايدة — من القواعد العامة ذات النطاق المحدود في الأعلى إلى المكونات والأدوات المساعدة المحددة في الأسفل — لتجنب حروب !important.
  1. إعادة الضبط والعناصر الأساسية
  2. كائنات التخطيط (الشبكة، هيكل التطبيق، stack/cluster)
  3. المكونات الدلالية (الأزرار، البطاقات، النوافذ المنبثقة...)
  4. الأدوات المساعدة، أخيرًا — لتتمكن دائمًا من الكتابة فوق غيرها
الطبقةالخصوصيةمثال
العناصرمنخفضةa، table
المكوناتمتوسطة.btn-primary
الأدوات المساعدةعالية (مقصودة).mt-4

المكون الناقص: الحجز

لا يأتي أي من أطر العمل الشائعة بجدول مواعيد جاهز. بالنسبة لأنظمة حجز القاعات، هذا هو المكون الأساسي — لذا بنينا واحدًا باستخدام CSS Grid خالص وجافاسكريبت دون اعتماديات، مع قياس الارتفاع الفعلي للخلية في DOM لتحديد مواضع الأحداث.

الجدول الأسبوعي لمكون الحجز.

باختصار

بدون اعتماديات وقت التشغيل: لا jQuery ولا Popper ولا Chart.js — فقط CSS وجافاسكريبت خالصان، مُجمَّعان في ملف واحد لكل منهما.

هيكل التطبيق والحجز وجدول البيانات الأصلية تغطي العناصر الأساسية الناقصة في كل من Bootstrap و Tailwind الخالص لبناء لوحة تحكم حقيقية.

الوضع الداكن ودعم RTL وإمكانية الوصول AA ليست حزمة منفصلة — إنها السلوك الافتراضي لكل مكون، منذ أول commit.

يقرأ التوثيق الرموز مباشرة من CSS المُجمَّع، لذا لا يوجد أبدًا جدول ألوان قديم.

النتيجة هي إطار عمل يخدم بنفس الكفاءة لوحة تحكم إدارية، أو بيئة تعليمية، أو — كما هذا المقال — مدونة.


IN
Isaac Newton

أبني Cerne والأنظمة التي تعمل عليه.