ConstraintJS

Stephen Oney, Brad Myers, Joel Brandt
2012 Proceedings of the 25th annual ACM symposium on User interface software and technology - UIST '12  
Interactive behaviors in GUIs are often described in terms of states, transitions, and constraints, where the constraints only hold in certain states. These constraints maintain relationships among objects, control the graphical layout, and link the user interface to an underlying data model. However, no existing Web implementation technology provides direct support for all of these, so the code for maintaining constraints and tracking state may end up spread across multiple languages and
more » ... ies. In this paper we describe Con-straintJS, a system that integrates constraints and finite-state machines (FSMs) with Web languages. A key role for the FSMs is to enable and disable constraints based on the interface's current mode, making it possible to write constraints that sometimes hold. We illustrate that constraints combined with FSMs can be a clearer way of defining many interactive behaviors with a series of examples.
doi:10.1145/2380116.2380146 dblp:conf/uist/OneyMB12 fatcat:lbbpr7nzcbcoxarr7yrru42obi