There are two ways to make button holes—by hand or with a sewing machine. Many people aren't familiar with sewing on a machine. That's all right because learning to hand-sew button holes will work just as well, if not better—better because hand-sewn button holes are relatively easy to make and are a sign of a finely made item of clothing.
Mark the location and size of each button hole on the face of the fabric using a piece of tailor's chalk—a flat thin chalk with a chiselled edge. Make a cross at the centre of each button hole chalk line. Evenly space button holes. Sew them through double thicknesses of fabric. Fold the fabric back on itself to create a facing from the same fabric. If the fabric is very thin, add iron-on interfacing between two layers of the fabric before starting the button holes.
Fold the fabric at the cross chalk mark. Cut a slit along the length of the chalked button hole line with scissors. Cut all the way through both thicknesses of fabric. Cut them a little short, then unfold the fabric, insert the tip of the scissors through the slit and finish the cuts at either end.
Thread a needle, match both ends of the thread and tie a knot.
Insert the needle in the middle of one side of the first button hole slit. Stick the tip of the needle under the top layer of fabric and push it through to the top. Pull the thread all the way through. The knot should be sandwiched between the two layers of fabric and hidden from sight.
Hold the fabric in your left hand with the button hole slit positioned vertically. Stick the tip of the needle underneath both layers of fabric and push it up through them both, 1/8 inch in from the raw edge of the slit. Insert the needle as close as possible to where it was first pulled through in Step 4. This stitch acts as an anchoring stitch.
Make a very fine blanket stitch all the way around the inside edge of the button hole. This stitch is traditionally used to give a finished edge to a raw edge of fabric. Holding the fabric in the same position as in Step 5, insert the tip of the needle down through the slit and push it up through the bottom layer of fabric and through to the top layer. Insert the needle tip into the fabric 1/8 inch in from the cut edge. This is essential to producing a nice, evenly stitched button hole all the way around the slit.
Pull the thread through. When the loop of the thread that has naturally formed is about 1/8 inch in diameter, insert the tip of the needle through it from front to back. Gently finish pulling the thread through the fabric. Don't pull too tightly or the fabric will pinch and pucker. Pull the thread back down toward the bottom of the button hole. This sets the thread up for laying along the raw edge of the slit.
Repeat Steps 6 and 7 all the way around the button hole. At the top and bottom ends of the cut slit, position the stitches so they progressively form a half-round radiating pattern. Once the ends have been stitched, resume making regularly spaced stitches along the straight edges.
Tie off the threads when the button hole has been completely blanket stitched. On the back side of the bottom layer of fabric, tie a knot close to the face of the fabric. Insert the needle so it slides between the two layers of fabric and then pull it out again. Snip the thread at the surface. This will conceal the tail end in between the two layers of fabric.
The closer you place your blanket stitches, the more refined the button hole will look.
When cutting the slits through both layers of fabric, don't cut them too long or the buttons will slip out.