Skip to content

المتغيرات

المتغيرات تسمح لك بتطبيق بعض الاختلافات على قواعدك الموجودة، مثل متغير hover: من Tailwind CSS.

مثال

ts
variants: [
  // hover:
  (matcher) => {
    if (!matcher.startsWith('hover:'))
      return matcher
    return {
      // قطع بادئة `hover:` وتمريرها إلى المتغيرات والقواعد التالية
      matcher: matcher.slice(6),
      selector: s => `${s}:hover`,
    }
  },
],
rules: [
  [/^m-(\d)$/, ([, d]) => ({ margin: `${d / 4}rem` })],
]
  • matcher يتحكم في متى يتم تمكين المتغير. إذا كانت القيمة المُرجعة سلسلة، سيتم استخدامها كمحدد لمطابقة القواعد.
  • selector يوفر إمكانية تخصيص محدد CSS المُنشأ.

تحت الغطاء

دعنا نأخذ جولة حول ما حدث عند المطابقة لـ hover:m-2:

  • hover:m-2 مستخرج من استخدامات المستخدمين
  • hover:m-2 يُرسل إلى جميع المتغيرات للمطابقة
  • hover:m-2 يتم مطابقته بواسطة متغيرنا ويعيد m-2
  • النتيجة m-2 ستُستخدم للجولة التالية من مطابقة المتغيرات
  • إذا لم يتم مطابقة متغير آخر، m-2 سينتقل بعد ذلك لمطابقة القواعد
  • قاعدتنا الأولى يتم مطابقتها وتولد .m-2 { margin: 0.5rem; }
  • أخيراً، نطبق تحويل متغيراتنا على CSS المُنشأ. في هذه الحالة، أضفنا :hover إلى خطاف selector

نتيجة لذلك، سيتم إنشاء CSS التالي:

css
.hover\:m-2:hover { margin: 0.5rem; }

مع هذا، يمكننا الحصول على m-2 مطبقة فقط عندما يمرر المستخدمون فوق العنصر.

المضي قدماً

نظام المتغيرات قوي جداً ولا يمكن تغطيته بالكامل في هذا الدليل، يمكنك التحقق من تنفيذ الإعداد المسبق الافتراضي لرؤية استخدامات أكثر تقدماً.

Released under the MIT License.