I love this. It's very similar to something I've been working on for a while - a programming language for UI designers. The syntax he's arrived at is quite similar to mine.
With a few tweaks, and adding a define & use (simple class prototyping), it's basically VRML-97. Before the X3D goons ganked it with all their XML and XSchema nonsense.
Yes exactly. My approach was to make everything a component. In each component, you'd define your props (called "variants" in my language), elements, and styles.
Something like this:
component Square
variants
color bg: red
elements
shape square
style square
width: 100px
height: 100px
fill: $bg