Berry Garden Hanging Toilet Roll Holder Crochet Pattern

This hanging holder stacks three round baskets on two cream cords, so spare toilet rolls stay tidy, visible, and off the floor. Each basket has a flat cream base and a straight wall banded with burgundy heart-shaped puffs, a green band with cream puffs, and a row of burgundy shell scallops under a neat cream rim.

The palette is cream, deep burgundy, and forest green. It reads as cottage-style and a little vintage, and it works well in a bathroom with natural wood and plants.

The pattern uses US crochet terms. Each basket measures 5.5 in (14.0 cm) across and 3.5 in (8.9 cm) tall. Hung up, the whole holder is about 20.5 in (52.1 cm) from peak to bottom.

You’ll make three identical baskets and two cords, then whipstitch the cords to opposite sides of each basket. Each basket starts with a flat circle of double crochet. A back-loop round turns the edge up into the wall, which you work in color bands without increasing.

Finished Size and Construction

  • Basket size: 5.5 in (14.0 cm) diameter x 3.5 in (8.9 cm) tall
  • Full holder: about 5.5 in (14.0 cm) wide x 20.5 in (52.1 cm) tall
  • Skill level: Easy-intermediate
  • Terminology: US
  • Yarn weight: Worsted (#4) cotton
  • Hook: 5.0 mm (H-8)
  • Number of pieces: 5 (3 baskets, 2 cords)
  • Layout: 3 baskets stacked in 1 column with 2 in (5.1 cm) gaps
  • Wall size before border: 3.0 in (7.6 cm) tall
  • Border (rim) depth: 0.5 in (1.3 cm)

Materials

Pick a smooth worsted-weight cotton or cotton blend. Cotton keeps its shape, holds the walls upright, and stands up to bathroom humidity. The quantities below assume about 1.7 m per gram (for example, 50 g = 85 m).

  • Main Color (MC), cream: 155 g / 264 m
  • Color A, burgundy: 40 g / 68 m
  • Color B, forest green: 30 g / 51 m

These quantities include a margin of about 15% for gauge differences and swatching.

Tools:
– 5.0 mm (H-8) crochet hook
– Tapestry needle
– 6 locking stitch markers
– Scissors
– Tape measure
– Rustproof pins and a blocking mat
– One toilet roll for testing the fit
– A wall peg or hook, about 1.25 in (3.2 cm) across

Abbreviations (US Terms)

  • ch: chain
  • sl st: slip stitch
  • sc: single crochet
  • dc: double crochet
  • BLO: back loop only
  • sk: skip
  • st(s): stitch(es)
  • sp: space
  • rev sc: reverse single crochet (crab stitch). Work sc from left to right (right-handed).
  • MC / A / B: cream / burgundy / green

Puff stitch (puff): [Yo, insert hook in the indicated st, yo and pull up a loop to about 0.5 in (1.3 cm)] 3 times (7 loops on hook). Yo and pull through all 7 loops, then ch 1 to lock. The locking ch is not counted as a st, and each puff counts as 1 st.

Color changes: Join the new color in the final yo of the closing sl st of the previous round. Cut colors you won’t use again in that basket, and carry MC up the inside of the wall between bands.

Gauge and Checkpoints

Gauge: In both sc and dc, 14 sts = 4 in (10.2 cm). 16 sc rounds = 4 in (10.2 cm) and 8 dc rounds = 4 in (10.2 cm).

Make one complete basket first and use it as your swatch. Check it against these measurements:

  • After Round 1: 1.5 in (3.8 cm) across
  • After Round 3: 3.5 in (8.9 cm) across
  • After Round 5 (base done): 5.5 in (14.0 cm) across
  • After Round 14 (wall before rim): 3.0 in (7.6 cm) tall
  • After the rim: 3.5 in (8.9 cm) tall, with a circumference of about 17.1 in (43.4 cm)

If your base is too big (over 5.75 in / 14.6 cm), go down to a 4.5 mm hook. If it’s too small (under 5.25 in / 13.3 cm), go up to a 5.5 mm hook. A roll should drop in with about 0.5 in (1.3 cm) of room all around. A base that ruffles means your tension is too loose. A base that cups means it’s too tight.

Crocheted basket detail featuring burgundy puff stitches, cream stripe, and green yarn on a natural beige base.

Basket (Make 3)

Base

With MC, make a magic ring.

Round 1: Ch 3 (counts as dc), 11 dc in ring. Join with sl st to top of ch-3. Pull the ring closed. (12 sts)

Round 2: Ch 3, dc in same st, 2 dc in each st around. Join. (24 sts)

Round 3: Ch 3, 2 dc in next st, dc in next st, 2 dc in next st; repeat from * around. Join. (36 sts)

Round 4: Ch 3, dc in next st, 2 dc in next st, dc in each of next 2 sts, 2 dc in next st; repeat from * around. Join. (48 sts)

Round 5: Ch 3, dc in each of next 2 sts, 2 dc in next st, dc in each of next 3 sts, 2 dc in next st; repeat from * around. Join. (60 sts)

Checkpoint: 5.5 in (14.0 cm) across, lying flat.

Wall

The wall has no increases. Every round has 60 sts.

Round 6 (turning round): With MC, ch 1, sc in BLO of each st around. Join with sl st to first sc. (60 sts) The unworked front loops make a ridge, and the edge starts to turn up.

Rounds 7–8: With MC, ch 1, sc in each st around. Join. (60 sts per round)

Round 9 (burgundy hearts): Change to A. Ch 1, puff in next st, ch 1, sk next st; repeat from * around. Join with sl st to top of first puff. (30 puffs + 30 ch-1 sps = 60 sts) The puffs sit fat at the top and narrow at the base, which gives the heart shape.

Round 10: Change to B. Ch 1, sc in top of next puff, sc in next ch-1 sp; repeat from * around. Join. (60 sts)

Round 11 (cream puffs): Change to MC. Ch 1, sc in next st (over a puff), puff in next st (over a ch-1 sp); repeat from * around. Join. (30 sc + 30 puffs = 60 sts) The cream puffs sit between the burgundy hearts.

Round 12: Change to B. Ch 1, sc in each st around. Join. (60 sts) Cut B.

Round 13: Change to MC. Ch 1, sc in each st around. Join. (60 sts)

Round 14 (burgundy shells): Change to A. Ch 1, sc in first st, sk 2 sts, 5 dc in next st, sk 2 sts, sc in next st; repeat from * 8 more times. Then sk 2 sts, 5 dc in next st, sk 2 sts, and join with sl st to first sc. (10 shells; 10 x (5 dc + 1 sc) = 60 sts) Cut A.

Checkpoint: the wall is 3.0 in (7.6 cm) tall from the Round 6 ridge to the shell tops.

Make All Pieces

  • Baskets: 3, each using about 40 g MC, 11 g A, and 8 g B
  • Cords: 2, each using about 7 g MC

Cord (make 2): With MC, make a Romanian (lizard) cord. Ch 2, sc in 2nd ch from hook, turn the work clockwise, and sc in the side bump of the ch. Turn clockwise, insert the hook under the 2 left-side loops, and sc. Repeat from * until the cord measures 21 in (53.3 cm), which is about 84 cord rows at 4 rows per 1 in (2.5 cm). Leave a 12 in (30.5 cm) tail.

Lay out the pieces like this, with the peak at the top:

          /\        <- peak over peg (cord rows 59–84)
         /  \
   [ Basket 1 ]     <- cord rows 45–58
    |        |      <- gap, rows 37–44
   [ Basket 2 ]     <- cord rows 23–36
    |        |      <- gap, rows 15–22
   [ Basket 3 ]     <- cord rows 1–14

Joining

Method: Whipstitch with MC, using the cord tails or a separate length of yarn.

Stitch-to-stitch logic: Each basket is 3.5 in (8.9 cm) tall, and 14 cord rows also measure 3.5 in (8.9 cm). Sew 4 cord rows to each 1 in (2.5 cm) of wall height, so one cord row covers about 0.25 in (0.6 cm). That’s the height of one sc round.

  1. On each basket, place a marker in st 1 (where the round was joined) and another in st 31. That leaves 30 sts on each half, and 30 + 30 = 60. Putting a cord over st 1 hides the join seam.
  2. Line up cord rows 1–14 with the bottom basket, from the base edge to the rim. Whipstitch the cord flat over st 1, catching one cord row and one wall round with each pass.
  3. Leave rows 15–22 free. That’s a 2 in (5.1 cm) gap. Sew rows 23–36 to the middle basket, leave rows 37–44 free, and sew rows 45–58 to the top basket.
  4. Repeat steps 2 and 3 with the second cord over st 31.
  5. Bring the free ends (rows 59–84, 6.5 in / 16.5 cm each) together at the top. Sew them together side by side for 0.5 in (1.3 cm) to form the peak. You can add a ch-8 loop for the peg.

Tension: Pull each whipstitch just snug. Pulling too hard puckers the wall, and stitching too loosely makes the basket tilt.

Size checkpoint: Hold the holder up by the peak. Each gap should be 2 in (5.1 cm), the baskets should hang level, and the total length should be about 20.5 in (52.1 cm).

Border (Rim)

Work the rim on each basket before joining. Use MC.

Border gauge: 14 sts = 4 in (10.2 cm), the same as the wall. 60 sts therefore fit the 17.1 in (43.4 cm) circumference.

Border Round 1: Change to MC. Ch 1, sc in each sc and each dc around. Join. (10 shells x 6 sts = 60 sts; 30 sts per half between the cord markers)

Border Round 2: Ch 1, rev sc in each st around. Join and fasten off. (60 sts; 30 sts per half)

Why the math works: The base ends at 60 sts, and every wall round and both rim rounds keep 60 sts. The shells use exactly 6 sts per repeat (10 x 6 = 60). With the cords at sts 1 and 31, each half holds exactly 30 sts, so nothing is added or lost and the rim sits straight over the base. Each rim round adds 0.25 in (0.6 cm), so the 3.0 in (7.6 cm) wall plus the 0.5 in (1.3 cm) rim makes 3.5 in (8.9 cm).

Final Blocking

  1. Weave in all ends inside the walls, following stitches of the same color.
  2. Spritz each basket lightly with water until damp but not wet.
  3. Put a toilet roll (or a jar of the same size) inside each basket to set the round shape.
  4. Pat each base flat to 5.5 in (14.0 cm) and smooth the walls up to 3.5 in (8.9 cm).
  5. Pin the cords straight on the mat at 21 in (53.3 cm).
  6. Let everything dry completely, about 24 hours, before joining or hanging.

Final Quality-Control Checklist

  • Each base is 5.5 in (14.0 cm) across and lies flat
  • Every wall round has 60 sts
  • There are 30 burgundy hearts, 30 cream puffs, and 10 shells per basket
  • Each wall is 3.5 in (8.9 cm) tall, rim included
  • The cords sit over sts 1 and 31 on every basket
  • The gaps measure 2 in (5.1 cm)
  • The holder hangs level at about 20.5 in (52.1 cm)
  • All ends are woven in securely

Troubleshooting

  • Base ruffles: Use a smaller hook, or check that each round has the right count.
  • Base cups: You may have missed increases. Recount against 12/24/36/48/60.
  • Wall flares out: Your wall tension is looser than your base tension. Go down 0.5 mm for Rounds 6–14.
  • Puffs look flat: Pull the loops up taller and lock each puff firmly.
  • Shells don’t fit evenly: You need exactly 60 sts in Round 13. Recount before starting Round 14.
  • Baskets tilt: Re-sew the cords so they sit at opposite markers.

Care

Hand wash in cool water, press out the water in a towel, and dry flat over a roll so the baskets keep their shape. Don’t tumble dry.

A cream rope-handled crocheted toilet paper holder in burgundy and green hanging on a bathroom wall.

Final Notes

The measurement chain goes like this: 14 sts per 4 in (10.2 cm) gives a 5.5 in (14.0 cm) base of 60 sts. That base supports a straight 3.0 in (7.6 cm) wall, and a 0.5 in (1.3 cm) rim brings each basket to 3.5 in (8.9 cm). Two 21 in (53.3 cm) cords link three baskets with 2 in (5.1 cm) gaps for a holder about 20.5 in (52.1 cm) long. Check each stage as you go, and the finished holder will hang straight and hold your rolls neatly.

Happy crocheting!

Leave a Comment