2016.11.21 Week plan



Hi friends,

This week is the American holiday of Thanksgiving, so Ryan and I will be traveling and spending time with our families.

Our plan for the next few weeks is to redesign and implement the layout engine.

We went through a few iterations of the layout engine before we launched the Kickstarter.
At first, it was just the "computed" mode (with similar semantics to CSS flexbox, modulo how padding and margins affect automatic sizing of containing elements).

Then we added the "freeform" mode (similar to print-based tools when using top/left, and CSS absolute positioning when using constraints beyond top/left or percentage units).
Our thinking behind the "freeform" mode was that it would help exploration early in the design process --- one could play around with rough ideas and concepts, then switch individual elements to "computed" mode as the design progressed.

However, we're not satisfied with the current engine, for a few reasons:

  • There are two "modes", and modes usually cause human computer interaction problems:

  • The semantics are complex and are nowhere fully written out.

  • It's not obvious why some properties are limited by mode. For example, shouldn't max-width be applicable regardless of how the element is positioned? (Yes, probably.)

  • "Padding" and "Margin" properties have different semantics than they do in CSS, which has caused problems for a few people on the forum already.
    Either those properties should be replaced by a more general capability, or at least the semantics of these properties should be clearly defined and differences from CSS explained.

Given that the layout engine is one of the core benefits that Subform offers, we want to focus on getting it right as soon as possible.

To get a better sense of how we're defining the problem and possible solutions/concerns, please see Thoughts on layout and feel free to chime in there with any questions or ideas.

Otherwise, have a great week!

Kevin + Ryan

New layout engine: Behind the scenes?