Variants
Variants อนุญาตให้คุณนำการเปลี่ยนแปลงบางอย่างไปใช้กับกฎที่มีอยู่ของคุณ เช่น variant hover: จาก Tailwind CSS
ตัวอย่าง
ts
variants: [
// hover:
(matcher) => {
if (!matcher.startsWith('hover:'))
return matcher
return {
// ตัดคำนำหน้า `hover:` และส่งไปยัง variants และกฎถัดไป
matcher: matcher.slice(6),
selector: s => `${s}:hover`,
}
},
],
rules: [
[/^m-(\d)$/, ([, d]) => ({ margin: `${d / 4}rem` })],
]matcherควบคุมเมื่อใดที่ variant ถูกเปิดใช้งาน หากค่าที่ส่งคืนเป็นสตริง มันจะถูกใช้เป็น selector สำหรับการจับคู่กฎselectorจัดหาความสามารถในการปรับแต่ง CSS selector ที่สร้างขึ้น
ภายใน
มาทัวร์ดูสิ่งที่เกิดขึ้นเมื่อจับคู่สำหรับ hover:m-2:
hover:m-2ถูกแยกจากการใช้งานของผู้ใช้hover:m-2ส่งไปยัง variants ทั้งหมดสำหรับการจับคู่hover:m-2ถูกจับคู่โดย variant ของเราและส่งคืนm-2- ผลลัพธ์
m-2จะถูกใช้สำหรับรอบถัดไปของการจับคู่ variants - หากไม่มี variant อื่นที่จับคู่
m-2จะไปจับคู่กฎ - กฎแรกของเราจับคู่และสร้าง
.m-2 { margin: 0.5rem; } - สุดท้าย เรานำการแปลงของ variants ไปใช้กับ CSS ที่สร้างขึ้น ในกรณีนี้ เราเติม
:hoverไปยัง hookselector
เป็นผลลัพธ์ CSS ต่อไปนี้จะถูกสร้าง:
css
.hover\:m-2:hover { margin: 0.5rem; }ด้วยสิ่งนี้ เราสามารถมี m-2 นำไปใช้เมื่อผู้ใช้ hover บน element
ไปต่อ
ระบบ variant นั้นทรงพลังมากและไม่สามารถครอบคลุมได้ทั้งหมดในคู่มือนี้ คุณสามารถตรวจสอบ การใช้งาน default preset เพื่อดูการใช้งานขั้นสูงเพิ่มเติม