Nodes may be set to have fixed, minimum and maximum widths and minimum heights. Nodes with minimum heights may also have a vertical alignment set.

Edges may be set to have maximum widths.

The widthConstraint: value option means a fixed width, the minimum and maximum width of the element are set to the value (respecting left and right margins). Lines exceeding the maximum width will be broken at space boundaries to fit.

The widthConstraint: { minimum: value } option sets the minimum width of the element to the value.

The widthConstraint: { maximum: value } option sets the maximum width of the element to the value (respecting left and right margins). Lines exceeding the maximum width will be broken at space boundaries to fit.

Minimum width line sizing is applied after maximum width line breaking, so counterintuitively, the minimum being greater than the maximum has a meaningful interpretation.

The heightConstraint: value option sets the minimum height of the element to the value (respecting top and bottom margins).

The heightConstraint: { minimum: value } option also sets the minimum height of the element to the value (respecting top and bottom margins).

The heightConstraint: { valign: value } option (with value 'top', 'middle', or 'bottom', sets the alignment of the text in the element's label to the elements top, middle or bottom (respecting top and bottom margins) when it's height is less than the minimum. The middle value is the default.

Node width and height constraints may both be applied together, of course.

The constraint options may be applied to elements individually, or at the whole-set level. Whole-set node and edge constraints are exclusive.