  In this paper, we demonstrate a direct correspondence between phase-free ZX
diagrams, a graphical notation for representing and manipulating a certain
class of linear maps on qubits, and Calderbank-Shor-Steane (CSS) codes, a large
family of quantum error correcting codes constructed from classical codes,
including for example the Steane code, surface codes, and colour codes. The
stabilisers of a CSS code have an especially nice structure arising from a pair
of orthogonal $\mathbb F_2$-linear subspaces, or in the case of maximal CSS
codes, a single subspace and its orthocomplement. On the other hand, phase-free
ZX diagrams can always be efficiently reduced to a normal form given by the
basis elements of an $\mathbb F_2$-linear subspace. Here, we will show that
these two ways of describing a quantum state by an $\mathbb F_2$-linear
subspace $S$ are in fact the same. Namely, the maximal CSS code generated by
$S$ fixes the quantum state whose ZX normal form is also given by $S$.
  This insight gives us an immediate translation from stabilisers of a maximal
CSS code into a ZX diagram describing its associated state. We show that we can
extend this translation to stabilisers and logical operators of any (possibly
non-maximal) CSS code by "bending wires". To demonstrate the utility of this
translation, we give a simple picture of the surface code and a fully graphical
derivation of the action of physical lattice surgery operations on the space of
logical qubits, completing the ZX presentation of lattice surgery initiated by
de Beudrap and Horsman.
