This hanging toilet-paper holder pairs a sturdy denim-blue backing panel with two lacy pocket baskets. Each pocket holds one standard roll, and the whole piece hangs from a wooden ring, so you can put it beside the sink, behind the door, or anywhere you need a spare roll close by.
The palette is calm and classic: denim blue for the panel, the pocket floors and the lace mesh, with tan/golden beige for the fan band, the picot top edge and the scalloped border. The look is vintage-cottage. It’s solid where it needs to be strong and lacy where it can be pretty.
This pattern uses US crochet terms. With the border, the panel measures 8.5 in (21.6 cm) wide by 19.5 in (49.5 cm) tall. It hangs about 22.5 in (57.2 cm) long including the ring.
Here is how it’s built. You work the panel flat in single crochet rows, shaping it with simple increases and decreases. Each pocket starts as a half-circle floor, and the lace wall is then worked in rows along the floor’s curved edge. A short tab wraps the ring. You sew the pockets and tab on, then work two border rounds around the panel.
Finished Size and Construction
- Finished panel size: 8.5 in × 19.5 in (21.6 × 49.5 cm)
- Skill level: Intermediate
- Terminology: US
- Yarn weight: Worsted weight (#4) cotton
- Hook: 4.0 mm (G-6)
- Number of pieces: 4 (1 panel, 2 pockets, 1 tab), plus a wooden ring
- Layout: Two pockets stacked vertically and centered on the panel
- Panel size before border: 7 in × 18 in (17.8 × 45.7 cm)
- Pocket size: floor 5.5 in (14.0 cm) across × 2.75 in (7.0 cm) deep; wall 3.5 in (8.9 cm) tall
- Border depth: 0.75 in (1.9 cm) on every side
Materials
Use a smooth, mercerized or combed cotton. Cotton holds its shape against the wall, shows the lace stitches clearly and washes well in a bathroom. The amounts below assume about 170 m per 100 g.
- Denim blue: 160 g (approx. 272 m)
- Tan/golden beige: 50 g (approx. 85 m)
The quantities include a margin of about 15% for your gauge swatch and any differences in tension.
Tools:
– 4.0 mm (G-6) crochet hook
– Wooden ring, 2 in (5.1 cm) inner diameter
– Tapestry needle
– Locking stitch markers (at least 8)
– Rustproof pins and a blocking mat
– Measuring tape
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- BLO – back loop only
- sp(s) – space(s)
- tch – turning chain
- RS / WS – right side / wrong side
Special stitches:
– Picot: ch 3, sl st into the sc just made.
– Shell: 5 dc worked into the same stitch.
Gauge and Checkpoints
Gauge: 16 sc × 18 rows = 4 in (10.2 cm) in sc rows. Five rows of the pocket’s dc floor (Rows 1–5) measure 2.75 in (7.0 cm) from the center to the edge.
Make one pocket before you start the panel. It is the quickest way to check both gauges, and the pocket itself is easy to check against a real roll.
Checkpoints:
– Panel Row 1: 5.5 in (14.0 cm) wide.
– Panel Row 4: 7 in (17.8 cm) wide.
– Panel Row 38: about 8.4 in (21.3 cm) tall.
– Panel Row 46: about 10.2 in (25.9 cm) tall.
– Panel Row 81: 18 in (45.7 cm) tall.
– Pocket floor Row 5: straight edge 5.5 in (14.0 cm).
A tolerance of ±0.25 in (0.6 cm) is fine. If your swatch comes out too big, go down half a hook size. If it’s too small, go up half a size. Only change the hook. Stitch counts drive both the border math and the pocket fit, so don’t add or remove stitches to fix gauge.

Backing Panel
Work the panel in denim blue. Ch 1 at the start of each row does not count as a stitch. Turn at the end of every row.
Foundation: Ch 23.
Row 1 (RS): Sc in the 2nd ch from the hook and in each ch across. (22 sc)
Row 2: Ch 1, 2 sc in the first st, sc in the next 20 sts, 2 sc in the last st. (24 sc)
Row 3: Ch 1, 2 sc in the first st, sc in the next 22 sts, 2 sc in the last st. (26 sc)
Row 4: Ch 1, 2 sc in the first st, sc in the next 24 sts, 2 sc in the last st. (28 sc)
These three increase rows round off the bottom corners. The panel should now be 7 in (17.8 cm) wide.
Rows 5–38: Ch 1, sc in each st across. (28 sc per row, 34 rows)
Row 39: Ch 1, sc2tog, sc in the next 24 sts, sc2tog. (26 sc)
Row 40: Ch 1, sc2tog, sc in the next 22 sts, sc2tog. (24 sc)
Rows 41–44: Ch 1, sc in each st across. (24 sc per row)
This is the waist between the pockets: 6 in (15.2 cm) wide.
Row 45: Ch 1, 2 sc in the first st, sc in the next 22 sts, 2 sc in the last st. (26 sc)
Row 46: Ch 1, 2 sc in the first st, sc in the next 24 sts, 2 sc in the last st. (28 sc)
Rows 47–77: Ch 1, sc in each st across. (28 sc per row, 31 rows)
Row 78: Ch 1, sc2tog, sc in the next 24 sts, sc2tog. (26 sc)
Row 79: Ch 1, sc2tog, sc in the next 22 sts, sc2tog. (24 sc)
Row 80: Ch 1, sc2tog, sc in the next 20 sts, sc2tog. (22 sc)
Row 81: Ch 1, sc in each st across. (22 sc)
Fasten off and weave in the ends.
Row check: 4 + 34 + 2 + 4 + 2 + 31 + 3 + 1 = 81 rows. At 4.5 rows per inch, that’s 18 in (45.7 cm).
Pocket (Make 2)
Floor
The floor is a flat half-circle worked in denim blue. The ch 3 at the start of each row counts as 1 dc. Turn at the end of every row.
Row 1: Make a magic ring, ch 3, 6 dc in the ring. Pull the ring closed, but keep it lying flat as a half-circle. (7 dc)
Row 2: Ch 3, dc in the same st, 2 dc in each remaining st. (14 dc)
Row 3: Ch 3, 2 dc in the next st, dc in the next st, 2 dc in the next st; repeat from * to * 6 times. (21 dc)
Row 4: Ch 3, dc in the next st, 2 dc in the next st, dc in the next 2 sts, 2 dc in the next st; repeat from * to * 6 times. (28 dc)
Row 5: Ch 3, dc in the next 2 sts, 2 dc in the next st, dc in the next 3 sts, 2 dc in the next st; repeat from * to * 6 times. (35 dc)
Checkpoint: The straight edge measures 5.5 in (14.0 cm), and the floor is 2.75 in (7.0 cm) deep. Do not fasten off.
Lace Wall
Work the wall in rows across the 35 stitches of the floor’s curved edge. Turn at the end of every row.
Row 1 (blue, conversion row): Ch 1, working in BLO, sc in the first 6 sts, 2 sc in the next st, sc in the next 6 sts, 2 sc in the next st; repeat from * to * 3 more times. (35 sc worked one per existing stitch + 5 added = 40 sc)
Working into the back loops makes a crease, so the wall stands up from the floor.
Row 2 (blue): Ch 1, sc in the first st, ch 5, skip 2 sts, sc in the next st; repeat from * to * 13 times in total. (13 ch-5 loops, 14 sc)
Row 3 (blue): Ch 5 (counts as 1 dc + ch 2), sc in the first ch-5 loop, ch 5, sc in the next loop; repeat from * to * 12 times in total, ch 2, dc in the last sc. (12 full loops + 2 half loops)
Row 4 (blue): Ch 1, sc in the first dc, ch 5, sc in the next ch-5 loop; repeat from * to * 12 times in total, ch 5, sc in the 3rd ch of the tch. (13 ch-5 loops)
Fasten off the blue.
Row 5 (tan, fan row): Join the tan in the first sc. Ch 1, sc in the same sc, ch 3, sc in loop 1. Work 9 dc in the next loop, then sc in the next loop; repeat from * to * 6 times in total. Ch 3, sc in the last sc. (6 fans of 9 dc = 54 dc; 6 sc in loops; 2 edge sc)
Fasten off.
Row 6 (blue, outline row): Join the blue in the last sc. Ch 5 (counts as 1 dc + ch 2) and skip the ch-3 sp and the sc.
For each fan, work (dc in the next dc, ch 1) 8 times, then dc in the 9th dc. Between fans, ch 1 and skip the sc. After the 6th fan, ch 2 and dc in the last sc.
(Each fan: 9 dc and 8 ch-1 sps. There are 5 between-fan ch-1 sps, and 56 dc in total including the 2 edge dc.)
Fasten off.
Row 7 (tan, picot edge): Join the tan in the first dc. Ch 1, sc in the same dc, 2 sc in the ch-2 sp. Then, for each fan:
– sc in dc 1
– (sc in the next sp, sc in the next dc) 4 times, ending in dc 5
– picot
– (sc in the next sp, sc in the next dc) 4 times, ending in dc 9
Between fans, sl st in the ch-1 sp. After the last fan, work 2 sc in the ch-2 sp and sc in the 3rd ch of the tch.
(17 sc per fan × 6 = 102 sc + 6 edge sc = 108 sc; 6 picots; 5 sl sts)
Fasten off. The wall is about 3.5 in (8.9 cm) tall. The fans flare the top edge, which gives the pocket its open cup shape.
Hanging Tab
Work the tab in denim blue.
Foundation: Ch 9.
Row 1: Sc in the 2nd ch from the hook and in each ch across. (8 sc)
Rows 2–27: Ch 1, sc in each st across. (8 sc per row)
The tab measures 2 in × 6 in (5.1 × 15.2 cm). Fasten off and leave a 12 in (30.5 cm) tail.
Make All Pieces
- Panel: 1, in blue.
- Pockets: 2. Each has a blue floor, blue wall Rows 1–4 and Row 6, and tan Rows 5 and 7.
- Tab: 1, in blue.
Layout (front view, rows counted up from the bottom):
[ ring ]
[ tab ]
+-----------------------+ Row 81
| |
| [ upper pocket ] | floor edge at Row 50
| |
\ waist / Rows 39-46
| |
| [ lower pocket ] | floor edge at Row 10
| |
+-----------------------+ Row 1
Joining
Method: Whipstitch with denim blue, working through both loops.
Pockets: Each pocket’s straight back edge is 5.5 in (14.0 cm) long, or 22 panel stitches. Center it on a 28-stitch row, leaving 3 stitches, or 0.75 in (1.9 cm), free on each side. Pin the lower pocket at Row 10, which is about 2.2 in (5.6 cm) up, and the upper pocket at Row 50, which is about 11.1 in (28.2 cm) up.
- Sew the floor. Work one whipstitch for each panel stitch along the floor’s straight edge, so 22 stitches line up with 22 stitches. The floor’s row-ends ease in evenly across that span.
- Sew the wall ends. Sew each end of the wall straight up the panel, following a single stitch column. Wall Rows 1–7 match roughly 16 panel rows, or 3.5 in (8.9 cm).
Keep your stitches snug but not tight. If the seam puckers, the panel will cup.
Tab: Fold the tab around the ring. Overlap both ends on the WS of the panel by 1.5 in (3.8 cm), centered across Rows 74–81, and sew through the tab and the panel back only.
Checkpoint: The panel still lies flat and measures 7 in × 18 in (17.8 × 45.7 cm). A roll slides into each pocket with light grip.
Border
Border gauge: 4 sc per inch along every edge, the same as the panel. You work the border around the panel only; the pockets and tab add no stitches to it. Keep the tab folded toward the back while you work.
Rnd 1 (blue): Join the blue in the first st of Row 81 with the RS facing. Ch 1 and work the four sides as follows:
– Top: 2 sc in the first st, sc in the next 20 sts, 2 sc in the last st. (24 sc)
– Side: Work 8 sc over every 9 row-ends, skipping each 9th row-end. 81 rows ÷ 9 = 9 groups × 8. (72 sc)
– Bottom: Work into the foundation chains: 2 sc in the first ch, sc in the next 20 ch, 2 sc in the last ch. (24 sc)
– Side: Repeat the side instructions. (72 sc)
Sl st to the first sc. (24 + 72 + 24 + 72 = 192 sc)
Each side count includes its own corner stitches. The doubled stitches at each end of the top and bottom ease the rounded corners.
Fasten off. The panel now measures 7.5 in × 18.5 in (19.1 × 47.0 cm).
Rnd 2 (tan, scallops): Join the tan with a sl st in the first sc of the top. Skip 1 st, shell in the next st, skip 1 st, sl st in the next st; repeat from * to * around. On the last repeat, finish with a sl st in the joining sl st. (48 shells: 6 along the top, 18 along each side, 6 along the bottom)
Why the math works: Each shell repeat uses exactly 4 stitches. Every side count (24, 72, 24, 72) divides evenly by 4, so each side starts on a fresh repeat and the scallops line up neatly at the corners. Rnd 1 adds 0.25 in (0.6 cm) and Rnd 2 adds 0.5 in (1.3 cm). That gives 0.75 in (1.9 cm) on every side, for a finished size of 8.5 in × 19.5 in (21.6 × 49.5 cm).
Final Blocking
- Weave in all ends along same-color stitches.
- Spray the whole piece until it’s damp. Don’t soak it.
- Lay the panel face up and pin it to 8.5 in × 19.5 in (21.6 × 49.5 cm). Put a pin at the tip of each scallop.
- Stuff each pocket with a dry roll wrapped in plastic so the walls hold their curve.
- Pin the fans and picots open.
- Let everything dry completely, then unpin.
Final Quality-Control Checklist
- [ ] The panel is 7 in × 18 in (17.8 × 45.7 cm) before the border.
- [ ] The waist and shoulders are symmetrical.
- [ ] Border Rnd 1 has 192 sc.
- [ ] There are 48 shells, with even corners.
- [ ] Each pocket has 6 fans and 6 picots.
- [ ] The pockets are centered with 0.75 in (1.9 cm) free on each side.
- [ ] The tab is sewn securely and doesn’t show from the front.
- [ ] The panel hangs flat, with no puckering.
Troubleshooting
- The panel edges wave. You are working too many sc along the sides. Recount to 8 sc per 9 row-ends.
- The scallops bunch at the corners. Check that the top and bottom each have 24 sc.
- The pocket wall won’t stand up. Make sure wall Row 1 was worked in BLO, and block the pocket over a roll.
- The fans look crowded. The ch-5 loops are too tight. Loosen your chains or go up a hook size for Rows 2–4 only.
- The roll is loose in the pocket. Pull the wall-end seams 1 stitch inward.
Care
Hand wash in cool water and lay flat to dry. Reshape the pockets over a roll while they’re damp.

Final Notes
Here is the measurement chain from start to finish. At a gauge of 16 sc × 18 rows = 4 in (10.2 cm), 28 stitches give a 7 in (17.8 cm) wide panel and 81 rows give 18 in (45.7 cm) of height. The 5-row floor is 5.5 in (14.0 cm) across and sits on 22 panel stitches. Border Rnd 1 has 192 sc, which supports 48 even shells. The finished panel measures 8.5 in × 19.5 in (21.6 × 49.5 cm).
Happy crocheting!