Pagedraw Layout System 1.0 Spec
1) Primitives
1.1) Flexible length: I'll grow with my parent proportionally to how big I am. 1.2) In the flexible case, my min-length is the length of my non-flexible content
1.3) The opposite of Flex length is not Fixed length. Layout System 1.0 does not have a fixed length primitive. The opposite of Flex length is content . That means a block's size will be determined by its content.
1.4) In a case like a simple rectangle with no children inside (or a non flexible margin), its content is just a fixed geometry. In that case we get behavior analogous to "fixed".
2) Constraint resolution
Parent wins against children.
2.1) If a parent says it's flexible, we'll force some child to be flexible even if none of the children say they're flexible.
2.2) If a parent says it's content, we'll force all children to be content as well.
2.3) When margins disagree, flexible wins against content.
3) Components and Layout
A component can specify any of its lengths to be "resizable." If a length is resizable, we can resize it in the instances.
3.1) If a component's length is resizable and the instance length is not flexible, the size of the instance determines a min-length along that axis.
3.2) Instances can be made flexible on some axis if and only if a component's length is resizable along that axis.
3.3) Resizable instances marked flexible work just like in the regular flexible case, with the exception of the extra min-length mentioned in 3.1.