Exact Constraint Design for Frontend Development


Exact Constraint Design for Frontend Development

From differential equations, we borrow the terminology of existence and uniqueness. Generally, when a designer produces a draft from a round of iteration, this can be represented as a point in time and space. Under specific conditions, we satisfy certain properties and constraints to converge towards an optimal or necessary point.

Let us pose the problem of what it is designers do.

The problem of design can be divided into a subset of problems.

For instance, snap-to-guides is essentially a discrete geometric problem that is occasionally developed in trigonometric flavors.

Objects can be grouped together in the sense that they belong to a set, but also that they can be permuted or cycled in element order of visibility or placement. So there is a flavor of abstract algebra and combinatorics here.

However, what is fundamentally primitive in current design systems is the inability to establish constraints between objects or classes, which require greater abstraction. This is entirely the industry of developing responsive or mobile-first design systems where the display area is dynamic and diverse.

In some sense, designers don't really deal with real variables. The world they live in is somewhat inherently flat and typically Cartesian. It is much nicer to work with nice, round numbers. But to produce exact designs, we must consider a wider range of values over real variables. And to iterate upon this measure requires subtlety and considerable effort on the part of the designer, who cannot simply compute by hand every conceivable solution.

Luckily, we essentially need to pull the idea of satisfying constraints and identifying what types of relations we must be capable of observing.

This is actually quite nice, because as it stands we have that non-linear real arithmetic (operations of addition and product) is in fact decidable.

From this vantage point, I offer the perspective that what designers do is optimize.