Composable, heritable first-class states
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.


State is a JavaScript library for implementing first-class states on arbitrary owner objects.

A State is a module of behavior — expressed as definitions of methods, data, and/or events — that can be exhibited by its owner. The State object model provides for hierarchical, compositional, and indirect prototypal relations between States, facilitating a variety of patterns for reuse and modularity.

State object model

An owner object exhibits the behavior expressed by its current state — method calls the owner receives are automatically dispatched to methods defined or inherited by that State. Behavior of the owner is altered by executing transitions that carry its current state reference from one of its States to another.

Visit for an introduction, with sample code, comprehensive documentation including a getting started guide and conceptual overview, API reference, and annotated source.