Ridgeline Zigzag Hanging Toilet Paper Holder Crochet Pattern

This three-tier hanging toilet paper holder stores three spare rolls on the wall in very little space. Each basket is a firm cylinder of oatmeal cotton. A bold black zigzag band runs around the lower wall, and a corded rim finishes the top edge. Narrow beige straps join the baskets into one column, and a strap at the top loops through a wooden ring so the holder can hang from a hook or towel bar.

The look is calm and modern. The neutral beige matches most bathroom finishes, and the black chevron adds graphic contrast without looking busy. Use a cotton yarn so the baskets stay firm, hold their shape, and wash well.

The pattern uses US crochet terms. The finished holder measures about 5.4 in (13.7 cm) wide and 17.7 in (45.0 cm) long from the top of the hanging strap to the bottom of the lowest basket, not counting the ring.

Construction is simple. Each basket starts with a flat circle base. A back-loop round turns the edge upward, then the wall is worked in joined rounds with tapestry crochet for the zigzag. A reverse single crochet round finishes the rim. Last, you make short connector straps and one long hanging strap and sew them in place.

Finished Size and Construction

  • Finished size: 5.4 in (13.7 cm) wide × 17.7 in (45.0 cm) long, ring not included
  • Skill level: Intermediate (tapestry color changes)
  • Terminology: US crochet terms
  • Yarn weight: Worsted/aran (#4) cotton
  • Hook: 5.0 mm (US H-8)
  • Number of pieces: 8 (3 baskets, 4 connector straps, 1 hanging strap)
  • Layout: 1 column of 3 baskets, stacked vertically
  • Piece size (one basket): 5.4 in (13.7 cm) diameter × 3.5 in (8.9 cm) tall
  • Size before rim: wall height 3.2 in (8.1 cm)
  • Rim depth: about 0.3 in (0.8 cm), 1 round of reverse single crochet

Materials

Yarn: Use a smooth worsted or aran weight 100% cotton or cotton blend with about 170 m per 100 g. Cotton gives a dense fabric that keeps the cylinder upright. Avoid soft acrylics, which make the walls slump.

  • Color A, beige/oatmeal: 250 g, about 425 m (465 yd)
  • Color B, black: 75 g, about 128 m (140 yd)

These quantities include a margin of about 15–20% for gauge swatching, the carried strand in the tapestry rounds, and seaming tails.

Tools:

  • 5.0 mm (US H-8) crochet hook
  • 1 wooden ring, 2 in (5.1 cm) diameter
  • 4 locking stitch markers
  • Tapestry needle
  • Scissors
  • Measuring tape
  • One standard toilet roll, for test fitting

Abbreviations (US Terms)

  • ch: chain
  • sc: single crochet
  • inc: 2 sc in the same stitch
  • sl st: slip stitch
  • BLO: back loop only
  • rev sc: reverse single crochet (crab stitch)
  • st(s): stitch(es)
  • A / B: Color A (beige) / Color B (black)

Tapestry color change: Work the last yarn over of the stitch before the color change in the new color. Carry the unused color along the tops of the stitches of the previous round and work over it with every stitch, so it stays hidden inside the fabric.

Reverse single crochet (rev sc): Work from left to right (right-handed). Insert the hook into the next stitch to the right, yarn over, pull up a loop, yarn over, and pull through both loops.

Gauge and Checkpoints

Gauge: 14 sc × 15 rounds = 4 in (10.2 cm) in sc worked in rounds.

Make one complete basket before starting the others. It is your real gauge test.

Checkpoints:

  • After Rnd 10 (base): The flat circle measures 5.3 in (13.5 cm) across. Anything from 5.1–5.5 in (13.0–14.0 cm) is acceptable.
  • After Rnd 22 (wall): The wall measures 3.2 in (8.1 cm) tall from the BLO ridge. The circumference is 17.1 in (43.4 cm).
  • After Rnd 23 (rim): The basket is 3.5 in (8.9 cm) tall, and a roll drops in easily.

If your base is too big, go down 0.5 mm in hook size. If it is too small, or the roll won’t fit, go up 0.5 mm. Don’t change the stitch counts. The zigzag repeat needs exactly 60 stitches.

Crocheted beige and black cylindrical cat cave with white platform opening, featuring rope handles and natural fiber texture.

Basket (Make 3)

Work in joined rounds. Join each round with a sl st to the first sc, then ch 1, which does not count as a stitch. The joins line up in one column. That column is stitch 1, and the straps will cover it later.

Base

With A, make a magic ring.

Rnd 1: 6 sc in the ring, join. (6 sts)

Rnd 2: Inc in each st around. (12 sts)

Rnd 3: (Sc 1, inc) × 6. (18 sts)

Rnd 4: (Sc 1, inc, sc 1) × 6. (24 sts)

Rnd 5: (Sc 3, inc) × 6. (30 sts)

Rnd 6: (Sc 2, inc, sc 2) × 6. (36 sts)

Rnd 7: (Sc 5, inc) × 6. (42 sts)

Rnd 8: (Sc 3, inc, sc 3) × 6. (48 sts)

Rnd 9: (Sc 7, inc) × 6. (54 sts)

Rnd 10: (Sc 4, inc, sc 4) × 6. (60 sts)

The staggered increases keep the circle round rather than hexagonal. Check the 5.3 in (13.5 cm) diameter now.

Wall Turn

Rnd 11: Sc in BLO of each st around. (60 sts)

This round leaves the front loops as a crisp ridge on the outside and turns the work up into a wall. From here, there are no increases.

Rnds 12–13: With A, sc in each st around. (60 sts each round)

At the end of Rnd 13, join B with the color-change method. Carry A from here on.

Zigzag Band

Each round repeats a 10-stitch pattern 6 times, giving 60 stitches. Carry the unused color inside every stitch.

Rnd 14: (B 1, A 8, B 1) × 6. (60 sts: 12 B, 48 A)

Rnd 15: (B 2, A 6, B 2) × 6. (60 sts: 24 B, 36 A)

Rnd 16: (A 1, B 2, A 4, B 2, A 1) × 6. (60 sts: 24 B, 36 A)

Rnd 17: (A 2, B 2, A 2, B 2, A 2) × 6. (60 sts: 24 B, 36 A)

Rnd 18: (A 3, B 4, A 3) × 6. (60 sts: 24 B, 36 A)

Rnd 19: (A 4, B 2, A 4) × 6. (60 sts: 12 B, 48 A)

The black stitches at the ends of each repeat in Rnds 14–15 meet the next repeat, which makes a 2-stitch valley at the bottom and 4-stitch blocks above it. The black then steps inward 1 stitch per round to a 2-stitch peak in Rnd 19. That gives 6 V-shaped peaks around. Cut B at the end of Rnd 19, leaving a 6 in (15.2 cm) tail to weave in.

Upper Wall

Rnds 20–22: With A, sc in each st around. (60 sts each round)

Checkpoint: the wall is 3.2 in (8.1 cm) tall from the ridge.

Make All Pieces

Baskets: Make 3, all identical.

Connector straps (make 4): With A, ch 10.
– Row 1: Sc in 2nd ch from hook and in each ch across, turn. (9 sts)
– Row 2: Ch 1, sc in each st across. (9 sts)

Fasten off, leaving a 10 in (25.4 cm) tail. Each strap is 2.6 in (6.6 cm) long × 0.5 in (1.3 cm) wide.

Hanging strap (make 1): With A, ch 47.
– Row 1: Sc in 2nd ch from hook and in each ch across, turn. (46 sts)
– Row 2: Ch 1, sc in each st across. (46 sts)

Fasten off with a 10 in (25.4 cm) tail. The strap is 13.1 in (33.3 cm) long × 0.5 in (1.3 cm) wide.

Color use per piece:

  • Each basket: A for Rnds 1–13 and 20–23, B for Rnds 14–19
  • All 5 straps: A only

Layout grid (front view):

        [ ring ]
         /    \
   hanging strap
       /        \
   [ Basket 1 ]   top
     |        |   connector straps (2)
   [ Basket 2 ]   middle
     |        |   connector straps (2)
   [ Basket 3 ]   bottom

Joining

Finish the rims (see Border, below) on all 3 baskets before joining.

Marking: On each basket, place a marker at stitch 1, the join column, and another at stitch 31, directly opposite. That leaves 30 stitches between the markers on each side. Do this in Rnd 22 for the top edge and in Rnd 12 for the bottom of the wall.

Hanging strap: Slide the ring onto the strap and center it. Lay 0.5 in (1.3 cm), about 2 stitches, of one strap end inside Basket 1 at stitch 1, just below the rim. Whipstitch all four edges through Rnds 21–22. Repeat with the other end at stitch 31. Make sure the strap isn’t twisted.

Connector straps: Each strap joins the rim of an upper basket to the base of the basket below it. Sew the top 0.5 in (1.3 cm) of a strap inside the upper basket at stitch 1, through Rnds 21–22. Sew the bottom 0.5 in (1.3 cm) to the outside of the lower basket at stitch 1, over Rnds 11–12 just above the ridge. Repeat at stitch 31. Join Basket 2 to Basket 1 and Basket 3 to Basket 2 the same way.

Stitch-to-stitch logic: All seams sit on stitches 1 and 31, so every basket hangs level and centered. The straps also hide the join column.

Tension: Sew firmly but don’t pucker the wall. Go through both strap rows on every stitch.

Visible gap: Each strap is 2.6 in (6.6 cm) long. Subtract 0.5 in (1.3 cm) of overlap at each end and 1.6 in (4.1 cm) shows between baskets.

Size checkpoint: Hang the holder. It should measure 17.7 in (45.0 cm): about 4 in (10.2 cm) of hanging triangle, plus 3 × 3.5 in (8.9 cm) baskets, plus 2 × 1.6 in (4.1 cm) gaps.

Border (Rim)

The border on each basket is a single round of reverse single crochet that makes the corded rim.

Border gauge: 1 rev sc per stitch, about 3.5 sts per inch (2.5 cm), the same as the body gauge.

Rnd 23: With A, ch 1. Rev sc in each st around, join with a sl st to the first rev sc. (60 sts)

Fasten off and weave in the end.

Why the math works: The rim is a trim round worked 1 stitch per existing stitch, 60 + 0 added. It keeps the same 17.1 in (43.4 cm) circumference as the wall, so it neither flares nor pulls in. The 60 stitches split evenly into 6 zigzag repeats of 10, and into 2 halves of 30 for the strap positions at stitches 1 and 31. The rim adds about 0.3 in (0.8 cm), which brings the wall from 3.2 in (8.1 cm) to the finished 3.5 in (8.9 cm).

Final Blocking

  1. Spritz each basket lightly with water until it is damp, not soaked.
  2. Push the base flat from inside and roll the ridge between your fingers so it sits crisp.
  3. Slide a toilet roll, or a container 5.4 in (13.7 cm) across, inside each basket to shape the cylinder.
  4. Straighten the zigzag columns so the peaks stand vertical.
  5. Lay the straps flat and pat them straight.
  6. Let everything dry completely, about 24 hours, before hanging.

Final Quality-Control Checklist

  • All 3 bases measure 5.1–5.5 in (13.0–14.0 cm) across.
  • Each basket has 60 stitches and exactly 6 zigzag peaks.
  • No black shows through the beige rounds.
  • The rims lie flat and are the same height on all baskets.
  • The straps are sewn at stitches 1 and 31 and are not twisted.
  • The gaps between baskets both measure 1.6 in (4.1 cm).
  • The total length is 17.7 in (45.0 cm), and the baskets hang level.
  • A roll drops into each basket without forcing.

Troubleshooting

  • The base cups or ruffles: Your tension changed. Cupping means it’s too tight, so loosen up or go up a hook size. Ruffling means it’s too loose, so go down a size.
  • The black shows through the beige: Pull the carried strand snug, keep it at the back of the stitch, and use a tighter tension.
  • The zigzag slants: Joined-round seams drift slightly. Make sure each round starts in the stitch where the join was made.
  • The wall leans outward: Rnd 11 must be worked in the BLO. Rework it if you used both loops.
  • The basket hangs crooked: Count again. The straps must sit exactly 30 stitches apart on both sides.
  • The rim flares: Work the rev sc with a smaller hook, but keep 1 stitch in each stitch.

Care

Hand wash in cool water with mild soap, press out the water in a towel, and reshape the baskets over rolls to dry flat. Don’t tumble dry.

Three-tiered crocheted storage baskets in cream and black holding toilet paper rolls in a sunlit bathroom.

Final Notes

Here is the measurement chain:

  • Gauge: 14 sc × 15 rounds = 4 in (10.2 cm).
  • Base: 60 sts, 5.3 in (13.5 cm) across.
  • Wall: 60 sts around, 17.1 in (43.4 cm) circumference, 3.2 in (8.1 cm) tall.
  • Rim: 60 rev sc, bringing each basket to 3.5 in (8.9 cm).
  • Assembly: 4 straps of 2.6 in (6.6 cm) leave gaps of 1.6 in (4.1 cm). The 13.1 in (33.3 cm) hanging strap forms the top triangle.
  • Finished holder: 17.7 in (45.0 cm) long.

Check each link, and the finished holder will hang level and fit standard rolls.

Happy crocheting!

Leave a Comment