A method of operation of an automated layout constraint system to automatically generate a constraint-based adaptive graphical user interface, GUI, from a static GUI design, the method comprising: obtaining, by data processing apparatus implementing the automated layout constraint system, a static GUI design that includes a plurality of views (110, 120, 130, 112, 122, 124), wherein each view (110, 120, 130, 112, 122, 124) is an element of the static GUI design; identifying, by the data processing apparatus implementing the automated layout constraint system, a root view of the static GUI design; identifying, by the data processing apparatus implementing the automated layout constraint system, a child view (110, 120, 130) of the static GUI design, wherein the child view (110, 120, 130) is nested within the root view; applying, by the data processing apparatus implementing the automated layout constraint system, one or more constraints (1011, 1012, 1021, 1022, 1031, 1033) to the child view (110, 120, 130) based on a spatial relation of the child view (110, 120, 130) to borders of the root view; determining, by the data processing apparatus implementing the automated layout constraint system, that the child view (110, 120, 130) is not fully constrained following application of the one or more constraints (1011, 1012, 1021, 1022, 1031, 1033) to the child view (110, 120, 130), wherein a view is fully constrained if a set of layout constraints under which the position and size of that view can be determined unambiguously on a given layout axis, regardless of the size of the view in which it is displayed; in response to determining that the child view is not fully constrained, applying, by the data processing apparatus implementing the automated layout constraint system, one or more additional constraints to the child view based on a spatial distance between the child view and an additional view that is a neighbor of the child view in the static GUI design; generating multiple different combinations of constraints that result in the child view being fully constrained; selecting a particular combination among the multiple different combinations of constraints based on graph analysis of the multiple different combinations of constraints; and generating, using the particular combination, by the data processing apparatus implementing the automated layout constraint system, a constraint-based adaptive GUI in one or more sizes that differ from a size of the static GUI design based on the one or more constraints and the one or more additional constraints. obtaining, by data processing apparatus implementing the automated layout constraint system, a static GUI design that includes a plurality of views (110, 120, 130, 112, 122, 124), wherein each view (110, 120, 130, 112, 122, 124) is an element of the static GUI design; identifying, by the data processing apparatus implementing the automated layout constraint system, a root view of the static GUI design; identifying, by the data processing apparatus implementing the automated layout constraint system, a child view (110, 120, 130) of the static GUI design, wherein the child view (110, 120, 130) is nested within the root view; applying, by the data processing apparatus implementing the automated layout constraint system, one or more constraints (1011, 1012, 1021, 1022, 1031, 1033) to the child view (110, 120, 130) based on a spatial relation of the child view (110, 120, 130) to borders of the root view; determining, by the data processing apparatus implementing the automated layout constraint system, that the child view (110, 120, 130) is not fully constrained following application of the one or more constraints (1011, 1012, 1021, 1022, 1031, 1033) to the child view (110, 120, 130), wherein a view is fully constrained if a set of layout constraints under which the position and size of that view can be determined unambiguously on a given layout axis, regardless of the size of the view in which it is displayed; in response to determining that the child view is not fully constrained, applying, by the data processing apparatus implementing the automated layout constraint system, one or more additional constraints to the child view based on a spatial distance between the child view and an additional view that is a neighbor of the child view in the static GUI design; generating multiple different combinations of constraints that result in the child view being fully constrained; selecting a particular combination among the multiple different combinations of constraints based on graph analysis of the multiple different combinations of constraints; and generating, using the particular combination, by the data processing apparatus implementing the automated layout constraint system, a constraint-based adaptive GUI in one or more sizes that differ from a size of the static GUI design based on the one or more constraints and the one or more additional constraints.