Laying out GUIs works the same way as building lists with make. Gadgets are layed out using ui.gadgets.tracks through <hbox> and <vbox>, which allow both fixed and percentage widths. , and -> add a model or gadget to the gadget you're building. Also, books can be made with <book>. <spacer>s add flexable space between items.
Using with-interface, one can pre-build templates to add items to later: Like in the StringTemplate framework for java, placeholders are defined using $ PLACERHOLDER-NAME $ Using PLACEHOLDER-NAME again sets it as the current insertion point. For examples using normal layout, see the sudokus demo. For examples of templating, see the recipes demo.