Traditional HTML is a "complex instruction set" language. It's got tons of tags, properties, and semantic definitions.
What if there was a reduced instruction set markup language. The idea would be to come up with primitives that could be used to layout a page and try to design the language with the minimal set to express complex designs.
My primitives:
- Point
- Line
- Box
- Polygon
- Circle
- Text
- Image
Pretty simple so far. Each has a set of properties some specific to the element some global:
- Position (top/left/right/bottom)
- Height/Width
- Color
- Rotation
- Semantic description (optional)
- Data (Rich text data, Image data, font data)
- Actions (Hover/Click/Drag/Etc defined in a scripting language)
Any element can be nested within another element or within a set of elements. Existing styles and elements can be referenced across a page. Note: I'm not specifying common controls. These would be pre-defined styles using the same core-elements and actions.
Using this type of simple language you could build the foundation of a new type of web rendering engine.
This simplifies the implementation of the browser. This means you can express more complex designs in a simpler and more straight forward way. The core 'brains' of the design would happen at design time in a design tool rather then at run-time. The relationships, positions and attributes are not interpreted, cascaded or defaulted. This means you have a tool that better represents designer intent.
Why is this in my head today? Once again I'm frustrated by the lack of browser support for key design oriented features. Did I mention that I don't think CSS is so hot? I also read the proposal for new HTML 5 spec and it's more of the same. I'm not impressed. Designers deserve better.