This hanging toilet paper holder keeps two spare rolls on the wall where they’re easy to reach. A solid taupe back panel narrows at the top into a tab that wraps around a natural wooden ring. Two deep pockets sit on the front, one above the other, and each holds one standard roll.
The pockets carry the texture. Rounds of lavender puff stitches alternate with open taupe chain arches. Solid lavender bands frame each pocket at the bottom and the top. The panel stays plain so the pockets stand out.
This pattern uses US crochet terms. The finished panel is 7 in (17.8 cm) wide and about 16 in (40.6 cm) tall from the bottom edge to the top of the folded tab. With the ring it is about 18 in (45.7 cm) tall. Each pocket is 5 in (12.7 cm) wide, about 2.7 in (6.9 cm) deep and about 3.75 in (9.5 cm) tall.
You’ll work the back panel flat in single crochet rows, then shape the shoulders and the tab. Each pocket starts as a flat rectangular base. You then work joined rounds around the base to build a box-shaped cup. Sew both pockets to the panel, add a two-round border to the panel, then fold the tab around the ring and stitch it down.
Finished Size and Construction
- Finished size: 7 in (17.8 cm) wide x about 16 in (40.6 cm) tall, plus the ring
- Skill level: Intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted (#4), cotton or cotton blend
- Hook: 5.0 mm (H-8)
- Number of pieces: 3 (1 back panel, 2 pockets), plus a wooden ring
- Layout: 2 pockets stacked vertically, centered on the panel
- Pocket size: 5 in (12.7 cm) wide x 2.7 in (6.9 cm) deep x 3.75 in (9.5 cm) tall
- Panel size before border: 6.5 in (16.5 cm) wide; rectangular section 12 in (30.5 cm) tall
- Border depth: 0.25 in (0.6 cm) per edge
Materials
Use a smooth worsted-weight cotton or cotton blend. Cotton holds the pocket shape, stays firm in a humid bathroom and shows puff stitches clearly. Avoid fuzzy or splitty yarn, because it hides the open arches.
- Color A, Taupe: 100 g / about 180 m (back panel, border, pocket bases and mesh rounds)
- Color B, Lavender: 50 g / about 90 m (puff rounds and solid lavender bands)
These quantities include a margin for gauge differences and a gauge swatch.
Tools:
- 5.0 mm (H-8) crochet hook
- 1 wooden ring, 2.75 in (7.0 cm) diameter
- Tapestry needle
- 8 locking stitch markers
- Scissors
- Ruler or tape measure
- Rustproof pins and a spray bottle
Abbreviations (US Terms)
- ch: chain
- sc: single crochet
- sc2tog: single crochet 2 together
- sl st: slip stitch
- BLO: back loop only
- sk: skip
- sp: space
- st(s): stitch(es)
- rep: repeat
- RS / WS: right side / wrong side
Puff stitch (puff): [Yarn over, insert hook in indicated st, yarn over and pull up a loop about 0.5 in (1.3 cm) tall] 4 times (9 loops on hook). Yarn over and draw through all 9 loops, then ch 1 to close. The closing ch 1 is part of the puff and does not count as a separate stitch.
Gauge and Checkpoints
Gauge: 16 sc x 18 rows = 4 in (10.2 cm) in sc worked flat.
Make one pocket first. It’s the smaller piece, and it quickly shows whether your tension works with the puff rounds.
Checkpoints:
- Pocket base after Row 12: 5 in (12.7 cm) x 2.7 in (6.9 cm).
- Pocket after Rnd 1: 64 sts, perimeter 16 in (40.6 cm).
- Finished pocket: walls about 3.75 in (9.5 cm) tall.
- Back panel after Row 18: 6.5 in (16.5 cm) wide x 4 in (10.2 cm) tall.
- Back panel after Row 54: 6.5 in (16.5 cm) x 12 in (30.5 cm).
If your pieces come out too big, go down to a 4.5 mm hook. If they come out too small, go up to a 5.5 mm hook. A pocket narrower than 5 in (12.7 cm) will squeeze the roll. A pocket that is much wider will sag away from the panel.

Pocket (Make 2)
The pocket is a box: a flat base with walls worked in joined rounds around it. Don’t turn at the end of a round unless the pattern says to. Join each round with a sl st to the first st.
Base
With Color A, ch 21.
Row 1 (RS): Sc in 2nd ch from hook and in each ch across, turn. (20 sc)
Rows 2–12: Ch 1, sc in each st across, turn. (20 sc)
Checkpoint: the base measures 5 in (12.7 cm) x 2.7 in (6.9 cm).
Rnd 1 (edge round): Ch 1, do not turn. Sc in each of the 20 sts across the last row. Sc in each of the 12 row-ends down the short side. Sc in each of the 20 foundation chs. Sc in each of the 12 row-ends up the other short side, then join. (64 sc: 20 + 12 + 20 + 12)
Place a marker in the first st and the last st of one 20-st long side. This is the back wall line that you’ll sew to the panel. Fasten off Color A.
Walls
Rnd 2: Join Color B in any st at a back corner. Ch 1, sc in BLO of each st around, join. (64 sc) The unworked front loops form a crisp fold so the walls stand straight up.
Rnd 3: Ch 1, sc in each st around, join. (64 sc)
Rnd 4 (puff round): Ch 2 (does not count), puff in same st, ch 1, sk next st, sc in next st, ch 1, sk next st. *Puff in next st, ch 1, sk next st, sc in next st, ch 1, sk next st; rep from * around. Join to top of first puff. (16 puffs, 16 sc, 32 ch-1 sps = 64 sts) Fasten off Color B.
Rnd 5 (mesh round): Join Color A in top of any puff. Ch 1, sc in same puff, ch 3. *Sk next ch-1 sp, sc and ch-1 sp, sc in next puff, ch 3; rep from * around. On the last repeat, skip the final ch-1 sp, sc and ch-1 sp, then join. (16 sc, 16 ch-3 sps = 64 sts)
Rnd 6: Ch 1, sc in same st, 3 sc in next ch-3 sp. *Sc in next sc, 3 sc in next ch-3 sp; rep from * around, join. (64 sc: 16 sc in sc + 48 sc in sps) Fasten off Color A.
Rnd 7: Join Color B in the first sc of Rnd 6, which sits directly above a puff. Rep Rnd 4. (64 sts) Fasten off.
Rnd 8: With Color A, rep Rnd 5. (64 sts)
Rnd 9: Rep Rnd 6. (64 sc) Fasten off.
Rnd 10: With Color B, rep Rnd 7. (64 sts) Fasten off.
Rnd 11: With Color A, rep Rnd 5. (64 sts)
Rnd 12: Rep Rnd 6. (64 sc) Fasten off Color A.
Rnd 13: Join Color B in any st at a back corner. Ch 1, sc in each st around, join. (64 sc)
Rnd 14: Ch 1, sc in each st around, join. (64 sc) Fasten off, leaving a 36 in (91.4 cm) tail for sewing.
Each puff round stacks directly above the one below it. The front wall shows 5 columns of puffs, 3 puffs tall, with 2 lavender rounds at the bottom and 2 at the top.
Checkpoint: the walls measure about 3.75 in (9.5 cm) from the fold line to the top edge.
Back Panel
With Color A, ch 27.
Row 1 (RS): Sc in 2nd ch from hook and in each ch across, turn. (26 sc)
Rows 2–54: Ch 1, sc in each st across, turn. (26 sc)
Checkpoint: 6.5 in (16.5 cm) wide x 12 in (30.5 cm) tall.
Shoulders
Rows 55–62: Ch 1, sc2tog, sc in each st across to the last 2 sts, sc2tog, turn. Each row is 2 sts shorter than the row before.
- Row 55: 24 sc
- Row 56: 22 sc
- Row 57: 20 sc
- Row 58: 18 sc
- Row 59: 16 sc
- Row 60: 14 sc
- Row 61: 12 sc
- Row 62: 10 sc
The shoulders slant in toward the center and rise about 1.75 in (4.4 cm).
Tab
Rows 63–76: Ch 1, sc in each st across, turn. (10 sc)
Fasten off. The tab is about 2.5 in (6.4 cm) wide and 3 in (7.6 cm) long.
Make All Pieces
- Back panel: 1, Color A only
- Pockets: 2. Color A for the base and Rnds 1, 5, 6, 8, 9, 11 and 12. Color B for Rnds 2, 3, 4, 7, 10, 13 and 14.
Layout grid (front view, panel rows counted from the bottom):
[ tab + ring ]
/ shoulders \
| rows 44–54: plain panel |
| rows 26–43: POCKET 2 |
| rows 22–25: plain gap |
| rows 4–21: POCKET 1 |
| rows 1–3: plain panel |
Both pockets are centered, with 3 panel sts left free on each side.
Joining
Sew each pocket to the panel with whipstitch, using the Color B tail. Go through both loops of the pocket stitch and one strand of the panel surface, so the stitches stay hidden on the front.
Placement: Lay the panel RS up. For Pocket 1, line up the marked back wall with panel Row 4, centered over sts 4–23 (20 sts). For Pocket 2, use Row 26 and the same sts 4–23.
Stitch-to-stitch logic:
- Bottom back edge: Sew the 20 sts of the marked base edge to the 20 panel sts, 1 to 1.
- Back corners: Sew up the vertical corner line of the pocket wall. The 13 wall rounds match about 17 panel rows, so take one stitch into the panel at every row. Keep each pocket corner straight above st 4 or st 23.
- Top back edge: Sew the 20 back-wall sts of Rnd 14 to the 20 panel sts on the matching row, 1 to 1. That’s Row 21 for Pocket 1 and Row 43 for Pocket 2.
The front and side walls stay free and bow out to hold the roll.
Tension: Pull each stitch snug enough to close the gap, but not so tight that the panel puckers. Check the front of the panel every 5 stitches.
Size checkpoint: The panel should still measure 6.5 in (16.5 cm) wide at both pockets. If it has narrowed, the seam is too tight. Unpick it and sew it again.
Border
Work the border on the back panel only. The pockets are not part of the edge, so they add nothing to the border count.
Border gauge: 4 sc per 1 in (2.5 cm) along every edge, the same as the panel gauge.
Rnd 1: With RS facing, join Color A in the first st of Row 1 (bottom corner). Ch 1, then work:
- Bottom edge: 3 sc in first st (corner), sc in each of next 24 sts, 3 sc in last st (corner). (30 sc)
- First long side (Rows 1–54): 48 sc across 54 row-ends, skipping every 9th row-end. (48 sc)
- First shoulder (Rows 55–62): Work 1 sc in each of the 8 row-ends, but work 2 sc in every third row-end, 3 times in total. (11 sc)
- First tab side (Rows 63–76): 12 sc across 14 row-ends, skipping the first and last row-end. (12 sc)
- Tab top: 3 sc in first st (corner), sc in each of next 8 sts, 3 sc in last st (corner). (14 sc)
- Second tab side, shoulder and long side: 12 sc, 11 sc and 48 sc, worked as on the first side. (71 sc)
Join. (186 sc: 30 + 71 + 14 + 71)
Rnd 2: Sl st in BLO of each st around, join. (186 sl sts) Fasten off and weave in the ends. This round makes the raised, chain-like outer edge.
Why the math works:
- Long sides: 54 rows at 18 rows per 4 in (10.2 cm) equals 12 in (30.5 cm). At 4 sc per inch, 12 in needs 48 sc, so skipping 6 row-ends keeps the side flat.
- Bottom edge: The 26 bottom sts are 24 middle sts plus 2 corner sts. Each corner st takes 3 sc, so 24 + 3 + 3 = 30.
- Shoulders: The slanted shoulders are longer than their 8 rows, so the 3 extra sts stop them from pulling in.
- Width: The border adds 0.25 in (0.6 cm) per edge, which takes the width from 6.5 in (16.5 cm) to 7 in (17.8 cm).
Attach the Ring
Pass the tab through the ring from front to back. Fold 1.25 in (3.2 cm) of the tab behind the panel. Whipstitch the tab’s top edge to the WS of the panel, catching only back strands so nothing shows on the front. The bordered panel measures 17.25 in (43.8 cm) laid flat and about 16 in (40.6 cm) after the fold.
Final Blocking
- Spray the whole holder evenly until it is damp but not soaked.
- Lay the panel face up on a blocking mat.
- Pin the rectangular section to 7 in (17.8 cm) wide and 12.25 in (31.1 cm) tall.
- Straighten the shoulders so both slants match.
- Slip a roll into each pocket to set the cup shape.
- Pinch each puff lightly so it sits round and full.
- Let everything dry completely, for at least 12 hours.
- Remove the pins and rolls, then check the measurements again.
Final Quality-Control Checklist
- The panel is 7 in (17.8 cm) wide with straight sides.
- Border Rnd 1 has 186 sts and lies flat all the way around.
- Both pockets show 5 columns of puffs across the front.
- The puffs stack in straight vertical columns.
- The pocket corners are vertical and centered over sts 4 and 23.
- The gap between the pockets is even from left to right.
- The tab is folded straight and the ring hangs centered.
- All ends are woven in and hidden on the WS.
Troubleshooting
Pocket walls flare outward. Work Rnd 2 in BLO. Without that fold line, the walls splay.
Puffs lean or look flat. Pull every loop up to the same height and close each puff firmly with the ch 1.
Puff columns drift sideways. Start each puff round in the sc of the previous round that sits directly above a puff.
Long sides of the border ripple. There are too many sts. Recount to 48 per side.
Shoulders pull in. Add the 3 extra sts as written, or work them a little more loosely.
Panel puckers behind a pocket. The seam is too tight. Sew it again with relaxed tension.
Roll won’t fit. Your gauge is tight. Make the pocket again with a larger hook.
Care
Hand wash in cool water with mild soap, roll it in a towel to press out the water, and dry flat. While it’s damp, put a roll in each pocket to reshape it.

Final Notes
Every size in this pattern comes from one gauge: 16 sc x 18 rows = 4 in (10.2 cm). That gauge gives a pocket base of 5 in (12.7 cm) and a 64-st round that stays at 64 sts through every puff, mesh and solid round. It also gives a panel of 6.5 in (16.5 cm) x 12 in (30.5 cm). The border’s 48 sts per side and 30 sts across the bottom then bring the panel to 7 in (17.8 cm) wide. If your swatch and first pocket match the checkpoints, the rest of the holder will fit together.
Happy crocheting!