An evolutionary constraint is a bias or limitation in phenotypic variation that a biological system produces. One can distinguish physicochemical, selective, genetic and developmental causes of such constraints. Here, I discuss these causes in three classes of system that bring forth many phenotypic traits and evolutionary innovations: regulatory circuits, macromolecules and metabolic networks. In these systems, genotypes with the same phenotype form large genotype networks that extend throughout a vast genotype space. Such genotype networks can help unify different causes of evolutionary constraints. They can show that these causes ultimately emerge from the process of development; that is, how phenotypes form from genotypes. Furthermore, they can explain important consequences of constraints, such as punctuated stasis and canalization.