You will need:
1/2 yd of Ripstop Nylon
(you can probably use other fabric but the ripstop is light and your needles won't poke through)
Matching or contrasting thread
3 sets of #16 snaps
1 yd 1/4" wide grosgrain ribbon
12" 3/4" wide grosgrain ribbon
1 cord stop
Cut two rectangles of fabric 15.5" X 18" for a large bagor 12" X 9.5" for a small bag.
Sew short ends, wrong sides together on each end.
Make a french seam * - sew seam with wrong sides together on each end, press, turn tube wrong side out and resew seam enclosing sewn seam allowance. Press under 1/4 inch at top edge of bag.
Turn under again at 3/4 inch and press.
Mark buttonhole directly across from the seam on the outside.Unfold and make buttonhole only through one layer.
Refold and topstitch creating a casing.
Mark quarters on the body of the bag. Pin bag to bottom match quarter marks and easing in any excess. Sew bottom to the bag.
Treat cut edges with Fray Check to keep from unraveling.
Cut grosgrain ribbon into two 5" pieces and one 10" piece. Apply snaps so when closed, the strips make a loop, to guide the yarn. Make sure to leave an inch or more at the end to attach them to the seam allowance. A zipper foot works well when sewing. Position ribbons under the french seam about 3" from top of bag and sew just to the seam allowance.
Cut a narrow piece of grosgrain ribbon long enough to thread through the casing plus extra for sewing closed. Thread into casing, sew closed and then pull ribbon so that the sewed part is near the seam.Sew the 10" piece of grosgrain ribbon at the seam opposite the buttonhole and over the casing so the drawstring ribbon will not pull out.
Fold the drawstring loop and thread it through the cord stop. Tie a knot at the end of the loop.
The completed bag, closed. The large bag will hold 4 skeins of worsted weight yarn.