Documentation for cairo is an area that could always be greatly improved. Contributions are very welcome!
Primary sources
Here are the most useful starting points:
Frequently asked questions: Save yourself some time by reading this early
Tutorial: A one-of-a-kind introduction to the cairo concepts and models
API reference manual: Function-by-function reference
Cookbook: Simple recipes for drawing
Samples: Some samples of how to use Cairo
Cairoglyphics: A tutorial by way of diagrams. From a Python pov. Please help debug them.
Using the PostScript surface: How to use the PostScript surface.
Other information that might be of interest:
Roadmap: Features planned for upcoming release
Missing: Page listing features missing to allow SVG/Flash rendering using cairo without fallbacks.
Bibliography: Where the good ideas came from
Building: Various recipes for compiling Cairo sources on different platforms, and with different goals
Editing this Website
Currently the cairo website can only be edited via git. You can get the sources by running
git clone git://cairographics.org/git/cairo-www
To submit changes, please send patches to cairo@cairographics.org.
Off-site material
Here is a collection of pointers to articles that have been written elsewhere about cairo. Many of these articles might provide good inpiration for generating new primary-source documentation. As we improve the primary documentation to cover the same material that is covered below, we can drop items from the following list, (or at least move the links to some other page).
Tutorials
Cairo Tutorial for Python (and other) Programmers In spite of the name, this tutorial provides a one-of-a-kind introduction to the cairo concepts and models that will be helpful to programmers using cairo from any programming language.
Using Cairo with Xlib How to use Cairo in simple Xlib-based GUI applications, with no Gtk required.
Writing a widget using cairo and GTK+ 2.8 A very clean, short, well-written tutorial by Davyd Madeley. The second-half of this first part gives a reasonable introduction to cairo even for users that are not using GTK+. Davyd's second installment goes into animating the example. There's not nearly as much cairo-specific detail there, but it's worth mentioning it here for completeness.
Writing a widget using cairo and PyGTK 2.8 a "translation" of the tutorial above from C to python.
Using Cairo with Visual Studio A very basic guide for those who want to develop cairo applications using Visual Studio.
Using Cairo with SDL A very basic guide for those who want to develop cairo applications using SDL.
Using Cairo with OpenGL How to make use of cairo from within OpenGL-programs.
The Cairo graphics tutorial A 100+ pages tutorial in C programming language and GTK+ library, the largest tutorial on the Internet, ZetCode
Monochrome icon by Mike Massonnet, March 2010. A step-by-step tutorial that explains how to include a monochrome icon inside a GTK+ application. It starts with a minimal solution and evolves up to a more solid one with Cairo. All the examples are written in Vala language.
Presentations about cairo
Co-maintaining cairo: cool community, cool code by Behdad Esfahbod and Carl Worth, presented at GUADEC in July 2007.
An Insider's Guide to Cairo by Carl Worth, presented at the Desktop Developer's Conference in July 2005.
Cairo: Making Graphics Easy to Print by Carl Worth, presented at linux.conf.au in April 2005.
Xr: Cross-device Rendering for Vector Graphics by Carl Worth and Keith Packard, presented at the Linux Symposium in July 2003. This is from before Xr was renamed to cairo.