One rule of thumb is if you’re just slightly cold at the car, you’ll be perfect on the trail, because you tend to heat up once you’ve been riding for a while. If you’re warm at the car, you’ll be too hot on trail.
I usually wear shin pads on technical trail rides, which give warmth to the front of the legs as well. I usually can get away with shorts to around zero degrees, and even a little lower. Without shin pads, maybe 5 degrees. Below those temperatures, time for the cycling tights. I’m not a spandex kind of guy, so I usually wear baggy shorts with a padded liner over my tights.
I switch from a short sleeve to long sleever jersey at around ten degrees. If I’m not sure, I may use a 3/4 length.
Below 5-7 degrees, I’ll normally throw a windbreaker-type jacket over my long sleeve jersey. This combo takes me down to some surprisingly low temperatures. I’m good to well below zero (once I heat up on trail), but I have a lot of natural insulation.
Below -5, I throw on a thin fleece between my long sleeve jersey and windbreaker. This combo usually is all I need probably to -15. Below that, I need another fleece layer.
I run a helmet liner or balaclava below about -5.
Regular full finger cycling gloves take me to about zero, maybe a bit lower. Below that, I switch to a winter cycling glove. Below about -5, I throw hand warmers into the winter gloves. I picked up some heated grips last winter, which worked amazingly well. Janet uses heated gloves, which also work well, especially with a shell glove. Without the extra heat, my hands get pretty cold for about the first 15 minutes of the ride. After that, supplemental heat isn’t usually necessary.
I still haven’t got my feet feeling comfortable yet. Cycling shoes are often designed to be ventilated, and the cleat for clip-in shoes acts like a big heat sink. I usually wear a couple of layers of socks below about zero. have neoprene booties that go over my cycling shoes which work pretty well below -5, but are a pain to get over my shoes. I usually switch to hiking shoes and flat pedals, when the snow hits, and they are warmer than my clip-in shoes. My feet still get cold below -10 though. I tried some thermal insoles last winter. They would probably work, if my shoes were oversize, but they’re not, and just made my feet feel squeezed, which made them even colder. I may bite the bullet for this season and pay the big bucks for some winter cycling shoes.
I often bring an extra thin fleece layer in my pack in winter. It’s there in case I misjudge and find I need an extra layer, which is pretty rare, since I generate a lot of internal heat when riding. Another reason to have it is in case of a breakdown. Once I stop moving, I can cool down rapidly, so if I have to change a tube, or fix a chain, or walk the bike out of the trail, I may need the extra insulation.
Everything I mentioned applies for me for trail riding, which is generally out of the wind. There’s a lot more exposure and wind when road riding, and more protection needed.