demo ยท v139
Cycle Detector
Run real CSS through a live probe and compare it with an eager fallback scan. Chrome 139 follows the spec: if a var() or attr() primary value resolves, the fallback branch is not evaluated, so cycles or invalid values hidden there cannot poison the declaration.
var() custom property lab
live var() result
background-color probe
attr() fallback edge case
The pseudo-element below uses content: attr(data-label, var(--label-loop)). When the attribute exists, the cyclic fallback is skipped. Remove the attribute and the fallback branch is taken, making the generated content invalid.
::after content: