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:

  

see also