The free pattern can be found HERE
It's designed for a very small (3 lb. dog) so it should fit most miniature sized dogs, or could be easily enlarged to fit a larger dog.
I used some scraps of a double knit, and a sherpa for the lining. The under part of the pattern is designed to be able to stretch so it is comfortable for a dog to wear so you will need a knit for that but any fabric should work for the top, fleece would be nice and cozy.
I also used felt for the name appliqué, and two small buttons, as well as a yarn pom-pom I made following this tutorial