This hanging caddy holds spare toilet rolls in two round, lacy baskets. Each basket has a flat, firm base, a short solid band, and walls of offset fan shells with small triangle windows between them. A scalloped crown finishes the top edge. Two cream straps loop over a wooden dowel so the pair hangs neatly on the wall.
The baskets are worked in warm coral cotton and the straps in soft cream. The coral looks bright against white tile or marble, and the cream straps go well with natural wood. The style is light and vintage but practical: shell lace on top, a sturdy body underneath.
This pattern uses US crochet terms. Each basket measures 9 in (22.9 cm) across the base and 4 in (10.2 cm) tall. Joined side by side, the pair is 18 in (45.7 cm) wide. Each strap is 1.9 in (4.8 cm) wide and 16 in (40.6 cm) long before folding.
Construction is simple. Each basket is one continuous piece: a double crochet base circle, then the wall worked straight up in joined rounds. The straps are worked flat in rows. To finish, you sew the two baskets together, fold the straps over the dowel, and stitch them inside the back walls.
Finished Size and Construction
- Finished size (pair): 18 in (45.7 cm) wide x 4 in (10.2 cm) tall baskets, plus strap drop
- Skill level: Easy-intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted (#4) 100% cotton
- Hook: 5.0 mm (H-8)
- Number of pieces: 4 (2 baskets, 2 straps)
- Layout: 2 baskets side by side, 1 strap above each
- Piece size: basket 9 in (22.9 cm) diameter x 4 in (10.2 cm) tall; strap 1.9 in x 16 in (4.8 cm x 40.6 cm)
- Size before border: basket wall 3.25 in (8.3 cm) tall
- Border depth: 0.75 in (1.9 cm)
Materials
Choose a smooth, firm worsted-weight cotton. Cotton holds its shape, copes well with a damp bathroom, and shows the shell texture clearly. Avoid acrylic blends for the baskets, because they sag under the weight of the rolls.
- Color A, Coral: 200 g / approx. 380 m (2 baskets)
- Color B, Cream: 50 g / approx. 95 m (2 straps)
Quantities include a margin of about 20% for gauge swatches and differences between brands.
Tools:
- 5.0 mm (H-8) crochet hook
- Tapestry needle
- 6 stitch markers
- Measuring tape
- Wooden dowel, 22 in (55.9 cm) long, about 0.75 in (1.9 cm) thick, with end finials
- 2 wall hooks or brackets for the dowel
- Rust-proof pins and a blocking surface
- Scissors
Abbreviations (US Terms)
- ch = chain
- sl st = slip stitch
- sc = single crochet
- dc = double crochet
- BLO = back loop only
- st(s) = stitch(es)
- sp = space
- sk = skip
- rnd = round
Special stitches:
- Shell = 5 dc worked in the same stitch.
- Crown shell = 7 dc worked in the same stitch.
Gauge and Checkpoints
Base gauge: 15 dc x 8 rnds = 4 in (10.2 cm).
Wall and strap gauge: 15 sc x 16 rows = 4 in (10.2 cm).
Make one basket base first and use it as your swatch. Every other measurement builds on the base.
Checkpoints:
- After Rnd 3: base is 3 in (7.6 cm) across.
- After Rnd 6: base is 6 in (15.2 cm) across.
- After Rnd 9: base is 9 in (22.9 cm) across.
- After Rnd 12: solid band is 0.75 in (1.9 cm) tall.
- After Rnd 16: wall is 3.25 in (8.3 cm) tall.
- After Rnd 18: wall is 4 in (10.2 cm) tall.
If your base is too big, go down 0.5 mm in hook size. If it is too small, go up 0.5 mm. If the base ruffles, your dc are too tall; if it cups, they are too short. Fix the base before you start the wall, because every later count depends on it.

Basket (Make 2)
Use Color A. Work in joined rounds with the right side facing. Do not turn.
Base
Rnd 1: Make a magic ring. Ch 3 (counts as dc), 11 dc in ring. Sl st to top of ch-3. (12 sts)
Rnd 2: Ch 3 (counts as dc here and throughout), dc in same st, 2 dc in each st around. Sl st to top of ch-3. (24 sts)
Rnd 3: Ch 3, 2 dc in next st, dc in next st, 2 dc in next st around. Sl st to join. (36 sts)
Rnd 4: Ch 3, dc in next st, 2 dc in next st, dc in next 2 sts, 2 dc in next st around. Join. (48 sts)
Rnd 5: Ch 3, dc in next 2 sts, 2 dc in next st, dc in next 3 sts, 2 dc in next st around. Join. (60 sts)
Rnd 6: Ch 3, dc in next 3 sts, 2 dc in next st, dc in next 4 sts, 2 dc in next st around. Join. (72 sts)
Rnd 7: Ch 3, dc in next 4 sts, 2 dc in next st, dc in next 5 sts, 2 dc in next st around. Join. (84 sts)
Rnd 8: Ch 3, dc in next 5 sts, 2 dc in next st, dc in next 6 sts, 2 dc in next st around. Join. (96 sts)
Rnd 9: Ch 3, dc in next 6 sts, 2 dc in next st, dc in next 7 sts, 2 dc in next st around. Join. (108 sts)
Check: the base lies flat and measures 9 in (22.9 cm) across.
Solid Band
Rnd 10: Ch 1, sc in BLO of each st around. Sl st to first sc. (108 sts) The unused front loops form a neat ridge, and the wall turns upward here.
Rnds 11-12: Ch 1, sc in each st around. Sl st to first sc. (108 sts)
Place 6 markers, one every 18 sts, to help keep the shell repeats even.
Shell Wall
Rnd 13: Ch 1, sc in first st, sk 2 sts, shell in next st, sk 2 sts, sc in next st; repeat from * 16 more times, sk 2 sts, shell in next st, sk 2 sts. Sl st to first sc. (18 shells + 18 sc = 90 dc + 18 sc = 108 sts)
Each repeat uses exactly 6 sts of Rnd 12, and 18 x 6 = 108.
Rnd 14: Sl st in next 3 dc (you are now in the center dc of the first shell). Ch 1, sc in same st, ch 2, shell in next sc, ch 2, sc in center dc of next shell; repeat from * 16 more times, ch 2, shell in next sc, ch 2. Sl st to first sc. (18 shells, 18 sc, 36 ch-2 sps)
The new shells sit between the shells below, and the ch-2 spans leave small open triangles.
Rnds 15-16: Sl st in next 2 ch and next 3 dc (center dc of first shell). Ch 1, sc in same st, ch 2, shell in next sc, ch 2, sc in center dc of next shell; repeat from * 16 more times, ch 2, shell in next sc, ch 2. Sl st to first sc. (18 shells, 18 sc, 36 ch-2 sps)
Check: the wall is 3.25 in (8.3 cm) tall from the base, and the diameter is still 9 in (22.9 cm). Do not fasten off; continue to the border.
Strap (Make 2)
Use Color B. Work flat in rows.
Foundation: Ch 8.
Row 1: Sc in 2nd ch from hook and each ch across. Turn. (7 sts)
Rows 2-64: Ch 1, sc in each st across. Turn. (7 sts)
Check: the strap is 1.9 in (4.8 cm) wide and 16 in (40.6 cm) long.
Rounded ends: Without turning, ch 1 and sl st loosely across both short ends only. Work 1 sl st in each st and ease 2 sl sts into each corner. This softens the corners into the rounded ends shown. Fasten off and weave in ends.
Make All Pieces
- Color A, Coral: 2 baskets (base, band, shell wall, and border on each)
- Color B, Cream: 2 straps
Layout, viewed from the front:
[ Strap 1 ] [ Strap 2 ]
| |
[ Basket A ] + [ Basket B ]
Basket A is on the left and Basket B on the right. Each strap is centered on its basket’s back wall.
Joining
Join the baskets after the borders are finished and blocked (see Border and Final Blocking). Use Color A, a tapestry needle, and whipstitch.
- Place the baskets side by side, with the BLO ridges level and the border scallops lined up.
- Find the point where the walls touch. On each basket, mark 6 sts in Rnds 10-12, centered on that point.
- Whipstitch the 6 marked sts of Basket A to the 6 marked sts of Basket B, stitch to stitch, through Rnds 10, 11, and 12. That is 18 matched stitch pairs in total.
- At border level, tack the two touching crown shells together with 3 small stitches through their center dc.
Keep the tension snug but not tight. The seam should hold the walls flush without pulling them flat. If the baskets tilt toward each other, loosen the stitches at the border tack.
Size checkpoint: the joined pair measures 18 in (45.7 cm) across.
Attaching the Straps
- Fold each strap in half over the dowel so both ends hang down evenly.
- Stack the two ends and pin them to the inside back wall of one basket, centered across the back half.
- Let 2 in (5.1 cm) of strap overlap the wall, with the bottom ends resting on Rnd 12.
- Whipstitch around the overlapping edges with Color B, through both strap layers and the wall. Spread the stitches slightly at the bottom so the strap fans out a little across the shells.
Each strap leaves about 6 in (15.2 cm) of hanging drop between the dowel and the basket rim.
Border
The border is the scalloped crown and outlined rim at the top of each basket. It continues straight on from Rnd 16 in Color A.
Border gauge: 2 border rnds = 0.75 in (1.9 cm) tall.
Rnd 17 (crown): Sl st in next 2 ch and next 3 dc (center dc of first shell). Ch 1, sc in same st, ch 2, crown shell in next sc, ch 2, sc in center dc of next shell; repeat from * 16 more times, ch 2, crown shell in next sc, ch 2. Sl st to first sc. (18 crown shells = 126 dc, 18 sc, 36 ch-2 sps)
Per half (front or back): 9 crown shells, 63 dc, 9 sc, 18 ch-2 sps.
Rnd 18 (rim): Sl st in first sc (this is the first sl st of the round), sc in next ch-2 sp, sc in each of next 7 dc, sc in next ch-2 sp, sl st in next sc; repeat from * around, working the final sl st into the beginning sl st. Fasten off. (180 sts: 162 sc + 18 sl st)
Per repeat: 1 sl st + 1 sc + 7 sc + 1 sc = 10 sts.
Per half (front or back): 9 repeats = 90 sts.
Why the math works: Rnd 9 ends with 108 sts, and Rnds 10-12 keep that count. The shell repeat uses 6 sts, and 108 / 6 = 18. So every round from 13 to 18 has exactly 18 repeats, with no partial repeat at the join. The border keeps the same 18-repeat rhythm: 18 x 7 = 126 dc in Rnd 17, and 18 x 10 = 180 sts in Rnd 18. Working 1 sc in each ch-2 sp holds the triangle windows open without stretching the rim.
Weave in all ends securely on the inside.
Final Blocking
- Block each basket and both straps before joining.
- Soak the pieces in cool water for 10 minutes. Press out the water in a towel; do not wring.
- Fill each basket firmly with a rolled towel, or set it over an upside-down 9 in (22.9 cm) bowl, so the base sits flat and the walls stand straight.
- Pin each crown shell into an even scallop, keeping the 18 points evenly spaced, about 1.6 in (4.1 cm) apart.
- Pin the straps flat to 1.9 in x 16 in (4.8 cm x 40.6 cm).
- Let everything dry completely, about 24 hours.
- Remove the pins, then join the baskets and attach the straps.
Final Quality-Control Checklist
- Each base lies flat and measures 9 in (22.9 cm) across.
- Each basket has 108 sts in Rnds 9 to 12.
- Each shell round has 18 shells, and the triangle windows line up evenly.
- Rnd 17 has 18 crown shells; Rnd 18 has 180 sts.
- Each basket is 4 in (10.2 cm) tall.
- The joined pair is 18 in (45.7 cm) wide, and the rims are level.
- Both straps are the same length and hang the baskets level.
- All ends are woven in and hidden on the inside.
Troubleshooting
- Base ruffles: Your dc are too loose or too tall. Go down a hook size or work the base more tightly.
- Base cups: Your dc are too tight. Go up a hook size.
- Shell count is off: Recount Rnd 12. You need exactly 108 sts for 18 repeats.
- Walls flare outward: Work Rnds 10-12 a little tighter, or go down 0.5 mm for the solid band.
- Triangle windows look closed: Your ch-2 spans are too tight. Make each chain a full-size loop.
- Basket tilts when hanging: Re-center the strap on the back wall, and check that both strap ends overlap exactly 2 in (5.1 cm).
- Rim is wavy after Rnd 18: Don’t add extra sc in the ch-2 sps. Use exactly 1 sc in each.
Care
Hand wash in cool water with mild soap, press dry in a towel, and reshape while damp. Dry flat or over a bowl.

Final Notes
The measurement chain is simple. A 9 in (22.9 cm) base gives 108 sts, and 108 sts give 18 shell repeats. Four shell rounds bring the wall to 3.25 in (8.3 cm). The border adds 0.75 in (1.9 cm), for a 4 in (10.2 cm) basket. Two baskets joined side by side make an 18 in (45.7 cm) caddy, and two 16 in (40.6 cm) straps hang it from the dowel. Check each step in the chain, and the finished caddy will hang straight and hold its shape.
Happy crocheting!