Monoidal category theory serves as a powerful framework for describing logical aspects of quantum theory, giving an abstract language for parallel and sequential composition and a conceptual way to understand many high-level quantum phenomena. Here, we lay the foundations for this categorical quantum mechanics, with an emphasis on the graphical calculus that makes computation intuitive. We describe superposition and entanglement using biproducts and dual objects, and show how quantum teleportation can be studied abstractly using these structures. We investigate monoids, Frobenius structures and Hopf algebras, showing how they can be used to model classical information and complementary observables. We describe the CP construction, a categorical tool to describe probabilistic quantum systems. The last chapter introduces higher categories, surface diagrams and 2-Hilbert spaces, and shows how the language of duality in monoidal 2-categories can be used to reason about quantum protocols, including quantum teleportation and dense coding. Previous knowledge of linear algebra, quantum information or category theory would give an ideal background for studying this text, but it is not assumed, with essential background material given in a self-contained introductory chapter. Throughout the text, we point out links with many other areas, such as representation theory, topology, quantum algebra, knot theory and probability theory, and present nonstandard models including sets and relations. All results are stated rigorously and full proofs are given as far as possible, making this book an invaluable reference for modern techniques in quantum logic, with much of the material not available in any other textbook.