This hanging toilet paper holder stores three rolls on the back of a door or on a wall hook. A long mesh backing panel carries three lace pockets. Each pocket has a raised puff-stitch pineapple on the front and a top edge that rises into crown-like peaks.
The sample is worked in one color, a soft cream cotton, and hangs from a natural wooden ring. The look is calm, classic, and a little vintage, and it suits a white or neutral bathroom.
This pattern uses US crochet terms. The finished holder measures 8 in (20.3 cm) wide and 28.75 in (73.0 cm) long without the strap. With the strap loop it hangs about 30.25 in (76.8 cm) long. Each pocket stands out 3.5 in (8.9 cm) from the panel.
You will crochet one backing panel in hdc mesh and three pockets. Each pocket starts with a flat sc base, and its walls are then worked up in rows. You sew the pockets onto the panel, add a two-round border, and work a short strap that wraps around the ring.
Finished Size and Construction
- Finished size: 8 x 28.75 in (20.3 x 73.0 cm), plus a strap loop of about 1.5 in (3.8 cm)
- Skill level: Intermediate
- Terminology: US
- Yarn weight: Worsted (#4) cotton
- Hook: 5.0 mm (H-8)
- Number of pieces: 4 (1 panel, 3 pockets), plus a strap worked onto the panel
- Layout: 3 pockets stacked vertically, 8 in (20.3 cm) apart from base to base
- Panel size before border: 7.25 x 28 in (18.4 x 71.1 cm)
- Pocket size: 7.25 in (18.4 cm) wide at the front, 3.5 in (8.9 cm) deep, 4.5 in (11.4 cm) tall at the peaks
- Border depth: 3/8 in (1.0 cm)
Materials
Use a smooth worsted-weight 100% cotton. Cotton holds the pocket shape, survives washing, and shows the puff stitches clearly. Avoid fuzzy or very stretchy yarns, because they blur the lace and let the pockets sag.
- Cream: 280 g, about 476 m (520 yd), based on a yarn with 170 m per 100 g
Tools:
- 5.0 mm (H-8) crochet hook
- 1 wooden ring, 2 in (5.1 cm) across
- Tapestry needle
- 6 locking stitch markers
- Scissors and tape measure
- Blocking mat, rust-proof pins, and a spray bottle
The quantities include a margin of about 10% for swatching and seaming.
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- hdc – half double crochet
- dc – double crochet
- tr – treble crochet
- sk – skip
- sp – space
- st(s) – stitch(es)
- rep – repeat
- RS / WS – right side / wrong side
Puff stitch (puff): Yarn over, insert the hook in the indicated stitch or space, yarn over, and pull up a loop to about 1/2 in (1.3 cm). Repeat from * 2 more times (7 loops on the hook). Yarn over and pull through all 7 loops, then ch 1 to close. The closing chain does not count as a stitch.
Stitch counting: In this pattern, every chain counts as 1 stitch.
Gauge and Checkpoints
- Hdc mesh: 16 sts and 12 rows = 4 in (10.2 cm)
- Sc: 16 sts and 18 rows = 4 in (10.2 cm)
- Dc and puff lace rows: 2 rows = 1 in (2.5 cm)
Make one pocket before you start the panel. It uses all three gauges and works as a full test piece.
Checkpoints:
- Pocket base: 7.25 x 3.5 in (18.4 x 8.9 cm)
- After body Row 4: the band is 0.9 in (2.3 cm) tall
- After body Row 10: the wall is 3.9 in (9.9 cm) tall
- After body Row 11: the pocket is 4.5 in (11.4 cm) tall at the peaks
- Panel after Row 12: 7.25 in (18.4 cm) wide and 4 in (10.2 cm) tall
If your piece measures too big, go down one hook size. If it measures too small, go up one hook size. Your pocket base and panel must both measure 7.25 in (18.4 cm) wide, or the seams will not line up.

Pocket (Make 3)
Base
Ch 30.
Row 1: Sc in 2nd ch from hook and in each ch across, turn. (29 sc)
Rows 2–16: Ch 1 (does not count), sc in each st across, turn. (29 sc)
The base now measures 7.25 x 3.5 in (18.4 x 8.9 cm). The foundation-chain edge is the back edge, which will be sewn to the panel. Row 16 is the front edge. Do not fasten off.
Walls
Row 1 (RS): Ch 1. Work 14 sc evenly along the row ends of the first short side. Work 1 sc in each st of Row 16. Work 14 sc evenly along the second short side. Turn. (57 sc: 14 + 29 + 14)
Rows 2–4: Ch 1, sc in each st across, turn. (57 sc)
Each lace row below has 3 repeats of 19 sts. The center repeat sits on the front of the pocket and has the puff pineapple. In the first and third repeats, work a dc wherever the pattern says “puff.” This gives fan texture on the sides without changing the stitch count.
Row 5 (RS): Ch 3 (counts as the first dc). Work the following repeat 3 times: dc in next st, [ch 1, sk 1, dc in next st] twice, puff in next st, [ch 1, sk 1, puff in next st] 4 times, dc in next st, [ch 1, sk 1, dc in next st] twice. The ch-3 replaces the first dc of the first repeat. Turn. (57 sts; 5 puffs in the center repeat)
Row 6 (WS): Ch 3. Work the following repeat 3 times: dc in dc, ch 1, dc in next dc, ch 3, sk (ch-sp, dc, puff), puff in next ch-1 sp, [ch 1, puff in next ch-1 sp] 3 times, ch 3, sk (puff, dc, ch-sp), dc in next dc, ch 1, dc in next dc. Turn. (57 sts; 4 puffs)
After each WS puff, nudge the puff through to the RS.
Row 7: Ch 3. Work the following repeat 3 times: dc, ch 1, dc over the first 3 sts, ch 4, sk ch-3 sp and next puff, puff in next ch-1 sp, [ch 1, puff in next ch-1 sp] twice, ch 4, sk next puff and ch-3 sp, dc, ch 1, dc. Turn. (57 sts; 3 puffs)
Row 8: Ch 3. Work the following repeat 3 times: dc, ch 1, dc, ch 5, sk ch-4 sp and puff, puff in next ch-1 sp, ch 1, puff in next ch-1 sp, ch 5, sk puff and ch-4 sp, dc, ch 1, dc. Turn. (57 sts; 2 puffs)
Row 9: Ch 3. Work the following repeat 3 times: dc, ch 1, dc, ch 6, sk ch-5 sp and puff, puff in ch-1 sp, ch 6, sk puff and ch-5 sp, dc, ch 1, dc. Turn. (57 sts; 1 puff, which is the tip of the pineapple)
The long chains stack into radiating arches on each side of the pineapple. Each repeat stays at 19 sts: 3 + 6 + 1 + 6 + 3.
Row 10 (WS): Ch 3 (counts as dc). Dc in each dc and puff. In each ch-sp, work 1 dc for each chain, working into the space rather than the chains. Turn. (57 dc)
Row 11 (RS, peaks): Ch 1 (does not count). Work the following repeat 3 times: sl st in next st, sc in next 2, hdc in next 2, dc in next 2, tr in next 2, (tr, ch 2, tr) in next st, tr in next 2, dc in next 2, hdc in next 2, sc in next 2, sl st in next st. Fasten off. (66 sts: 57 worked one per stitch + 3 extra per repeat x 3)
The peaks fall at the center front and on each side wall, just behind the front corners. This gives the crown silhouette.
Backing Panel
Ch 31.
Row 1 (RS): Hdc in 3rd ch from hook (the skipped ch does not count). *Ch 1, sk next ch, hdc in next ch. Rep from * across. Turn. (29 sts: 15 hdc + 14 ch-1 sps)
Rows 2–72: Ch 2 (does not count), hdc in first hdc, *ch 1, sk ch-sp, hdc in next hdc. Rep from * across. Turn. (29 sts)
The panel now measures 7.25 x 24 in (18.4 x 61.0 cm).
Point
Decrease row: Ch 1, sl st in first hdc and next ch-sp, ch 2 (does not count), hdc in next hdc. Work in mesh pattern until 2 sts remain, then turn, leaving the 2 sts unworked. (4 sts fewer)
Rows 73–84: Alternate one decrease row and one plain mesh row. The counts are:
- Rows 73 and 74: 25 sts
- Rows 75 and 76: 21 sts
- Rows 77 and 78: 17 sts
- Rows 79 and 80: 13 sts
- Rows 81 and 82: 9 sts
- Rows 83 and 84: 5 sts
Fasten off. The point is 4 in (10.2 cm) tall, and the full panel is 7.25 x 28 in (18.4 x 71.1 cm).
Make All Pieces
You need 4 pieces, all in cream:
- 1 backing panel
- 3 pockets
Layout (front view):
[ring]
|
/\ <- point, rows 73-84
/ \
| | <- rows 62-72, open
| P3 | <- base on Row 49, walls rows 50-61
| |
| P2 | <- base on Row 25, walls rows 26-37
| |
| P1 | <- base on Row 1, walls rows 2-13
|____|
Joining
Lay the panel RS up. Mark Rows 1, 25, and 49. The pocket bases are 24 rows (8 in / 20.3 cm) apart.
- Base seam: Match the 29 foundation loops of a pocket base to the 29 sts of the marked row: 15 hdc and 14 ch-sps. Whipstitch one stitch to one stitch.
- Wall seams: Sew the back edge of each side wall to the front face of the outermost hdc column of the panel. Match 4 sc row ends to 3 panel rows. Then match every 2 dc row ends to 3 panel rows. Leave the Row 11 sl st free.
- Tension: Keep the seams firm but flat. If the panel puckers, your seams are too tight.
Do not sew into the row ends of the panel itself, because the border is worked into them.
Checkpoint: After joining, the panel still lies flat at 7.25 in (18.4 cm) wide. Each wall seam spans 12 panel rows, or 3.9 in (9.9 cm).
Border
Border gauge: Sc, 16 sts = 4 in (10.2 cm).
In this section, edge counts do not include the corner groups. Corner groups are listed separately.
Rnd 1: With RS facing, join yarn in the first foundation st at the bottom corner. Work in this order:
- 3 sc in the corner st
- 27 sc along the bottom
- 3 sc in the last st
- 96 sc up the side
- 20 sc along the slant
- Across the top: 2 sc in the first st, sc in the next 3, 2 sc in the last st (7 sc)
- 20 sc down the other slant
- 96 sc down the other side
Join with a sl st. (272 sc: bottom 33, sides 96 each, slants 20 each, top 7)
Rnd 2: Ch 1. Sc in each st around. Work 3 sc in the center sc of each bottom corner, and 2 sc in the first and last sc of the top segment. Join. (278 sc: 272 + 4 + 2; bottom 37, sides 96 each, slants 20 each, top 9) Do not fasten off.
Why the math works: The mesh has 12 sts and 9 rows per 3 in (7.6 cm). Sc has 12 sts per 3 in. So the long sides take 4 sc for every 3 rows, and 72 rows gives 96 sc, which is exactly 24 in (61.0 cm). Each slant runs 3 in across and rises 4 in, so it measures 5 in (12.7 cm). At 4 sc per inch, that is 20 sc.
Strap
Row 1: Sl st across the first 2 sc of the top segment. Ch 2 (does not count), hdc in the next 5 sc, turn. (5 hdc)
Rows 2–9: Ch 2, hdc in each st, turn. (5 hdc)
The strap is 1.25 x 3 in (3.2 x 7.6 cm). Pass it through the ring, fold it to the WS, and whipstitch Row 9 to the base of the strap.
Final Blocking
- Weave in all ends along the seams.
- Spray the whole piece until it is damp but not dripping.
- Pin the panel flat to 8 x 28.75 in (20.3 x 73.0 cm).
- Stuff each pocket with a toilet roll or rolled towel.
- Pin each peak upward, and open the pineapple arches.
- Let the holder dry completely before you hang it.
Final Quality-Control Checklist
- Each pocket has 66 sts in Row 11, with three crisp peaks.
- Each center pineapple shows puffs in the order 5-4-3-2-1.
- The pockets are 8 in (20.3 cm) apart from base to base.
- The border counts are 272 in Rnd 1 and 278 in Rnd 2.
- The panel measures 8 in (20.3 cm) wide all the way down.
- The strap is firmly sewn and the ring turns freely.
Troubleshooting
- Pocket wider than the panel: Your sc base is loose. Go down a hook size for the base only.
- Puffs look flat: Pull the loops up taller and keep them even.
- Arches sag: Tighten your chains, or block with the pocket stuffed.
- Border ruffles: Use 3 sc per 2 rows instead, and recheck the side length.
- Panel puckers at the seams: Re-sew the seams with looser stitches.
Care
Hand-wash in cool water with mild soap. Press out the water in a towel, then reshape and dry flat with the pockets stuffed.

Final Notes
The measurement chain is simple. At 4 sts per inch, both the 29-stitch pocket base and the 29-stitch panel measure 7.25 in (18.4 cm). That makes the base seams line up one stitch to one stitch. Each 72-row side takes 96 border sts, and each 3-4-5 slant takes 20, so the border lies flat at 8 in (20.3 cm) wide. If you check your gauge at each checkpoint, the pieces will line up.
Happy crocheting!