المتغيرات
المتغيرات تسمح لك بتطبيق بعض الاختلافات على قواعدك الموجودة، مثل متغير 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 مطبقة فقط عندما يمرر المستخدمون فوق العنصر.
المضي قدماً
نظام المتغيرات قوي جداً ولا يمكن تغطيته بالكامل في هذا الدليل، يمكنك التحقق من تنفيذ الإعداد المسبق الافتراضي لرؤية استخدامات أكثر تقدماً.