From Transistor to Gates
Here is a complete digital clock made entirely using discrete transistors.

It's sold as a kit, and the instruction manual is quite good, with extensive breakdowns of the logic sections, oscilloscope drawings, and a full schematic.



Play-Hookey.com is another great resource for understanding how complex gate functions are constructed from simple ones. They have most of the standard logic set, and it's all done with little interactive javascripts, so you can actually change the inputs, and watch the output change.