Another remark, why is
�� �� �� �� �� height: self inputTextHeight;
needed?

Should not spec have a default automatic way to set it, deducing from
the row contents?
��
Actually it would do the opposite. The content has no fixed height so if you don't specify the height it will actually expand the content (the layout always uses all available space if not constrained).

You can see for yourself if you remove the height here...

=================================
view := DynamicComposableModel new
�� �� instantiateModels: #(
usernameLabel LabelModel usernameField TextInputFieldModel
passwordLabel LabelModel passwordField TextInputFieldModel
showPasswordCheckBox CheckBoxModel
);
yourself.

view usernameLabel text: 'Username'.
view passwordLabel text: 'Password'.
view showPasswordCheckBox label: 'Show password'.

layout := SpecLayout composed
newColumn: [ :col |
col
newRow: [ :row |
row
add: #usernameLabel;
add: #usernameField ] height: DynamicComposableModel inputTextHeight;
newRow: [ :row |
row
add: #passwordLabel;
add: #passwordField ] height: DynamicComposableModel inputTextHeight;
newRow: [ :row |
row
add: #showPasswordCheckBox] height: DynamicComposableModel inputTextHeight;
newRow: [ :row | ]
];
yourself.
�� ��
view openWithSpecLayout: layout.
=====================================

Peter