@@ -407,6 +407,83 @@ html:where(.is-light) {
407407 )
408408} )
409409
410+ test ( 'transforms nested light-dark()' , ( ) => {
411+ run (
412+ `html {
413+ border: 1px solid light-dark(light-dark(white, red), light-dark(blue, light-dark(gray, rgb(255 122 127 / .2))))
414+ }` ,
415+ `@media (prefers-color-scheme:dark) {
416+ html:where(:not(.is-light)) {
417+ border: 1px solid rgb(255 122 127 / .2)
418+ }
419+ }
420+ html:where(.is-dark) {
421+ border: 1px solid rgb(255 122 127 / .2)
422+ }
423+ @media (prefers-color-scheme:light) {
424+ html:where(:not(.is-dark)) {
425+ border: 1px solid white
426+ }
427+ }
428+ html:where(.is-light) {
429+ border: 1px solid white
430+ }`
431+ )
432+ } )
433+
434+ test ( 'transforms light-dark() with various color formats' , ( ) => {
435+ run (
436+ `html {
437+ border: 1px solid light-dark(rgb(0, 0, 0), var(--color));
438+ color: light-dark( hsla(120, 100%, 50%, 0.3) , hsl(
439+ var(--red-hue)
440+ var(--red-sat)
441+ calc(var(--red-lit) - 20%)
442+ ));
443+ }` ,
444+ `@media (prefers-color-scheme:dark) {
445+ html:where(:not(.is-light)) {
446+ color: hsl(
447+ var(--red-hue)
448+ var(--red-sat)
449+ calc(var(--red-lit) - 20%)
450+ )
451+ }
452+ }
453+ html:where(.is-dark) {
454+ color: hsl(
455+ var(--red-hue)
456+ var(--red-sat)
457+ calc(var(--red-lit) - 20%)
458+ )
459+ }
460+ @media (prefers-color-scheme:light) {
461+ html:where(:not(.is-dark)) {
462+ color: hsla(120, 100%, 50%, 0.3)
463+ }
464+ }
465+ html:where(.is-light) {
466+ color: hsla(120, 100%, 50%, 0.3)
467+ }
468+ @media (prefers-color-scheme:dark) {
469+ html:where(:not(.is-light)) {
470+ border: 1px solid var(--color)
471+ }
472+ }
473+ html:where(.is-dark) {
474+ border: 1px solid var(--color)
475+ }
476+ @media (prefers-color-scheme:light) {
477+ html:where(:not(.is-dark)) {
478+ border: 1px solid rgb(0, 0, 0)
479+ }
480+ }
481+ html:where(.is-light) {
482+ border: 1px solid rgb(0, 0, 0)
483+ }`
484+ )
485+ } )
486+
410487test ( 'does not transform light-dark() inside strings' , ( ) => {
411488 run (
412489 `html {
0 commit comments