This hanging caddy holds four spare toilet rolls in a neat row. It is four round baskets, sewn together at their sides, and each one hangs from a rod by its own tapered loop. The baskets are light blue, worked in a soft shell stitch with small eyelets between the fans. A crisp white scalloped edge finishes each rim.
The look is clean and coastal, and it suits a white or pastel bathroom. Cotton yarn keeps the fabric firm, and the shell texture stops the walls from feeling heavy. You only need two colors: light blue for the baskets and white for the trim.
This pattern uses US crochet terms. The finished caddy is about 20 in (50.8 cm) wide. Each basket is 5 in (12.7 cm) across and 5 in (12.7 cm) tall, and the whole caddy hangs about 7.75 in (19.7 cm) tall including the loops.
Each basket starts as a flat single crochet circle. You then turn up the wall and work six rounds of shell stitch, followed by one leveling round. Next you add a hanging tab at the back of each basket, sew the four baskets together at their sides, and finish every rim with the white scallop border.
Finished Size and Construction
- Finished size: 20 in (50.8 cm) wide × 7.75 in (19.7 cm) tall including loops
- Skill level: Easy–Intermediate
- Terminology: US
- Yarn weight: Worsted (#4) cotton
- Hook: 5.0 mm (H-8)
- Number of pieces: 4 baskets
- Layout: 4 baskets in a single row (4 × 1)
- Piece size: 5 in (12.7 cm) diameter × 5 in (12.7 cm) tall
- Size before border: 5 in (12.7 cm) diameter × 4.25 in (10.8 cm) tall
- Border depth: 0.75 in (1.9 cm)
Materials
Use a smooth worsted-weight cotton or cotton blend, at about 170 m per 100 g. Cotton holds its shape when filled and copes well with bathroom humidity. Avoid fuzzy acrylic here, because it hides the shell texture and lets the walls slump.
- Color A, light blue: 220 g (about 375 m)
- Color B, white: 40 g (about 68 m)
Tools:
- 5.0 mm (H-8) crochet hook
- Tapestry needle
- 6 locking stitch markers
- Measuring tape
- Scissors
- A wooden rod or towel bar up to 1 in (2.5 cm) in diameter
The quantities include a margin of about 15%, which covers your gauge swatch, the seams, and small differences in tension.
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- hdc – half double crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- inc – 2 sc in the same stitch
- BLO / FLO – back loop only / front loop only
- MR – magic ring
- st(s) – stitch(es)
Special stitch: Shell. Work 5 dc in the same stitch.
Gauge and Checkpoints
- Single crochet: 15 sc and 16 rounds = 4 in (10.2 cm)
- Shell pattern: 5 shell repeats (30 sts) = 8 in (20.3 cm), and 4 shell rounds = 2.5 in (6.4 cm)
Both gauges work out to 3.75 sts per inch, so the base and the wall share the same circumference.
Make one complete basket before you start the others, and check it at each stage:
- After base Round 10: the circle measures 5 in (12.7 cm) across and lies flat.
- After wall Round 17: the wall measures 4 in (10.2 cm) from the base edge, and the circumference is 16 in (40.6 cm).
- After Round 18: the wall measures 4.25 in (10.8 cm).
- After the border: the basket measures 5 in (12.7 cm) tall.
If your basket is too big, go down to a 4.5 mm hook. If it is too small, go up to a 5.5 mm hook. A standard roll is about 4.5 in (11.4 cm) wide, so the basket needs at least 5 in (12.7 cm) across.

Basket (Make 4)
Base
Use Color A. Join each round with a sl st to the first sc. The ch 1 at the start of a round does not count as a stitch.
- Rnd 1: Work 6 sc in a MR. (6 sts)
- Rnd 2: Inc in each st around. (12 sts)
- Rnd 3: Sc 1, inc around. (18 sts)
- Rnd 4: Sc 2, inc around. (24 sts)
- Rnd 5: Sc 3, inc around. (30 sts)
- Rnd 6: Sc 4, inc around. (36 sts)
- Rnd 7: Sc 5, inc around. (42 sts)
- Rnd 8: Sc 6, inc around. (48 sts)
- Rnd 9: Sc 7, inc around. (54 sts)
- Rnd 10: Sc 8, inc around. (60 sts)
Checkpoint: the base is 5 in (12.7 cm) across. Each round adds 6 sts, so the circle stays flat.
Wall
- Rnd 11 (turning round): Ch 1, sc in the BLO of each st around, then join. (60 sts)
Working in the back loops leaves a ridge that makes a sharp corner between base and wall.
-
Rnd 12 (Shell Round A): Ch 1, sc in the first st. Skip 2 sts, shell in the next st, skip 2 sts, sc in the next st. Repeat from * around. On the last repeat, end with skip 2 instead of the final sc, and sl st to the first sc. (10 shells + 10 sc = 60 sts)
-
Rnd 13 (Shell Round B): Ch 3 (counts as dc), 2 dc in the same sc as the join. This is a half shell. Sc in the center (3rd) dc of the next shell, then shell in the next sc. Repeat from * around, ending with sc in the center dc of the last shell. Work 2 dc in the first sc, and sl st to the top of the ch-3.
Count: 2 half shells (3 + 2 = 5 sts) + 9 full shells (45 sts) + 10 sc = 60 sts.
Each new shell sits between two shells of the round below. The small gaps left by the skipped stitches form the eyelets.
- Rnd 14: Sl st across to the center dc of the first half shell. Ch 1, sc in the same st, then shell in the next sc. Continue the Round A pattern of sc in the center dc, shell in the next sc around, and join. (10 shells + 10 sc = 60 sts)
- Rnd 15: Repeat Rnd 13. (60 sts)
- Rnd 16: Repeat Rnd 14. (60 sts)
- Rnd 17: Repeat Rnd 13. (60 sts)
Checkpoint: the wall is 4 in (10.2 cm) high, made up of 0.25 in (0.6 cm) for Rnd 11 and 3.75 in (9.5 cm) for the six shell rounds.
- Rnd 18 (leveling round): Ch 1. Work sc in each dc and hdc in each sc around, then join. (50 sc + 10 hdc = 60 sts)
The hdc fill the low points between the shells, so the rim comes out level. Fasten off.
Checkpoint: the wall is 4.25 in (10.8 cm) high.
Marking the Basket
Press the basket flat with the round joins at front center. Mark these points on Rnd 18:
- Back center: st 31
- Left side: st 16
- Right side: st 46
Each side marker is 15 sts (a quarter of the round) from the back center.
Hanging Tab
Use Color A. Join in the BLO of st 26, so the tab is centered on the back marker. Work in rows and turn at the end of each row. The ch 1 does not count as a stitch.
- Row 1: Ch 1, sc in the BLO of sts 26–35. (10 sts)
- Rows 2–3: Ch 1, sc across. (10 sts)
- Row 4: Ch 1, sc2tog, sc 6, sc2tog. (8 sts)
- Row 5: Ch 1, sc across. (8 sts)
- Row 6: Ch 1, sc2tog, sc 4, sc2tog. (6 sts)
- Rows 7–22: Ch 1, sc across. (6 sts)
Fasten off and leave a 12 in (30.5 cm) tail.
The tab starts 2.7 in (6.9 cm) wide and narrows to 1.6 in (4.1 cm). It is 5.5 in (14.0 cm) long in total. Leave the end unsewn for now, so you can loop it around the rod at the end.
Make All Pieces
Make 4 identical baskets, each with a tab. Do not work the border yet.
- Per basket: about 50 g Color A
- Total: about 200 g Color A, plus seaming yarn
Layout, viewed from the front with the tabs at the back:
tab tab tab tab
[ B1 ]=[ B2 ]=[ B3 ]=[ B4 ]
Each “=” is one side seam, so there are 3 seams in total.
Joining
Method: whipstitch with Color A and a tapestry needle.
Stitch-to-stitch logic: Stand Basket 1 next to Basket 2. Line up Basket 1’s right-side marker (st 46) with Basket 2’s left-side marker (st 16). Sew straight up the wall, from Rnd 11 to Rnd 18, through one stitch column on each basket:
- 1 whipstitch in Rnd 11
- 2 whipstitches in each shell round, Rnds 12–17 (12 in total)
- 1 whipstitch in Rnd 18
That is 14 whipstitches per seam. Join Basket 2 to Basket 3 and Basket 3 to Basket 4 the same way.
Tension: pull each stitch snug, but stop when the walls just touch. Pulling harder makes the baskets pucker and turns them into ovals.
Checkpoint: the joined row measures 20 in (50.8 cm) wide, which is 4 × 5 in (12.7 cm). Each seam is 4.25 in (10.8 cm) tall.
Border
Border gauge: each scallop takes 6 sts and spans 1.6 in (4.1 cm).
Work the border on each basket separately, because each rim is a separate circle. Join the yarn at the front center of the rim.
- Rnd 1: Join Color B in the FLO of Rnd 18. Ch 1, then sc in the FLO of each st around, passing in front of the tab base. Join to the first sc. (60 sc)
- Rnd 2: Ch 1, sc in the first st. Skip 2 sts, 5 dc in the next st, skip 2 sts, sc in the next st. Repeat from * around. On the last repeat, end with skip 2 and sl st to the first sc. (10 scallops + 10 sc = 60 sts)
Fasten off and weave in the ends.
Why the math works:
- Rnd 18 has 60 sts, and Rnd 1 works exactly 1 sc into each of them, adding 0 sts, so the border still has 60 sts.
- Each scallop repeat uses 6 sts, and 60 ÷ 6 = 10, so the scallops close evenly with no partial repeat.
- Rnd 1 uses only the front loops, so the back loops under the tab stay free and the white trim sits in front of the tab, as in the photo.
- The border depth is 0.75 in (1.9 cm): 0.25 in (0.6 cm) for Rnd 1 plus 0.5 in (1.3 cm) for the scallops.
Closing the Loops
Fold rows 7–22 of each tab toward the back of the caddy, around the rod. Whipstitch Row 22 to the back of Row 6. The loop takes 16 rows, which is 4 in (10.2 cm) around, so it fits a rod up to 1 in (2.5 cm) in diameter.
If your rod has fixed brackets, slide the rod through all four tabs before you sew them closed.
Final Blocking
- Lightly mist the whole caddy with water.
- Stuff each basket with a folded towel or a toilet roll wrapped in plastic.
- Shape each basket into a smooth cylinder 5 in (12.7 cm) across.
- Pin the scallops so they point upward and their curves are even.
- Flatten each tab with your fingers so it lies smooth.
- Let everything dry completely, stuffed and standing upright.
- Remove the pins and the stuffing.
Final Quality-Control Checklist
- Each basket base lies flat and measures 5 in (12.7 cm) across.
- Every shell round has 10 shells, and the eyelets line up all around.
- Rnd 18 is level, with no dips at the hdc.
- The walls measure 4.25 in (10.8 cm) high, and the baskets measure 5 in (12.7 cm) high with the border.
- Each basket has 10 white scallops, evenly spaced.
- All three seams are 14 stitches long and invisible from the front.
- The tabs are centered at the back and securely sewn into loops.
- The full width is 20 in (50.8 cm).
- All ends are woven in.
Troubleshooting
- The base is cupping: your tension is too tight. Go up half a hook size for the base only.
- The base is ruffling: your tension is too loose, or you added extra increments. Recount each round.
- The shell count is off: check that you skipped exactly 2 sts on each side of every shell, and recount to 60.
- The rim is wavy: in Rnd 18, make sure you worked hdc into every sc, not sc.
- The baskets lean forward: move the tab so it is exactly centered on st 31, or snug up the back loop.
- The seams show from the front: sew only through the side column and keep your stitches inside the shell gaps.
- The rolls are too tight: add one shell repeat per round (66 sts). Then also work the base to 66 sts by adding Rnd 11 as sc 9, inc, and keep the border at 66 sts (11 scallops).
Care
Hand wash in cool water, or machine wash on a gentle cycle in a laundry bag. Reshape and dry flat, standing the baskets upright.

Final Notes
Each measurement leads to the next:
- The 60-st base measures 5 in (12.7 cm) across.
- The wall keeps those same 60 sts in multiples of 6, so the shell rounds come out to 16 in (40.6 cm) around and 4.25 in (10.8 cm) tall.
- Four baskets joined side to side make 20 in (50.8 cm).
- The 60-st white border adds 10 even scallops and 0.75 in (1.9 cm), bringing each basket to 5 in (12.7 cm) tall.
- The 16-row tab loops fit a 1 in (2.5 cm) rod.
Check your first basket against every checkpoint, and the other three will match it.
Happy crocheting!