This hanging toilet paper holder pairs a sturdy single crochet back panel with three rounded basket pockets. Each pocket has a solid base, an open diamond lattice studded with bobble knots, and a soft scalloped rim. Two straps at the top loop over a towel bar, so the holder hangs flat against the wall and keeps three spare rolls within reach.
The sample is worked in one color, a muted sage green, in worsted weight cotton. The look is calm and textured, a little vintage, and it suits a bathroom with natural wood and brass.
All instructions use US crochet terms. The finished panel measures 6.5 in (16.5 cm) wide and 28.5 in (72.4 cm) long. The hanging loops add about 2 in (5.1 cm), for a total hanging height of about 30.5 in (77.5 cm). Each pocket is about 5.5 in (14.0 cm) wide and 4.5 in (11.4 cm) tall.
Construction is simple. You work the panel in rows, add a one-round border, then work two straps from the top edge. The three pockets are made in the round from an oval base upward, then sewn to the panel at measured positions.
Finished Size and Construction
- Finished size: 6.5 in x 28.5 in (16.5 cm x 72.4 cm) panel, plus 2 in (5.1 cm) loops
- Skill level: Intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted (#4) cotton
- Hook: 5.0 mm (H-8)
- Number of pieces: 4 (1 back panel, 3 pockets)
- Layout: 3 pockets stacked vertically on 1 panel
- Piece size: Pocket base 5.5 in x 4.25 in (14.0 cm x 10.8 cm); pocket 4.5 in (11.4 cm) tall
- Panel size before border: 6 in x 28 in (15.2 cm x 71.1 cm)
- Border depth: 0.25 in (0.6 cm), one round
Materials
Use a smooth worsted weight cotton or cotton blend. Cotton holds its shape under the weight of the rolls and copes with bathroom humidity. Avoid stretchy acrylic, which can lengthen over time.
- Sage Green: 200 g (340 m) total
- Panel, border and straps: about 80 g (136 m)
- Pockets: about 40 g (68 m) each, 120 g (204 m) for all three
These amounts include a margin of about 10 percent for swatching and sewing.
Tools:
- 5.0 mm (H-8) crochet hook
- 4.5 mm (7) hook, in case you need to adjust gauge
- Tapestry needle
- 6 locking stitch markers
- Scissors and measuring tape
- Rust-proof pins and a blocking mat
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- hdc – half double crochet
- dc – double crochet
- inc – 2 sc in the same stitch
- sk – skip
- BLO – back loop only
- st(s) – stitch(es)
- rep – repeat
- RS – right side
Special stitch: Bobble Knot (BK). Work all of these into the same ch-space: sc, ch 1, 4-dc bobble, ch 1, sc.
To make the 4-dc bobble:
1. Yarn over, insert the hook in the space and pull up a loop.
2. Yarn over and pull through 2 loops.
3. Repeat steps 1–2 three more times. You now have 5 loops on the hook.
4. Yarn over and pull through all 5 loops.
Push the bobble to the outside of the pocket. Each BK counts as one knot.
Gauge and Checkpoints
Gauge: 14 sc and 16 rows = 4 in (10.2 cm), worked in sc rows with a 5.0 mm hook.
Test one piece first. Make the first pocket base (Rnds 1–8) before you start the panel. It is quick and shows your tension in the round.
Checkpoints:
- Pocket Rnd 4 (30 sts): about 3.5 in x 2.25 in (8.9 cm x 5.7 cm)
- Pocket Rnd 8 (54 sts): 5.5 in x 4.25 in (14.0 cm x 10.8 cm)
- Finished pocket: 4.5 in (11.4 cm) tall, and a standard roll fits snugly
- Panel after Row 20: 6 in (15.2 cm) wide and 5 in (12.7 cm) tall
- Panel after Row 112: 6 in x 28 in (15.2 cm x 71.1 cm)
If your pieces are too big, use a 4.5 mm hook. If they are too small, use a 5.5 mm hook. Change the hook, never the stitch counts, so every count below stays correct.

Back Panel
Ch 22.
Row 1: Sc in 2nd ch from hook and in each ch across. (21 sts)
Rows 2–112: Ch 1, turn, sc in each st across. (21 sts)
Don’t fasten off. The panel should measure 6 in x 28 in (15.2 cm x 71.1 cm).
Place markers on Rows 3, 39 and 75, counting from the bottom. These rows mark where the pocket bases go.
Pockets (Make 3)
Work each pocket in joined rounds with the RS facing. Don’t turn.
Oval Base
Ch 6.
Rnd 1: Sc in 2nd ch from hook, sc in next 3 ch, 3 sc in last ch. Working along the other side of the chain, sc in next 3 ch, 2 sc in last ch. Sl st to first sc. (12 sts)
Rnd 2: Ch 1, inc in first st, sc in next 3, inc in each of next 3, sc in next 3, inc in each of last 2. Sl st to first sc. (18 sts)
Rnd 3: Ch 1, sc in first st, inc, sc in next 3, [sc in next st, inc] 3 times, sc in next 3, [sc in next st, inc] 2 times. Sl st to first sc. (24 sts)
Rnd 4: Ch 1, sc in next 2, inc, sc in next 3, [sc in next 2, inc] 3 times, sc in next 3, [sc in next 2, inc] 2 times. Sl st to first sc. (30 sts)
Rnds 5–8: Repeat Rnd 4, working 1 more sc before each inc in each round: sc 3 before each inc in Rnd 5, sc 4 in Rnd 6, sc 5 in Rnd 7 and sc 6 in Rnd 8. The 3 straight sc on each long side stay the same. Each round adds 6 sts.
- Rnd 5: 36 sts
- Rnd 6: 42 sts
- Rnd 7: 48 sts
- Rnd 8: 54 sts
The base should measure 5.5 in x 4.25 in (14.0 cm x 10.8 cm).
Solid Wall
Rnd 9: Ch 1, sc in BLO of each st around. Sl st to first sc. (54 sts) This creates a fold line where the wall turns up.
Rnds 10–13: Ch 1, sc in each st around. Sl st to first sc. (54 sts)
The solid wall is now about 1.25 in (3.2 cm) tall.
Diamond Lattice
Rnd 14: Ch 1, sc in first st, [ch 7, sk 5, sc in next st] 8 times, ch 7, sk 5. Sl st to first sc. (9 sc and 9 ch-7 loops; 9 repeats of 6 sts = 54 sts used)
Rnd 15: Sl st in each of next 4 ch to reach the center of the first loop. Ch 1, BK in same loop, [ch 7, BK in next ch-7 loop] 8 times, ch 7. Sl st to first sc. (9 BK and 9 ch-7 loops)
Rnd 16: Rep Rnd 15. (9 BK and 9 ch-7 loops)
Each new loop runs from the center of one loop below to the center of the next. Together the loops form a diagonal net, and the bobble knots sit where they cross. That is what makes the diamond lattice.
Scalloped Rim
Rnd 17: In each ch-7 loop around, work (sc, hdc, 5 dc, hdc, sc). Sl st to first sc. (9 sts in each of 9 loops = 81 sts, 9 scallops)
The scallops dip between the knots and fan out above the lattice. Fasten off and weave in the ends. Slip a roll inside: it should fit snugly and stand slightly above the rim.
Make All Pieces
- Back panel: 1, in Sage Green
- Pockets: 3, in Sage Green
Layout (front view, top to bottom):
[ loop ] [ loop ]
+----------------------------------+
| open panel, 5.25 in |
| +----------------------------+ |
| | POCKET 3 (base Row 75) | |
| +----------------------------+ |
| +----------------------------+ |
| | POCKET 2 (base Row 39) | |
| +----------------------------+ |
| +----------------------------+ |
| | POCKET 1 (base Row 3) | |
| +----------------------------+ |
+----------------------------------+
Joining
Sew the pockets on after you finish the border and straps, with the panel lying flat.
Method: Whipstitch with a tapestry needle and a 36 in (91.4 cm) length of Sage Green for each pocket.
Matching the stitches: Turn a pocket on its side and find the center of one long side of the base. Mark 15 sts there, using the free front loops left by Rnd 9. These 15 sts become the flat back of the pocket. At gauge, 15 sts measure 4.3 in (10.9 cm), the same as 15 sts of a panel row, so you can sew them one to one.
- Line up the 15 marked pocket sts with sts 4–18 of the marked panel row. This leaves 3 panel sts free on each side.
- Whipstitch each pocket st to one panel st, 15 stitches in all.
- From each end of this base seam, sew the side wall straight up the panel. Sew each of Rnds 9–13 to one panel row: 5 rows, 1.25 in (3.2 cm).
- Keep going up through the lattice. Tack each loop and the nearest Rnd 16 knot to the panel, and stop just below the scallops. Each side seam is about 4 in (10.2 cm) tall.
- The other 39 sts of the pocket curve forward to make the rounded front.
Tension: Make each stitch snug but not tight. If the panel puckers sideways, loosen your stitches.
Size check: The pocket bases sit 0.75 in (1.9 cm), 9.75 in (24.8 cm) and 18.75 in (47.6 cm) above the bottom of the panel body. The top pocket rim is at about 23.25 in (59.1 cm), which leaves 5.25 in (13.3 cm) of open panel above it. After joining, the panel should still measure 6.5 in (16.5 cm) wide.
Border
Work the border on the panel before you add the straps or pockets.
Border gauge: 3.5 sc per inch along every edge, the same as the stitch gauge.
Rnd 1 (RS): Carry on from the end of Row 112 without fastening off. Ch 1, then work around the panel:
- Top edge: 3 sc in first st (corner), sc in next 19, 3 sc in last st (corner).
- Left side: Work into the row ends: [sc in each of next 7 row ends, sk 1 row end] 14 times. (98 sc)
- Bottom edge: Work into the free loops of the starting chain: 3 sc in first ch (corner), sc in next 19, 3 sc in last ch (corner).
- Right side: Rep left side. (98 sc)
Sl st to first sc. (246 sts)
Counts per side, including both corner center sts: top 21, each long side 100, bottom 21. Total: 19 + 98 + 19 + 98 + (4 corners x 3) = 246.
Why the math works: The 112 rows measure 28 in (71.1 cm). Working 7 sc for every 8 rows gives 98 sc, which is 3.5 sc per inch. That matches the stitch gauge, so the long sides lie flat instead of ruffling or cupping. Three sc at each corner turn it cleanly. The border adds 0.25 in (0.6 cm) on every side, so the panel ends up 6.5 in x 28.5 in (16.5 cm x 72.4 cm).
Hanging Straps
The top edge has 21 sts from corner center to corner center.
First strap, Row 1: With the RS facing, join yarn in the top right corner center st. Ch 1, sc in the same st and in next 4 sts. (5 sts)
Rows 2–16: Ch 1, turn, sc in each st. (5 sts)
Fasten off, leaving a 12 in (30.5 cm) tail.
Second strap: Work the same way over the last 5 sts, ending in the top left corner center st. This leaves 11 sts, about 3 in (7.6 cm), between the straps.
Each strap is about 1.5 in (3.8 cm) wide and 4 in (10.2 cm) long. Fold each strap over the bar to the back of the panel. Whipstitch its last row to the back of the panel just below the top border, making a 2 in (5.1 cm) loop.
If your bar can’t be removed, sew a button to the back of the panel under each strap instead. Make a buttonhole near the end of each strap by working ch 2, sk 2 at the center of Row 15.
Final Blocking
- Mist the holder lightly, or soak it and gently squeeze out the water.
- Pin the panel flat to 6.5 in x 28.5 in (16.5 cm x 72.4 cm), keeping the edges straight.
- Shape each pocket around a roll wrapped in a plastic bag, or around a rolled towel.
- Shape each scallop and turn every bobble knot to face outward.
- Let the holder dry for at least 24 hours before you hang it.
Final Quality-Control Checklist
- The panel measures 6.5 in x 28.5 in (16.5 cm x 72.4 cm).
- The border has 246 sts, and the corners lie flat.
- Each strap is 5 sts wide and 16 rows long, and the straps are 11 sts apart.
- Each pocket has 54 wall sts, 9 BK on each of Rnds 15–16, and 9 scallops.
- The pockets are level and centered, with 3 panel sts free on each side.
- All ends are woven in securely.
- Each pocket holds a roll without sagging.
Troubleshooting
The base cups or ruffles: Count 6 increases per round. If it cups, use a bigger hook. If it ruffles, use a smaller hook.
The lattice feels floppy: Chain more firmly, or use ch-6 loops in Rnds 14–16. The stitch counts don’t change.
The bobbles sink inward: Push each bobble out as you finish it, and keep the RS facing.
The panel stretches: Use cotton, keep your rows firm, and don’t overstuff the pockets.
A pocket tilts forward: Sew the side seams higher and tack the Rnd 16 knots nearest the panel.
The border ruffles: You have too many sc on that side. Keep to 7 sc for every 8 rows.
Care
Hand wash in cool water with mild soap, reshape the pockets while damp and lay flat to dry. Don’t tumble dry.

Final Notes
Every measurement here builds on the one before. A gauge of 14 sc x 16 rows = 4 in (10.2 cm) gives a pocket base of 5.5 in x 4.25 in (14.0 cm x 10.8 cm) and a panel of 6 in x 28 in (15.2 cm x 71.1 cm). The border takes the panel to 6.5 in x 28.5 in (16.5 cm x 72.4 cm). The 15-st pocket backs sew one to one onto 15 panel sts. The 2 in (5.1 cm) loops bring the hanging height to about 30.5 in (77.5 cm). Check each of these as you go, and your holder will hang straight and hold its rolls neatly.
Happy crocheting!