Cocoa Waffle Hanging Toilet Paper Holder Crochet Pattern

This hanging organizer has three oval baskets stacked in one column, and each basket holds one standard toilet roll. A waffle-stitch grid covers the walls and a plain single crochet rim finishes each top edge. Slim straps link the baskets, and a short tab at the top loops over a natural wooden ring.

The sample uses a single warm cocoa brown. The deep waffle texture looks cozy and spa-like against pale bathroom tile. Using one color keeps the piece calm and modern, and it also hides the seams well. It hangs from a towel hook, a door hook or a small wall knob.

All instructions use US crochet terms. One basket measures about 6.2 in (15.7 cm) wide, 4.5 in (11.4 cm) from front to back, and 4 in (10.2 cm) tall. Assembled, the holder is about 18 in (45.7 cm) long from the tab fold to the bottom of the lowest basket, or about 20.5 in (52.1 cm) including the ring.

Construction is simple:

  1. Crochet a flat single crochet oval base.
  2. Work one back-loop round to turn the wall up.
  3. Work the waffle stitch in the round.
  4. Finish with a 3-round rim.
  5. Make four straps and one tab, sew everything together, and slide the ring into the tab.

Finished Size and Construction

  • Finished size (one basket): 6.2 in (15.7 cm) wide x 4.5 in (11.4 cm) deep x 4 in (10.2 cm) tall
  • Finished size (assembled): about 18 in (45.7 cm) long without the ring, 20.5 in (52.1 cm) with the ring
  • Skill level: Intermediate (front post stitches)
  • Terminology: US
  • Yarn weight: Worsted (#4) cotton or cotton blend
  • Hook: 5.0 mm (H-8)
  • Number of pieces: 3 baskets, 4 straps and 1 hanging tab, plus 1 wooden ring
  • Layout: 1 column of 3 baskets, with 2 straps between each pair
  • Basket perimeter: 66 sts, about 17.6 in (44.7 cm)
  • Wall height before border: about 3.3 in (8.4 cm)
  • Border (rim) depth: 3 rounds, about 0.7 in (1.8 cm)

Materials

Choose a firm, smooth worsted cotton. Cotton keeps its shape under the weight of a full roll and shows the waffle grid clearly. Avoid fuzzy or very stretchy yarns: they blur the texture and let the baskets sag. A cotton-acrylic blend also works if it has little stretch.

Pick a mid-to-dark shade if you can. Deep browns, rusts and charcoals show the light and shadow of the grid best. Very pale yarns flatten the texture visually.

  • Cocoa brown: about 250 g / 425 m (465 yd)

Tools:

  • 5.0 mm (H-8) crochet hook
  • Wooden ring, about 2.75 in (7.0 cm) outer diameter
  • 6 locking stitch markers
  • Tapestry needle
  • Scissors
  • Measuring tape
  • Spray bottle and one toilet roll for blocking

The yarn quantity includes a margin of roughly 20 percent. Post stitches use much more yarn than plain stitches, so don’t cut it close.

Abbreviations (US Terms)

  • ch: chain
  • sl st: slip stitch
  • sc: single crochet
  • dc: double crochet
  • inc: 2 sc in the same stitch
  • BLO: back loop only
  • FPdc: front post double crochet
  • st(s): stitch(es)
  • rnd(s): round(s)

FPdc: Yarn over and insert the hook from front to back to front around the post of the stitch below. Yarn over and pull up a loop, then (yarn over, pull through 2 loops) twice.

Waffle Rnd A: *FPdc around next st, dc in next 2 sts; repeat from * around.

Waffle Rnd B: *dc in next st, FPdc around each of next 2 sts; repeat from * around.

Alternating Rnds A and B raises a different column each round. The raised posts form the grid lines and the plain dc form the sunken squares. Work every round with the right side facing, and don’t turn.

Gauge and Checkpoints

  • Single crochet: 15 sts and 17 rows = 4 in (10.2 cm)
  • Waffle stitch in the round: 15 sts and 9 rnds = 4 in (10.2 cm)

Make one complete basket first and measure it before you start the others. Use these checkpoints:

  • After Rnd 5: base about 4.1 in x 2.6 in (10.4 x 6.6 cm)
  • After Rnd 9: base about 6.2 in x 4.5 in (15.7 x 11.4 cm)
  • After Rnd 13: wall about 1.6 in (4.1 cm) tall
  • After Rnd 17: wall about 3.3 in (8.4 cm) tall
  • After the rim: basket about 4 in (10.2 cm) tall

  • Base too big: go down one hook size.

  • Base too small: go up one hook size.
  • Only the height is off: adjust your tension on the dc rounds instead of changing the round count. This keeps the stitch counts and strap positions the same.
Brown crocheted storage basket with bumpy stitch texture and light wooden handles against soft beige background.

Basket (make 3)

Join each round with a sl st to the first st. The ch 1 at the start of sc rounds and the ch 2 at the start of dc rounds don’t count as stitches.

Base

Ch 9.

Rnd 1: 3 sc in 2nd ch from hook, sc in next 6 ch, 3 sc in last ch. Rotate and work along the bottom loops of the chain: sc in next 6 ch; join. (18 sts: 3 end, 6 side, 3 end, 6 side)

Rnd 2: Ch 1, [inc in each of next 3 sts, sc in next 6 sts] twice; join. (24 sts)

Rnd 3: Ch 1, [(sc in next st, inc) 3 times, sc in next 6 sts] twice; join. (30 sts)

Rnd 4: Ch 1, [(sc in next 2 sts, inc) 3 times, sc in next 6 sts] twice; join. (36 sts)

Rnd 5: Ch 1, [(sc in next 3 sts, inc) 3 times, sc in next 6 sts] twice; join. (42 sts)

Rnd 6: Ch 1, [(sc in next 4 sts, inc) 3 times, sc in next 6 sts] twice; join. (48 sts)

Rnd 7: Ch 1, [(sc in next 5 sts, inc) 3 times, sc in next 6 sts] twice; join. (54 sts)

Rnd 8: Ch 1, [(sc in next 6 sts, inc) 3 times, sc in next 6 sts] twice; join. (60 sts)

Rnd 9: Ch 1, [(sc in next 7 sts, inc) 3 times, sc in next 6 sts] twice; join. (66 sts)

Each round adds 6 sts, 3 at each curved end, so the oval stays flat. The last 6 sts of every round (sts 61-66 in Rnd 9) form the straight back edge. Place one marker in st 63 and another in st 64. The center back sits between them. These markers stay in place to the end.

Wall

Rnd 10 (turning round): Ch 1, sc in BLO of each st around; join. (66 sts)

This round leaves a crisp ridge on the outside and turns the work upward.

Rnd 11 (foundation): Ch 2, dc in each st around; join. (66 sts)

Rnd 12: Ch 2, work Waffle Rnd A; join. (66 sts, 22 repeats)

Rnd 13: Ch 2, work Waffle Rnd B; join. (66 sts, 22 repeats)

Rnds 14-17: Repeat Rnds 12-13 twice. (66 sts in each round)

The wall now has 6 waffle rounds and measures about 3.3 in (8.4 cm). Don’t fasten off. Continue with the rim in the Border section.

Straps and Tab

Strap (make 4)

Ch 5.

Row 1: Sc in 2nd ch from hook and in each ch across. (4 sts)

Rows 2-15: Ch 1, turn, sc in each st across. (4 sts)

Fasten off, leaving a 12 in (30.5 cm) tail. Each strap measures about 1.1 in x 3.5 in (2.8 x 8.9 cm).

Hanging Tab (make 1)

Ch 7.

Row 1: Sc in 2nd ch from hook and in each ch across. (6 sts)

Rows 2-24: Ch 1, turn, sc in each st across. (6 sts)

Fasten off, leaving a 16 in (40.6 cm) tail. The tab measures about 1.6 in x 5.6 in (4.1 x 14.2 cm).

Make All Pieces

Finish each basket completely, including the 3-round rim from the Border section, before joining. You need:

  • Cocoa brown: 3 baskets (about 65 g each), plus 4 straps and 1 tab (about 15 g total)

Layout, viewed from the back:

          ( ring )
          [ TAB ]
   [     BASKET 1 (top)     ]
     |S1|            |S2|
   [   BASKET 2 (middle)    ]
     |S3|            |S4|
   [   BASKET 3 (bottom)    ]

Joining

Whipstitch through both layers, using the tails left on the straps and tab.

Strap positions: On each basket, count outward from the center-back markers. The straps sit on sts 54-57 and sts 4-7. This leaves a 12-st gap between them, about 3.2 in (8.1 cm). The two straps span 20 sts from outer edge to outer edge, about 5.3 in (13.5 cm). Mark these 8 sts on all three baskets.

Lower end: Lay the first 3 rows of a strap over the outside of the lower basket’s rim, covering the 4 marked sts and all 3 rim rounds. Sew stitch to stitch: each of the 4 strap sts goes to 1 rim st, and each of the 3 strap rows goes to 1 rim round.

Upper end: Lay the last 3 rows of the same strap over the outside back wall of the upper basket, on the same 4 st columns, covering Rnds 10-11. Sew around all 4 edges of the overlap.

Tab: Center the tab over sts 61-66 of the top basket and sew the first 3 rows to the inside of the rim. Pass the free end through the ring and bring it down the outside. Sew the last 3 rows to the outside of the rim, stitching through all three layers.

Keep your stitches firm but not tight. A seam pulled too tight will dimple the rim, and a loose one will let the baskets tip forward.

Size checkpoint: Hang the holder. The visible part of each strap between baskets should measure about 2.1 in (5.3 cm), and every basket should hang level.

Border

The border is the rim at the top of each basket. Work it straight up from Rnd 17 with no increases.

Border gauge: 15 sc = 4 in (10.2 cm). This matches the waffle gauge, so 66 sts measure 17.6 in (44.7 cm).

Rnd 18: Ch 1, sc in each st around; join. (66 sts: 33 front half, 33 back half)

Rnd 19: Ch 1, sc in each st around; join. (66 sts: 33 front half, 33 back half)

Rnd 20: Ch 1, sc in each st around. Fasten off with an invisible join. (66 sts: 33 front half, 33 back half)

Why the math works: The waffle pattern needs a multiple of 3 sts, and 66 sts gives 22 repeats. Each rim round has exactly 1 sc per wall st, so the rim matches the wall perimeter and the basket stays straight-sided instead of flaring or pulling in. The two straps take 4 sts each and the tab takes 6 sts, all within the 66-st count, so no stitches are added at any seam.

Final Blocking

  1. Weave in all ends along the seams.
  2. Mist each basket lightly until it’s damp, not soaked.
  3. Push a toilet roll into each basket to shape the oval walls.
  4. Pinch the rim upright and smooth the waffle grid so the squares are even.
  5. Lay the holder flat on a towel with the straps straight and 2.1 in (5.3 cm) gaps.
  6. Let it dry completely, about 12-24 hours.
  7. Remove the rolls and check the measurements again.

Final Quality-Control Checklist

  • Each base has 66 sts and lies flat.
  • Each wall has 6 waffle rounds with a clear grid.
  • Each rim has 3 rounds of 66 sc.
  • All 3 baskets measure about 4 in (10.2 cm) tall.
  • The straps sit on the same st columns on every basket.
  • The gaps between baskets are equal, about 2.1 in (5.3 cm).
  • The tab is centered and the ring hangs straight.
  • All ends are woven in securely.

Troubleshooting

  • Base cups or ruffles: Check that each round adds exactly 6 sts. Cupping means too few increases or tight tension. Ruffling means too many increases.
  • The grid looks like vertical ribs: You’re probably repeating Rnd A. Alternate Rnds A and B every round.
  • Wall flares at the top: Your dc rounds are looser than your post rounds. Go down one hook size for the dc only.
  • Wall leans inward: Your post stitches are too tight. Pull up a slightly taller loop on each FPdc.
  • Basket tips forward: Sew the upper strap ends more firmly, or move both straps 1 st closer to the back edge.
  • Holder twists on the hook: Make sure the tab is centered exactly on sts 61-66.
  • Jumbo rolls don’t fit: Add one more base round (+6 sts for 72 total, still a multiple of 3). Shift the strap positions to match.

Care

Hand wash in cool water. Reshape with a roll inside each basket and lay flat to dry. Don’t tumble dry.

Hand retrieving toilet paper from brown crocheted hanging storage with three compartments in naturally lit, minimalist bathroom setting.

Final Notes

The measurement chain is short and easy to check:

  • The 66-st base gives a 17.6 in (44.7 cm) perimeter.
  • Six waffle rounds bring the wall to 3.3 in (8.4 cm).
  • The 3-round rim finishes each basket at 4 in (10.2 cm).
  • The straps leave 2.1 in (5.3 cm) gaps.
  • Three baskets plus the tab hang about 18 in (45.7 cm), or 20.5 in (52.1 cm) with the ring.

Check each stage as you go, and the finished holder will hang straight and hold its rolls neatly.

Happy crocheting!

Leave a Comment