Menu

D13. Free design, structured content (design layer prototype)

Agents write any CSS, layout template or figure-drawing code; content stays in schema-checked blocks so authors can rework it and translators can extract it. The boundary is enforced by the validator rather than by a closed design vocabulary: no words in CSS, templates or figures; no external resources; colours through tokens; templates without script or interactive elements. Cascade layers (elabora.base < elabora.layout < elabora.theme, later elabora.components replaced elabora.layout, D14) let a theme override the player without specificity fights; the DOM hooks it relies on are documented as a contract (docs/design.md). Maths is rendered at build time to MathML with temml (MIT, no runtime dependency: packages ship MathML, which every current browser renders and screen readers read). Generated assets carry provenance so a charter change can regenerate them. Revisit if: authors need to edit designs without an agent (then components and a style editor), or MathML rendering differs too much across LMS browsers (then ship a math font with the player).