Description
Currently Magma offers a flexible way to aggregate output from different methods in the page. Howeverm, since the HTML is often generated by Magma components, great care is needed in offering enough HTML elements and CSS classes to permit a complete CSS customization.
Currently, most components (like lists and forms) do provide extensive CSS classes. The template and compunding system however don't.
When a template is outputting different parts in a zone (like for example boxes) it wraps those pieces in divs, but which CSS classes are applied to that div is not clear.
At the same time, for I18N and other systems, Magma keeps a kind of "stack" of the context in which it is evaluating current HTML, making this information available on the page CSS seems to be a simple and complete way of having all the informations.
So, each time the template is producing an HTML div around an HTML piece, it should include all the non-already-outputted context as CSS classes, plus a "relation class", which will always be the same.
Moreover, whenever the compunding system outputs a compunded piece of HTML, it should wrap it in a div, placing again the context as CSS classes, plus a relation class that indicates the kind of compound.