CSS Custom Properties inherit ลงมาตาม DOM — override ได้ที่ระดับ component
CSS variables ทำงานแบบ cascade เหมือน property ทั่วไป — ตั้งที่ :root แล้ว override ใน component ได้เลยโดยไม่กระทบส่วนอื่น
CSS Custom Properties สืบทอดค่าผ่าน DOM tree เหมือน color หรือ font-size:
:root {
--color-primary: #2563eb;
}
.card {
--color-primary: #7c3aed; /* override สำหรับ .card และลูกๆ */
}
.card .btn {
/* ได้ --color-primary: #7c3aed จาก .card */
background: var(--color-primary);
}
.other-btn {
/* ได้ --color-primary: #2563eb จาก :root */
background: var(--color-primary);
}
ทำให้ pattern “theme per component” ง่ายมาก — override variable ที่ scope ของ component แล้วทุกอย่างข้างในเปลี่ยนตามโดยอัตโนมัติ
ใช้คู่กับ @property เพื่อกำหนด syntax type, initial value, และ inherit behavior ได้ละเอียดกว่าเดิม — เช่น ทำให้ variable transition animate ได้