|  | <!-- webkit-test-runner [ CSSCustomPropertiesAndValuesEnabled=true ] --> | 
|  | <html> | 
|  | <head> | 
|  | <style> | 
|  | html { | 
|  | background: grey; | 
|  | } | 
|  | .parent1 { | 
|  | width: 500px; | 
|  | background: blue; | 
|  | } | 
|  | .child1 { | 
|  | background: green; | 
|  | --my-custom-prop: 100px; | 
|  | width: var(--my-custom-prop); | 
|  | } | 
|  |  | 
|  | .parent2 { | 
|  | width: 500px; | 
|  | background: blue; | 
|  | } | 
|  | .child2 { | 
|  | background: green; | 
|  | width: var(--my-custom-prop2); | 
|  | } | 
|  |  | 
|  | .parent3 { | 
|  | width: 500px; | 
|  | background: blue; | 
|  | } | 
|  | .child3 { | 
|  | background: green; | 
|  | width: var(--my-custom-prop3); | 
|  | } | 
|  |  | 
|  | .parent4 { | 
|  | width: 500px; | 
|  | background: blue; | 
|  | } | 
|  | .child4 { | 
|  | background: green; | 
|  | width: var(--my-custom-prop2, 300px); | 
|  | } | 
|  |  | 
|  | .parent5 { | 
|  | width: 500px; | 
|  | background: blue; | 
|  | } | 
|  | .child5 { | 
|  | background: green; | 
|  | width: var(--my-custom-prop3, 300px); | 
|  | } | 
|  |  | 
|  | .parent6 { | 
|  | width: 500px; | 
|  | background: blue; | 
|  | } | 
|  | .child6 { | 
|  | background: green; | 
|  | --my-custom-prop: 100px; | 
|  | width: var(--my-custom-prop3, --my-custom-prop1); | 
|  | } | 
|  |  | 
|  | .parent7 { | 
|  | width: 500px; | 
|  | background: blue; | 
|  | } | 
|  | .child7 { | 
|  | background: green; | 
|  | --my-custom-prop: 100px; | 
|  | width: var(--my-custom-prop4); | 
|  | } | 
|  | </style> | 
|  | <script> | 
|  | CSS.registerProperty({ | 
|  | name: '--my-custom-prop', | 
|  | syntax: '<length>', | 
|  | inherits: false, | 
|  | initialValue: '200px' | 
|  | }) | 
|  |  | 
|  | CSS.registerProperty({ | 
|  | name: '--my-custom-prop2', | 
|  | syntax: '<length>', | 
|  | inherits: false, | 
|  | initialValue: '200px' | 
|  | }) | 
|  |  | 
|  | CSS.registerProperty({ | 
|  | name: '--my-custom-prop4', | 
|  | syntax: '<length>', | 
|  | inherits: false, | 
|  | initialValue: 'var(--my-custom-prop)' | 
|  | }) | 
|  | </script> | 
|  | </head> | 
|  | <body> | 
|  | <p> Single values </p> | 
|  | <p> Specified </p> | 
|  | <div class="parent1"><div class="child1"><p>100px green</p></div> </div> | 
|  | <p> Not specified, use initial value </p> | 
|  | <div class="parent2"><div class="child2"><p>200px green</p></div> </div> | 
|  | <p> Not specified, but not registered so use initial value for width </p> | 
|  | <div class="parent3"><div class="child3"><p>500px green</p></div> </div> | 
|  | <p> Has a fallback for registered property </p> | 
|  | <div class="parent4"><div class="child4"><p>200px green</p></div> </div> | 
|  | <p> Has a fallback for unregistered property </p> | 
|  | <div class="parent5"><div class="child5"><p>300px green</p></div> </div> | 
|  | <p> Having a fallback for a registered property that is a variable should not work</p> | 
|  | <div class="parent6"><div class="child6"><p>500px green</p></div> </div> | 
|  | <p> Having a variable in the initial value should not work</p> | 
|  | <div class="parent7"><div class="child7"><p>500px green</p></div> </div> | 
|  | </body> | 
|  | </html> |