This hanging toilet paper holder is a tall panel with three pockets. It hangs from a towel bar and holds three spare rolls in plain view. Each pocket has a raised diamond lattice of bobbles across the front, and the panel behind is worked in smooth, solid single crochet so the texture stays on the pockets.
The sample is worked in one color, a soft dusty rose. A muted mauve reads warm and calm in a bathroom, but any solid shade works. Variegated yarn will hide the bobbles, so avoid it.
The pattern uses US crochet terms. The bordered panel measures 7.0 in × 23.3 in (17.8 cm × 59.2 cm). The strap loops add about 2.4 in (6.1 cm), so the total hanging length is about 25.7 in (65.3 cm).
You’ll crochet a flat back panel in rows and three pockets in the round. Each pocket starts with an oval base and continues into turned rounds with bobbles. Sew the pockets to the panel, add a two-round border, then work two straps from the top edge.
Finished Size and Construction
- Finished size: 7.0 in × 23.3 in (17.8 cm × 59.2 cm) bordered panel, plus 2.4 in (6.1 cm) loops
- Skill level: Intermediate
- Terminology: US
- Yarn weight: Bulky (#5)
- Hook: 6.0 mm (US J-10)
- Number of pieces: 4 (1 panel, 3 pockets)
- Layout: 1 column × 3 pockets, stacked vertically
- Panel size before border: 5.7 in × 22.0 in (14.5 cm × 55.9 cm)
- Pocket size: 16.7 in (42.4 cm) around, 3.7 in (9.4 cm) tall
- Border depth: about 0.7 in (1.8 cm), 2 rounds
Materials
Use a smooth bulky cotton or cotton-blend yarn. Cotton holds the pocket shape and shows bobbles crisply. Acrylic will work, but the pockets will be softer.
- Dusty Rose: 250 g / 300 m total
- Panel, border and straps: about 85 g / 100 m
- Each pocket: about 45 g / 55 m
- Seaming: about 12 g / 15 m
These quantities include a margin of roughly 25%.
Tools:
– 6.0 mm (US J-10) hook
– 4 stitch markers
– Tapestry needle
– Scissors
– Tape measure
– Rustproof pins and a blocking surface
Abbreviations (US Terms)
- ch – chain
- sc – single crochet
- sl st – slip stitch
- BLO – back loop only
- rev sc – reverse single crochet (crab stitch)
- sp – space
- st(s) – stitch(es)
- RS / WS – right side / wrong side
Bobble: *Yarn over, insert hook in st, pull up a loop, yarn over, pull through 2 loops; repeat from * 4 more times in the same st (6 loops on hook), yarn over, pull through all 6 loops. A bobble counts as 1 st. Bobbles are worked on WS rounds so they pop out on the RS.
Rev sc: Working left to right with the RS facing, insert hook in the next st to the right, pull up a loop, yarn over, pull through both loops.
Gauge and Checkpoints
Gauge: 12 sc and 12 rows = 4 in (10.2 cm). That is 3 sts and 3 rows per inch.
Because stitch gauge equals row gauge, 1 sc per row-end lies flat on the border, and pocket rounds match panel rows one-for-one when you sew.
Test one piece first. Make one pocket before anything else. It uses every technique in the pattern and works as your gauge swatch.
Checkpoints:
– Base after Rnd 4: short axis about 2.7 in (6.9 cm)
– Base after Rnd 7: about 6.3 in × 4.7 in (16.0 cm × 11.9 cm), 16.7 in (42.4 cm) around
– Finished pocket: 3.7 in (9.4 cm) tall from the base ridge to the rim
– Panel Row 12: 4.0 in (10.2 cm) tall, 5.7 in (14.5 cm) wide
– Panel Row 33: 11.0 in (27.9 cm)
– Panel Row 66: 22.0 in (55.9 cm)
If it measures too big, go down 0.5 mm. If it measures too small, go up 0.5 mm. A standard roll is about 4.3 in (10.9 cm) across and 4.0–4.5 in (10.2–11.4 cm) tall. If a roll won’t drop in easily, go up a hook size.

Pocket (make 3)
Oval Base
Ch 7.
Rnd 1: Sc in 2nd ch from hook, sc in next 4 ch, 3 sc in last ch. Working along the other side of the chain, sc in next 4 ch, 2 sc in last ch (the same ch as the first sc). Sl st to first sc. (14)
Rnd 2: Ch 1, 2 sc in first st, sc in next 4, 2 sc in each of next 3, sc in next 4, 2 sc in each of last 2. Sl st to first sc. (20)
Rnd 3: Ch 1, [2 sc in next st, sc in next st] once, sc in next 4, [2 sc in next st, sc in next st] 3 times, sc in next 4, [2 sc in next st, sc in next st] 2 times. Sl st to first sc. (26)
Rnd 4: Ch 1, [2 sc in next st, sc in next 2] once, sc in next 4, [2 sc in next st, sc in next 2] 3 times, sc in next 4, [2 sc in next st, sc in next 2] 2 times. Sl st. (32)
Rnd 5: Ch 1, [2 sc in next st, sc in next 3] once, sc in next 4, [2 sc in next st, sc in next 3] 3 times, sc in next 4, [2 sc in next st, sc in next 3] 2 times. Sl st. (38)
Rnd 6: Ch 1, [2 sc in next st, sc in next 4] once, sc in next 4, [2 sc in next st, sc in next 4] 3 times, sc in next 4, [2 sc in next st, sc in next 4] 2 times. Sl st. (44)
Rnd 7: Ch 1, [2 sc in next st, sc in next 5] once, sc in next 4, [2 sc in next st, sc in next 5] 3 times, sc in next 4, [2 sc in next st, sc in next 5] 2 times. Sl st. (50)
Each base round adds 6 sts, 3 at each curved end, so the base stays flat. Sts 1–17 of Rnd 7 run along the first straight edge and will become the pocket back. Mark st 1 and st 17.
Sides
From here, work turned rounds. End each round with a sl st to the first sc, then ch 1 and turn. Work the first sc of each round into the same st as the join.
Rnd 8 (RS): Ch 1, sc BLO in each st around. (50 worked 1-per-st + 0 added = 50) The unused front loops form the ridge between base and sides. Turn.
The WS rounds below are worked in this order: the join st (back), 33 front sts, then 16 back sts.
Rnd 9 (WS): Sc in first st, bobble, sc in next 7, bobble; repeat from * 3 times, sc in last 16. (50)*
Rnd 10 (RS): Sc in each st around. (50)
Rnd 11 (WS): Sc in first st, sc in next 2, bobble, sc in next 3, bobble; repeat from * 6 times, sc in next 2, sc in last 16. (50)*
Rnd 12 (RS): Repeat Rnd 10. (50)
Rnd 13 (WS): Sc in first st, sc in next 4, bobble, sc in next 7, bobble; repeat from * 2 times, sc in next 4, sc in last 16. (50)*
Rnd 14 (RS): Repeat Rnd 10. (50)
Rnd 15 (WS): Repeat Rnd 11. (50)
Rnd 16 (RS): Repeat Rnd 10. (50)
Rnd 17 (WS): Repeat Rnd 9. (50)
On the front, the bobbles sit at positions 1/9, 3/7, 5, 3/7, 1/9 within each 8-st repeat. Those five bobble rounds close four full diamonds, with half-diamonds at the side edges. Each pocket has 30 bobbles.
Rnd 18 (RS rim): Ch 1, turn. Rev sc in each st around. (50 worked 1-per-st + 0 added = 50) Sl st to first st. Fasten off, leaving a 36 in (91.4 cm) tail for sewing.
Pocket check: Rnds 8–18 are 11 rounds, so the pocket is 3.7 in (9.4 cm) tall. The flat back is 17 sts, or 5.7 in (14.5 cm). The bobbled front is 33 sts, or 11.0 in (27.9 cm).
Back Panel
Ch 18.
Row 1 (RS): Sc in 2nd ch from hook and in each ch across. (17)
Rows 2–66: Ch 1, turn, sc in each st across. (17)
Fasten off. The panel measures 5.7 in × 22.0 in (14.5 cm × 55.9 cm).
Make All Pieces
- Dusty Rose pockets: 3
- Dusty Rose back panel: 1
Layout (panel rows, counted from the bottom):
Rows 55–66 | top space, 12 rows = 4.0 in (10.2 cm)
Rows 44–54 | POCKET 3 (11 rows)
Rows 35–43 | gap, 9 rows = 3.0 in (7.6 cm)
Rows 24–34 | POCKET 2 (11 rows)
Rows 15–23 | gap, 9 rows = 3.0 in (7.6 cm)
Rows 4–14 | POCKET 1 (11 rows)
Rows 1–3 | bottom margin, 3 rows = 1.0 in (2.5 cm)
Check: 3 + 11 + 9 + 11 + 9 + 11 + 12 = 66 rows. ✓
Joining
Method: Whipstitch with the pocket’s yarn tail, catching one full stitch on each piece.
Stitch-to-stitch logic: Each pocket back is 17 sts wide, the same as the panel. The match is exact, with nothing to ease in.
- Lay the panel RS up. Place the pocket with its back sts (marked 1–17) facing down on the panel.
- Base seam: Sew the 17 unused front loops of the pocket’s Rnd 7 back section to the 17 sts of the bottom panel row for that pocket (Row 4, 24 or 44). Use one stitch per stitch.
- Side seams: Sew the pocket’s 11 rounds at back st 1 to panel column 1, one round per row. Repeat at back st 17 and column 17.
- Rim seam: Sew the 17 rev sc of the back rim to the top panel row for that pocket (Row 14, 34 or 54).
Tension: Pull each stitch snug but not tight. The panel should lie flat under the pocket with no ripples.
Size checkpoint: After all three pockets are on, the panel still measures 5.7 in × 22.0 in (14.5 cm × 55.9 cm).
Border
Border gauge: Same as the body, 3 sts per inch. Work 1 sc per row-end on the long sides and 1 sc per st on the short ends. Fold the pockets toward the center while you work.
Round 1 (RS): Join yarn in the first st of Row 66 at the top right.
– Top: sc in each of 17 sts, ch 1 (corner).
– Long side: 1 sc in each of 66 row-ends, ch 1 (corner).
– Bottom: sc in each of 17 foundation-ch loops, ch 1 (corner).
– Long side: 1 sc in each of 66 row-ends, ch 1 (corner).
– Sl st to first sc.
Round 1 total: (17 + 66 + 17 + 66 worked 1 per existing st/row-end) + 0 added = 166 sc, plus 4 corner ch-1 sps. The corner ch-1 sps are not stitches.
Round 2 (RS): Ch 1. Sc in each sc, and work (sc, ch 1, sc) in each corner ch-1 sp. Sl st to first sc.
Round 2 total: (166 worked 1-per-st) + 8 corner sc added = 174 sc, plus 4 ch-1 sps.
– Top: 19 sc (17 + its 2 corner sc)
– Each long side: 68 sc (66 + its 2 corner sc)
– Bottom: 19 sc
Check: 19 + 68 + 19 + 68 = 174. ✓ Fasten off.
Why the math works: Round 2’s top edge covers the 17 panel sts plus one Round 1 row-end at each side, for 19 sts. Each long side covers 66 rows plus one Round 1 row-end at each end, for 68 sts. Adding Round 2’s own height on both sides gives 21 sts across, or 7.0 in (17.8 cm), and 70 rows tall, or 23.3 in (59.2 cm).
Hanging Straps (make 2)
Count the 19 sc along the top edge.
Strap 1: With the RS facing, join yarn in sc 1 of the top edge.
– Row 1: Ch 1, sc in sc 1–5. (5)
– Rows 2–18: Ch 1, turn, sc in each st. (5)
Fasten off with a 12 in (30.5 cm) tail.
Strap 2: Work the same over sc 15–19. This leaves 9 sts, or 3.0 in (7.6 cm), between the straps.
Each strap is 1.7 in × 6.0 in (4.3 cm × 15.2 cm). Fold each one over the bar to the back and whipstitch its last row across the back of the top border. If your bar can’t be removed, sew the straps closed with the bar in place. The loops stand about 2.4 in (6.1 cm) tall.
Final Blocking
- Weave in all ends along seams, never through bobbles.
- Mist the whole piece with water until damp.
- Pin the panel flat to 7.0 in × 23.3 in (17.8 cm × 59.2 cm), keeping the edges straight.
- Stuff each pocket with a toilet roll wrapped in a plastic bag so it dries rounded.
- Pinch each bobble outward with your fingers.
- Let it dry completely, then remove the pins and rolls.
Final Quality-Control Checklist
- Each pocket has 50 sts in every side round and 30 bobbles.
- Diamonds are centered on each pocket front and match from pocket to pocket.
- Pockets sit at Rows 4, 24 and 44, square and level.
- The border has 19 sc on the top and bottom and 68 sc on each long side.
- The straps are equal, 9 sts apart, and securely sewn.
- The panel lies flat with no ripples behind the pockets.
- A roll drops into each pocket easily.
Troubleshooting
- Bobbles sink to the inside: Make sure bobble rounds are WS rounds. Push each bobble out to the RS before working the next round.
- Base cups or ruffles: If it cups, go up a hook size. If it ruffles, go down a size and recheck the 6-st increases.
- Front pattern drifts off-center: Recount the opening sc on WS rounds: 1 st, then 33 front sts, then 16.
- Panel ripples behind a pocket: Unpick the seam and resew one stitch per stitch.
- Border waves: Work exactly 1 sc per row-end. Ripping back is better than skipping.
- Holder stretches when loaded: Use cotton yarn and keep gauge firm.
Care
Hand wash in cool water and lay flat to dry, reshaping the pockets around rolls. Don’t wring, and keep it out of the dryer.

Final Notes
The whole design follows one measurement chain. A gauge of 3 sts and 3 rows per inch gives a 50-st pocket that is 16.7 in (42.4 cm) around. That pocket has a 17-st back of 5.7 in (14.5 cm) and stands 3.7 in (9.4 cm) tall. It sews stitch-for-stitch onto a 17-st panel 22.0 in (55.9 cm) long. Two border rounds bring the panel to 7.0 in × 23.3 in (17.8 cm × 59.2 cm), and the straps add 2.4 in (6.1 cm). If you match gauge at the first checkpoint, every later measurement follows.
Happy crocheting!