I'll be showing you the general process, but of course you should make these whatever size or shape you require.
You will need:
Fabric for your shell
Fabric for your lining
Fabric for your interlining, if your other fabrics are very lightweight
Cardstock or construction paper
Snaps (the pound-in kind, not the sew-in kind; I used Dritz 3/8" Snap Fasteners)
A closure of your choosing, or two buttons and some thin elastic cord
And miscellaneous sewing stuff, like thread, scissors, pen/pencil/chalk, ruler, etc.
Step 1: Make the Template, Cut the Fabric
Next, sketch the lid. Start with a rectangle as tall as the depth (or thickness) of your bag, and add 1/2". This is the minimum needed to cover the top of the bag. I forgot to add 1/2" to mine, so my bag is a little wonky. Above the rectangle, sketch the shape of the lid that will overlap onto the front of the bag. Again, don't worry about symmetry.
Fold your templates in half, with the fold running from top to bottom. Cut out your templates. Place your front template with the fold on the fold of your fabric. Trace and cut one from the shell and one from the lining fabric. In this case, my shell is purple and my lining is green.
Lay the fold of your front template and your lid template on the fold of your shell fabric, with the templates lined up to make one contiguous back piece. Trace and cut, then repeat with lining fabric.
Measure around your front piece: down one side, across the bottom, and up the other side, but not across the top. Add one inch to that measurement for wiggle room. This is the length of the rectangular piece that will give your bag depth. The width can be whatever width you like, plus one inch for the seam allowances. Cut one piece each from the shell and the lining.