This hanging organizer holds three standard toilet paper rolls in a neat vertical stack. Each roll sits in its own soft, rounded pocket with a small burgundy heart on the front. A narrow strap at the top wraps around a natural wooden ring, so the holder hangs from any wall hook.
The main fabric is dusty rose pink worked in dense single crochet. This gives a firm, pebbly texture that holds its shape. Burgundy trims every pocket rim and runs around the back panel as a beaded reverse single crochet edge. It also forms the hanging strap and the three heart appliqués.
The pattern uses US crochet terms. The finished holder is about 5.8 in (14.7 cm) wide and 16.8 in (42.7 cm) tall from the bottom edge to the top of the folded strap, not counting the ring. When filled, each pocket stands out about 4 in (10.2 cm) from the wall.
You crochet one flat back panel in rows, three oval-based pockets in joined rounds, and three small hearts worked in a magic ring. Then you sew the hearts to the pockets and the pockets to the panel. Finally, you work a two-row border around the panel and fold the strap around the ring.
Finished Size and Construction
- Finished size: 5.8 in x 16.8 in (14.7 cm x 42.7 cm), ring not included
- Skill level: Easy to intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted (#4)
- Hook: 4.5 mm (US 7)
- Number of pieces: 7 (1 back panel, 3 pockets, 3 hearts)
- Layout: 3 pockets stacked in a single column on the panel
- Pocket size: base 5 in x 4 in (12.7 cm x 10.2 cm); wall height 4 in (10.2 cm)
- Panel size before border: 5 in x 15.3 in (12.7 cm x 38.9 cm), plus the strap
- Border depth: about 0.4 in (1.0 cm) along each side and the bottom
Materials
Use a smooth worsted yarn with clear stitch definition. Cotton or a cotton blend works best in a bathroom because it resists stretching and handles humidity well. Soft acrylic also works if you crochet firmly.
- Color A, dusty rose pink: 120 g, about 220 m
- Color B, burgundy: 40 g, about 70 m
Tools:
- 4.5 mm (US 7) crochet hook
- Wooden ring, 3 in (7.6 cm) outside diameter
- Tapestry needle
- 6 locking stitch markers
- Scissors and measuring tape
- Rustproof pins and a blocking mat
The yarn amounts include a margin of about 20 percent for your gauge test, sewing tails, and small differences in tension.
Abbreviations (US Terms)
- ch: chain
- sl st: slip stitch
- sc: single crochet
- dc: double crochet
- tr: treble crochet
- sc2tog: single crochet 2 together
- BLO: back loop only
- inc: 2 sc in the same stitch
- st(s): stitch(es)
- RS: right side
- rnd(s): round(s)
Special stitch: reverse single crochet (rev sc). Without turning, insert the hook into the next stitch to the right. Yarn over and pull up a loop, then yarn over and pull through both loops. Because you work from left to right, the edge twists into the beaded look shown on every burgundy trim.
Gauge and Checkpoints
Gauge: 16 sc and 18 rows (or rnds) = 4 in (10.2 cm) in single crochet.
That works out to 4 stitches and 4.5 rows per inch. Every measurement in this pattern comes from this gauge. Make one pocket base first and measure it before you go further, since it’s the smallest piece that tells you whether a roll will fit.
Checkpoints:
- Pocket base after Rnd 9: 5 in x 4 in (12.7 cm x 10.2 cm)
- Pocket wall after Rnd 25: 3.6 in (9.1 cm) tall
- Pocket wall after the rim: 4 in (10.2 cm) tall
- Panel after Row 63: 5 in x 14 in (12.7 cm x 35.6 cm)
- Panel after Row 69: 15.3 in (38.9 cm) tall
- Panel after the border: 5.8 in x 15.7 in (14.7 cm x 39.9 cm)
If your base is too big, switch to a 4 mm hook. If it is too small, switch to a 5 mm hook. Don’t change any stitch counts. The pockets and panel are matched stitch for stitch and round for row, so changing a count breaks the seam math.

Pocket (Make 3)
Each pocket is an open basket on an oval base. Join every round with a sl st. The ch 1 at the start of a round never counts as a stitch.
With Color A, ch 7.
Rnd 1: 3 sc in the 2nd ch from hook, sc in the next 4 ch, 3 sc in the last ch. Rotate the work and sc in the next 4 ch along the other side of the foundation chain. Join to the first sc. (14 sts)
Rnd 2: Ch 1, [inc in each of the next 3 sts, sc in the next 4 sts] 2 times, join. (20 sts)
Rnd 3: Ch 1, [(sc in next st, inc) 3 times, sc in next 4 sts] 2 times, join. (26 sts)
Rnd 4: Ch 1, [(sc in next 2 sts, inc) 3 times, sc in next 4 sts] 2 times, join. (32 sts)
Rnd 5: Ch 1, [(sc in next 3 sts, inc) 3 times, sc in next 4 sts] 2 times, join. (38 sts)
Rnd 6: Ch 1, [(sc in next 4 sts, inc) 3 times, sc in next 4 sts] 2 times, join. (44 sts)
Rnd 7: Ch 1, [(sc in next 5 sts, inc) 3 times, sc in next 4 sts] 2 times, join. (50 sts)
Rnd 8: Ch 1, [(sc in next 6 sts, inc) 3 times, sc in next 4 sts] 2 times, join. (56 sts)
Rnd 9: Ch 1, [(sc in next 7 sts, inc) 3 times, sc in next 4 sts] 2 times, join. (62 sts)
Each curved end now has 27 stitches and each straight side has 4 (27 + 4 + 27 + 4 = 62). Check the base against the first checkpoint.
Mark the back: Pick one straight side. Place a marker 8 stitches before its 4 straight stitches and another 8 stitches after them. These 20 stitches (8 + 4 + 8) are the back of the pocket. The other 42 stitches form the curved front.
Rnd 10: Ch 1, sc in BLO of each st around, join. (62 sts) This round turns the work upward and leaves a ridge of unused front loops that you’ll sew through later.
Rnds 11–25: Ch 1, sc in each st around, join. (62 sts) Move both markers up as you go so they stay in the same stitch columns.
The pink wall is now 16 rounds, or 3.6 in (9.1 cm), tall. On the last yarn over of the Rnd 25 join, switch to Color B. Fasten off Color A.
Rnd 26: With Color B, ch 1, sc in each st around, join. (62 sts)
Rnd 27: Ch 1, rev sc in each st around, join. (62 sts) Fasten off and weave in the ends.
The finished wall is 18 rounds, or 4 in (10.2 cm), tall. A roll that is 4.1 in (10.4 cm) tall will peek just above the rim, as in the photos.
Heart Appliqué (Make 3)
With Color B, make a magic ring.
Into the ring: Ch 3 (does not count as a st), 3 tr, 4 dc, ch 1, 1 tr, ch 1, 4 dc, 3 tr, ch 3, sl st into the ring. (15 sts plus 2 ch-1 spaces)
Pull the ring tight. The two groups of tr and dc become the rounded tops of the heart. The closed ring makes the dip between them. The single tr between the ch-1 spaces becomes the point. Fasten off and leave a 10 in (25.4 cm) tail for sewing.
Each heart measures about 1.75 in (4.4 cm) wide and 1.5 in (3.8 cm) tall.
Back Panel
With Color A, ch 21.
Row 1: Sc in the 2nd ch from hook and in each ch across. (20 sts)
Rows 2–63: Ch 1, turn, sc in each st across. (20 sts)
Check that the panel measures 5 in x 14 in (12.7 cm x 35.6 cm).
Taper
Row 64: Ch 1, turn, sc2tog, sc in each st to the last 2 sts, sc2tog. (18 sts)
Row 65: Repeat Row 64. (16 sts)
Row 66: Repeat Row 64. (14 sts)
Row 67: Repeat Row 64. (12 sts)
Row 68: Repeat Row 64. (10 sts)
Row 69: Repeat Row 64. (8 sts) On the last yarn over, switch to Color B. Fasten off Color A.
The taper is 6 rows, or about 1.3 in (3.3 cm), tall. Each slanted edge is about 2 in (5.1 cm) long.
Strap
Rows 70–79: With Color B, ch 1, turn, sc in each st across. (8 sts)
Fasten off and leave a 12 in (30.5 cm) tail. The strap is 10 rows, or about 2.2 in (5.6 cm), long.
Make All Pieces
Before you start assembly, you should have:
- 3 pockets: Color A with Color B rims, 62 sts per round
- 3 hearts: Color B
- 1 back panel: Color A with a Color B strap, 20 sts wide
Pocket placement on the panel, from top to bottom:
[ ring ]
[strap ] rows 70–79
/ taper \ rows 64–69
| plain | rows 60–63
| POCKET 3 | rows 42–59
| gap | rows 40–41
| POCKET 2 | rows 22–39
| gap | rows 20–21
| POCKET 1 | rows 2–19
| plain | row 1
Each pocket covers exactly 18 panel rows, which matches its 18 wall rounds.
Joining
Hearts to pockets: Find the center of the 42 front stitches (the 21st stitch counted from either back marker). Center a heart there, between Rnds 14 and 21, with the point facing down. Whipstitch around its outer edge with the Color B tail, catching only the outer loops so the stitches stay hidden.
Pockets to panel: Use Color A and the tapestry needle.
- Base seam: Lay the panel right side up. Set Pocket 1 so the 20 unused front loops along its back edge (left over from Rnd 10) line up with panel Row 2. Whipstitch one-to-one: each of the 20 pocket stitches joins one of the 20 panel stitches.
- Side seams: Sew the stitch column at each back marker to the outermost stitch column of the panel. Keep this one-to-one too, so each pocket round (Rnds 10–27) matches one panel row (Rows 2–19). The rows and rounds share the same 4.5-per-inch gauge, so the seam lies flat without easing.
- Rim tack: Tack the center back of the rim to panel Row 19 so it can’t droop.
Repeat with Pocket 2 on Rows 22–39 and Pocket 3 on Rows 42–59.
Tension: Pull each whipstitch just tight enough to close the gap. If the seam puckers, loosen it. The 42 front stitches will curve forward on their own into the D-shaped cup.
Size checkpoint: The panel should still be 5 in (12.7 cm) wide across every pocket seam. If it’s narrower, the side seams are too tight.
Border
The border goes around the back panel only, from one side of the strap to the other. The edges of the strap stay plain.
Border gauge: Along the side row ends, work 8 sc for every 9 rows. That ratio matches 4 stitches per inch to 4.5 rows per inch.
Row 1 (RS): With the right side facing, join Color B at the right end of Row 69, where the taper meets the strap. Ch 1, then work:
- Right taper: 8 sc evenly along the slanted edge
- Right side: 56 sc evenly along the row ends from Row 63 down to Row 1 (corner stitches not included)
- Bottom: 3 sc in the first st of Row 1, sc in each of the next 18 sts, 3 sc in the last st (24 sc, corners included)
- Left side: 56 sc evenly along the row ends from Row 1 up to Row 63 (corner stitches not included)
- Left taper: 8 sc evenly along the slanted edge
Total: 8 + 56 + 24 + 56 + 8 = 152 sc. Don’t fasten off.
Row 2: Ch 1 and don’t turn. Work rev sc in each st back toward the starting point. (152 sts) Fasten off at the right strap junction and weave in the ends.
Why the math works: 56 sc at 4 stitches per inch covers 14 in, and 63 rows at 4.5 rows per inch is also 14 in, so the sides lie flat. The bottom uses all 20 foundation stitches plus 2 extra in each corner (18 + 3 + 3 = 24). Each 2 in (5.1 cm) taper edge takes 8 sc at the same 4 stitches per inch. The two border rows add about 0.4 in (1.0 cm) per edge. That brings the width to 5.8 in (14.7 cm) and the panel height to 15.7 in (39.9 cm).
Strap and ring: Pass the strap through the wooden ring from front to back. Fold it so Row 79 lies against the wrong side of Row 70, then whipstitch the 8 stitches of each row together. The folded loop is about 1.1 in (2.8 cm) tall, which brings the total height to 16.8 in (42.7 cm).
Final Blocking
- Fill a spray bottle with cool water.
- Put a toilet roll in each pocket to support its shape.
- Lay the holder face up on a blocking mat.
- Pin the panel edges straight at 5.8 in (14.7 cm) wide.
- Mist the whole piece until damp but not soaked.
- Gently shape each pocket rim into a smooth curve.
- Let it dry completely, for at least 12 hours.
- Remove the pins and rolls, then hang it.
Final Quality-Control Checklist
- Every pocket wall round has 62 sts
- Each pocket wall is 4 in (10.2 cm) tall
- The hearts are centered and point downward
- The panel has 20 sts per row and 69 rows below the strap
- The side seams match 18 rounds to 18 rows
- The gaps between pockets are 2 rows, about 0.4 in (1.0 cm)
- Both border rows have 152 sts
- The panel measures 5.8 in x 15.7 in (14.7 cm x 39.9 cm)
- The strap is sewn securely and the ring turns freely
- All ends are woven in on the wrong side
Troubleshooting
The pocket base ruffles. Your tension tightened as you worked. Relax your grip, or use a hook 0.5 mm larger for the base only.
The pocket base cups. Your increases are too tight. Make sure each inc goes into a single stitch, not into a gap.
The roll won’t fit. Measure the base. If it’s shorter than 5 in (12.7 cm), your gauge is too tight.
The panel edges ripple after the border. You worked too many sc into the row ends. Recount to 56 per side.
A pocket sags forward. Add a second tack at the center back of the rim, or re-sew the side seams more firmly.
Care
Hand wash in cool water with mild soap and press out the water in a towel. Dry it flat with rolls in the pockets to keep their shape, and keep it out of the dryer.

Final Notes
The whole holder rests on one chain of measurements. A gauge of 16 sc and 18 rows to 4 in (10.2 cm) gives a 5 in x 4 in (12.7 cm x 10.2 cm) pocket base and a 4 in (10.2 cm) wall. The 20-stitch panel matches the 20 back stitches of each pocket, and each 18-round wall matches 18 panel rows. Three pockets, the gaps, and the taper bring the panel to 15.3 in (38.9 cm). The border adds 0.4 in (1.0 cm) per edge, for 5.8 in x 15.7 in (14.7 cm x 39.9 cm). The strap loop brings the total height to 16.8 in (42.7 cm). Check each measurement as you reach it and the finished holder will fit three rolls.
Happy crocheting!