Crochet Leg Warmer Patterns

Free Pattern: Two-Tone Diamond Knee Covers in T-Shirt Yarn

Knitting Vibes • October 22, 2026

Introduction

If you have ever wanted to make something cozy with your own two hands but felt intimidated by fancy patterns, this project is for you. These Two-Tone Diamond Knee Covers are the perfect first "real" project for a complete beginner — they use only the most basic crochet stitches, yet the finished result looks like something you bought from a boutique. Worked in thick, squishy t-shirt yarn, they feel substantial and warm in your hands as you crochet, and the finished leg warmers are soft, matte, and wonderfully hygge — the kind of thing you'll want to wear all winter long. The lower half is a deep, solid olive green, the upper half is a warm ochre yellow with an open, geometric diamond mesh, and a pretty little scalloped ridge joins the two colors right at the middle. You'll make two of them, and by the time you finish the second one you'll be amazed at how far you've come.

Materials Needed

  • Yarn: T-shirt yarn (also called trapillo) — a thick, bulky/super bulky weight yarn approximately 5–7 mm thick. You will need 2 skeins of olive (approx. 120 yd / 110 m each) and 2 skeins of ochre (approx. 120 yd / 110 m each). The sample uses 100% cotton t-shirt yarn. Total yarn needed for the pair: approx. 240 yd olive and 240 yd ochre.
  • Crochet hook: 6.5 mm (US K-10.5), or whatever size you need to match the gauge below.
  • Stitch markers: At least 2 (one per leg warmer) — these help you keep track of where each round begins.
  • Tapestry needle: A large-eye, blunt-tipped needle (sometimes called a yarn needle) for weaving in your ends. Because t-shirt yarn is thick, choose a needle with a wide eye.
  • Scissors: Any sharp pair for cutting yarn.
  • Measuring tape: For checking gauge and length.

Finished size / dimensions: Each leg warmer measures approximately 10 inches (25 cm) tall and approximately 12 inches (30 cm) around (unstretched), fitting a calf of roughly 11–14 inches (28–36 cm) circumference. The picot ridge sits just below the knee. The pair is designed to fit most adults; see the Pro Tips section for how to adjust the size.

Abbreviations and Beginner Glossary

Every abbreviation used in this pattern is listed below with a plain-English explanation. Read through this list once before you begin — you don't need to memorize it, just know it's here when you need it.

  • ch — chain. Make a loop of yarn on your hook, then pull the yarn through the loop on your hook. That's one chain. A row of chains looks like a little braid.
  • sl st — slip stitch. Insert your hook into the stitch, wrap the yarn over the hook, and pull it straight through both the stitch and the loop on your hook in one motion. It makes a nearly invisible join.
  • sc — single crochet. Insert your hook into the stitch, wrap the yarn over and pull up a loop (you now have 2 loops on your hook), wrap the yarn over again, and pull through both loops. One single crochet made.
  • dc — double crochet. Wrap the yarn over your hook first, insert the hook into the stitch, wrap the yarn over and pull up a loop (3 loops on hook), wrap the yarn over and pull through the first 2 loops (2 loops left), wrap the yarn over and pull through the last 2 loops. One double crochet made. It's taller than a single crochet.
  • picot — a tiny decorative bump. In this pattern: ch 3, then sl st into the third chain from your hook (that's the very first chain you made). This makes a little loop that stands up from the fabric.
  • sp — space. The gap of air created by a chain (for example, a "ch-1 sp" is the little hole made by one chain stitch). You work your hook into that hole rather than into a stitch.
  • st — stitch. One completed unit of crochet.
  • sts — stitches (plural).
  • rep — repeat. Do the instruction again.
  • rnd — round. One complete circle of crochet when you work in the round (in a spiral or joined circle) rather than back and forth in rows.
  • magic ring — an adjustable loop of yarn that you crochet into to start a circle. It lets you pull the center hole completely closed. (If you prefer, you can ch 4 and join with a sl st to form a ring instead — see Beginner Tips.)
  • beg — beginning. As in "beginning ch-3," the chain you made at the start of the round.
  • filet crochet — a technique where you create a picture or pattern using solid blocks of double crochet and open "holes" made of chain spaces. Here it makes the diamond shapes.
  • fasten off — cut the yarn a few inches from your work, then pull the tail all the way through the last loop on your hook to lock it.
  • weave in ends — use your tapestry needle to thread the loose yarn tails back and forth through the inside of the fabric so they disappear and don't unravel.
  • block — gently dampen and shape the finished piece, then let it dry flat. This evens out the stitches and opens up the openwork pattern.

Gauge

Gauge: 10 double crochet stitches x 5 rows = 4 inches (10 cm) in double crochet with t-shirt yarn.

Why gauge matters: Gauge is simply how big your stitches come out. If your stitches are bigger than the pattern's, your leg warmers will be too loose and may slide down; if they're smaller, the leg warmers will be too tight to pull on. Everyone crochets a little differently, so checking gauge is how you make sure the finished item actually fits.

How to make a gauge swatch: With your 6.5 mm hook and olive yarn, ch 14. Row 1: dc in the 4th ch from hook and in each ch across (12 dc). Row 2: ch 3, dc in each st across (12 dc). Repeat Row 2 until you have 6 rows total. Lay the swatch flat, place a measuring tape across the middle, and count how many stitches fit in 4 inches (10 cm) and how many rows fit in 4 inches (10 cm). If you have more stitches than 10 per 4 inches, your stitches are too small — try a larger hook. If you have fewer, your stitches are too big — try a smaller hook. Change hook size and swatch again until it matches.

Beginner Tips Before You Start

  • Use a stitch marker to mark the start of every round. Place a marker in the very first stitch of each round. When you reach the marker again, you know you've completed a full round. This is the single best way to avoid losing your place.
  • Don't pull your yarn too tight. T-shirt yarn is thick and has little stretch, so tight tension makes stiff, hard-to-work fabric. Keep your loops relaxed and let the hook do the work.
  • Count your stitches at the end of every round. The stitch count in parentheses tells you exactly how many you should have. If you're off by one or two, fix it now rather than discovering it five rounds later.
  • If the magic ring feels tricky, use the alternative start. Instead of a magic ring, ch 4 and join with a sl st to the first ch to make a small ring, then work Round 1 into that ring. The center hole will be slightly larger but it works perfectly well.
  • Work the filet section slowly and read the chart. The diamond pattern is made of double crochets and chain-1 spaces. Say the stitches out loud as you go ("dc, dc, dc, chain one, skip one...") — it really helps.
  • Make both leg warmers with the same hook and the same tension. Crochet the second one right after the first while the pattern is fresh in your mind, so the pair matches.

Step-by-Step Instructions

PATTERN NOTES: Leg warmers are worked in the round from the bottom cuff upward. The lower half is solid olive; the upper half is ochre filet diamond mesh. A decorative picot ridge joins the two colors at the center. The filet pattern is worked in double crochet (dc) and chain-1 spaces (ch-1 sp). Ch 3 at the beginning of each round counts as the first dc unless otherwise stated. Make 2 leg warmers.

Lower Cuff (Olive)

With olive t-shirt yarn, make a magic ring.

Rnd 1: Ch 3 (counts as first dc), work 11 dc into the ring, join with sl st to top of beginning ch-3. (12 dc)

Rnd 2: Ch 3, dc in same st, 2 dc in each st around, join with sl st. (24 dc)

Rnd 3: Ch 3, dc in same st, *dc in next st, 2 dc in next st; rep from * around, join with sl st. (36 dc)

Rnd 4: Ch 3, dc in each st around, join with sl st. (36 dc)

Rnds 5–14: Rep Rnd 4 (that is: ch 3, dc in each st around, join with sl st) ten more times. (36 dc) — the lower leg now measures approximately 10 inches (25 cm) from the starting edge.

Fasten off olive. Leave a 6-inch tail for weaving in later.

Picot Ridge (Joining Round)

Join ochre t-shirt yarn with a sl st in any st of Rnd 14.

Rnd 15 (picot ridge): Ch 1, sc in same st, *picot (ch 3, sl st in the third ch from hook), skip next st, sc in next st; rep from * around, ending with picot, skip last st, join with sl st to first sc. (18 picots)

Note: This creates a raised, decorative ridge that separates the olive lower half from the ochre upper half.

Upper Leg (Ochre Filet Diamond)

Rnd 16: Ch 3, dc in each st and in each picot sp around, join with sl st. (36 dc)

Rnd 17: Ch 3, dc in next 2 sts, *ch 1, skip next st, dc in next 3 sts; rep from * around, ending with ch 1, skip last st, join with sl st to top of beginning ch-3. (9 ch-1 sps)

Rnd 18: Ch 3, dc in next 2 sts, *ch 1, dc in next ch-1 sp, ch 1, skip next st, dc in next 2 sts; rep from * around, join with sl st. (18 ch-1 sps)

Rnd 19: Ch 3, dc in next st, *ch 1, skip next st, dc in next ch-1 sp, dc in next st, ch 1, skip next st, dc in next st; rep from * around, join with sl st. (27 ch-1 sps)

Rnd 20: Ch 3, *ch 1, skip next st, dc in next ch-1 sp, dc in next st, dc in next ch-1 sp, ch 1, skip next st, dc in next st; rep from * around, join with sl st. (18 ch-1 sps)

Rnd 21: Ch 3, dc in next 2 sts, *ch 1, skip next st, dc in next 3 sts; rep from * around, join with sl st. (9 ch-1 sps)

Rnd 22: Ch 3, dc in each st and in each ch-1 sp around, join with sl st. (36 dc)

Rnds 23–24: Ch 3, dc in each st around, join with sl st. (36 dc)

Fasten off ochre.

Top Cuff (Ochre)

Rnd 25: Join ochre with sl st in any st of Rnd 24, ch 1, sc in each st around, join with sl st. (36 sc)

Rnd 26: Ch 1, sc in each st around, join with sl st. (36 sc)

Fasten off. Weave in all ends.

Filet Diamond Chart (read right to left, bottom to top)

This chart shows the diamond panel worked across the 36 stitches of the upper leg. Each "dc" is a double crochet, each "ch1" is a chain-1 space with the next stitch skipped. Follow it alongside Rnds 17–21 above.

Row 1: dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc

Row 2: dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc

Row 3: dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc

Row 4: ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc, ch1, dc, dc

Row 5: dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc

Row 6: dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc, ch1, dc, ch1, dc, dc

Row 7: dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc, ch1, dc, dc, dc

Repeat Rows 1–7 once for the filet diamond panel.

Assembly and Finishing

Seaming: These leg warmers are worked seamlessly in the round, so there are no seams to sew! The only "assembly" is making the second leg warmer exactly as you made the first.

Weaving in ends: Thread each loose yarn tail onto your tapestry needle. Working on the wrong side (the inside) of the leg warmer, weave the needle in and out through the backs of several stitches for about 2 inches (5 cm), then change direction and weave back the other way for another inch. This locks the tail in place so it won't work loose in the wash. Trim the yarn close to the fabric. Do this for every tail — the olive fasten-off, the ochre joins, and the final fasten-off.

Blocking: Lightly dampen the leg warmers with a spray bottle of cool water (don't soak them). Lay them flat on a towel, gently pat them into shape so the diamond mesh opens up evenly, and smooth the picot ridge so it sits flat. Leave them to dry completely at room temperature — usually a few hours with t-shirt yarn. Blocking is what makes the open filet diamonds really "pop."

Final check: Try them on. The picot ridge should sit just below the knee, with the solid olive section hugging your lower calf and the ochre diamond section rising toward the knee.

Pro Tips and Variations

  • Change the colors: This two-tone design works with any color pairing. Try charcoal gray with mustard, cream with dusty rose, or navy with rust. You could even make the lower half and upper half the same color for a subtle, textured monochrome look.
  • Adjust the size: To make the leg warmers wider or narrower, add or remove stitches in multiples of 3 (the filet pattern repeats every 3 stitches). For example, work Rnd 3 to 33 dc instead of 36 for a slimmer fit, or 39 dc for a wider fit — just keep the stitch count consistent through every round.
  • Adjust the length: To make them taller, add extra plain dc rounds (like Rnd 4) to the olive lower section before the picot ridge, or extra dc rounds (like Rnds 23–24) to the ochre upper section. Each extra round adds roughly ¾ inch (2 cm).
  • Substitute the yarn: If you can't find t-shirt yarn, any bulky or super bulky weight yarn (category 5 or 6) will work — just check your gauge again, since the thickness will differ. A wool-blend bulky yarn will feel warmer and slightly fuzzier than cotton t-shirt yarn.

Also Check Out: We think you'd love this beautiful pattern on our sister site: Whispering Pines Wrap Free Pattern