This hanging holder keeps three spare rolls in a neat vertical stack. Three round, open-top baskets in soft sage green hang one above the other. Two slim back straps join them, and a tapered tab wraps a wooden ring at the top.
Each basket has a solid single crochet base and a solid band at the bottom. Above that, an open diamond lattice lets the white roll show through. A cream rim with shell scallops and a corded reverse single crochet edge finishes the top. The look is calm and spa-like, and it suits a neutral bathroom with wood and brass accents.
The pattern uses US crochet terms. The finished holder measures about 5.5 in (14.0 cm) wide and 23.5 in (59.7 cm) long, including the ring. Each basket is 5.5 in (14.0 cm) across and 5 in (12.7 cm) tall, which fits a standard roll about 4.5 in (11.4 cm) across.
Construction is simple. You crochet each basket in joined rounds, starting at the center of the base and working up, then add the cream rim. Next you work two long straps and one hanging tab in rows. Finally, you sew the straps and tab to the backs of the baskets and wrap the tab around the ring.
Finished Size and Construction
- Finished size: 5.5 in (14.0 cm) wide x 23.5 in (59.7 cm) long, ring included
- Skill level: Easy intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted weight (4), cotton or cotton blend
- Hook: 5.0 mm (US H-8)
- Number of pieces: 6 crocheted pieces (3 baskets, 2 straps, 1 tab) plus 1 wooden ring
- Layout: 3 baskets stacked in a single column, with a 2 in (5.1 cm) gap between baskets
- Piece size: each basket 5.5 in (14.0 cm) diameter x 5 in (12.7 cm) tall
- Size before border: each basket 5.5 in (14.0 cm) diameter x 4 in (10.2 cm) tall
- Border depth: cream shell rim, 1 in (2.5 cm)
Materials
Choose a smooth worsted weight cotton. Cotton holds its shape, keeps the lattice crisp, and handles bathroom humidity well. The amounts below assume a yarn with about 175 m per 100 g (191 yd per 100 g).
- Sage green (main color): 160 g, about 280 m (306 yd)
- Cream (rim color): 50 g, about 88 m (96 yd)
Tools:
- 5.0 mm (US H-8) crochet hook
- One wooden ring, 2.5 in (6.4 cm) outer diameter
- Stitch markers (at least 6)
- Tapestry needle
- Scissors and measuring tape
- Rust-proof pins and a blocking mat
- A spare toilet roll or a 4.5 in (11.4 cm) jar to use as a blocking form
These quantities include a margin of about 15 percent to cover gauge differences.
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- BLO – back loop only
- st(s) – stitch(es)
- rnd(s) – round(s)
- sk – skip
Special stitches
- Reverse sc (crab stitch): Work from left to right (if you are right-handed). Insert the hook into the next st to the right, yarn over, pull up a loop, yarn over, and pull through both loops.
- Shell: 5 dc in the same st.
Gauge and Checkpoints
Gauge: 14 sc and 16 rnds = 4 in (10.2 cm) in sc. That is 3.5 sts and 4 rnds per inch.
Make one full basket before you start the others. It works as your gauge swatch and shows right away whether a roll fits.
Checkpoints:
- After Rnd 5 (30 sts): base measures 2.75 in (7.0 cm) across.
- After Rnd 10 (60 sts): base measures 5.5 in (14.0 cm) across, and the outer edge measures about 17.1 in (43.4 cm) around.
- After Rnd 14: solid band is 1 in (2.5 cm) tall.
- After Rnd 19: lattice is 2.75 in (7.0 cm) tall, measured with a roll inside.
- After Rnd 20: basket is 4 in (10.2 cm) tall.
- After Rnd 23: basket is 5 in (12.7 cm) tall.
If your base is too big, go down half a hook size. If it is too small, or a roll won’t slide in, go up half a hook size. Don’t add or remove stitches, because the lattice and shell repeats need exactly 60 sts.

Basket (Make 3)
Use sage green.
Base
Work in joined rnds. The ch 1 at the start of each rnd does not count as a st. Join each rnd with a sl st to the first sc.
Rnd 1: Make a magic ring, ch 1, 6 sc in ring, join. (6 sts)
Rnd 2: Ch 1, 2 sc in each st around, join. (12 sts)
Rnd 3: Ch 1, sc in next st, 2 sc in next st 6 times, join. (18 sts)
Rnd 4: Ch 1, sc in next 2 sts, 2 sc in next st 6 times, join. (24 sts)
Rnd 5: Ch 1, sc in next 3 sts, 2 sc in next st 6 times, join. (30 sts)
Rnd 6: Ch 1, sc in next 4 sts, 2 sc in next st 6 times, join. (36 sts)
Rnd 7: Ch 1, sc in next 5 sts, 2 sc in next st 6 times, join. (42 sts)
Rnd 8: Ch 1, sc in next 6 sts, 2 sc in next st 6 times, join. (48 sts)
Rnd 9: Ch 1, sc in next 7 sts, 2 sc in next st 6 times, join. (54 sts)
Rnd 10: Ch 1, sc in next 8 sts, 2 sc in next st 6 times, join. (60 sts)
Check: the base lies flat and measures 5.5 in (14.0 cm) across.
Solid Band
Rnd 11 (turning round): Ch 1, sc in BLO of each st around, join. (60 sts = 60 worked 1 per st + 0 added)
The unworked front loops form a clean ridge, and the sides turn upward.
Rnds 12–14: Ch 1, sc in each st around, join. (60 sts)
Check: the band is 1 in (2.5 cm) tall.
Diamond Lattice
Rnd 15: Ch 1, sc in first st, ch 5, sk 2 sts, sc in next st 19 times, ch 5, sk 2 sts, join to first sc. (20 ch-5 loops)
The sc land on sts 1, 4, 7 and so on up to st 58. That makes 20 repeats of 3 sts, which uses all 60 sts.
Rnd 16: Sl st in next 3 ch to reach the center of the first loop, ch 1, sc in same loop, ch 5, sc in next loop 19 times, ch 5, join to first sc. (20 ch-5 loops)
Rnds 17–19: Repeat Rnd 16. (20 ch-5 loops each rnd)
In each rnd, the sc go into the center of the loops below, so the loops stack into diamonds.
Check: with a roll inside, the lattice is 2.75 in (7.0 cm) tall.
Top Band
Rnd 20 (conversion round): Sl st into first loop, ch 1, 3 sc in each ch-5 loop around, join. (60 sts = 20 loops x 3 sc + 0 added)
Fasten off sage green.
Check: the basket is 4 in (10.2 cm) tall and still has 60 sts.
Strap (Make 2)
Use sage green and work in rows.
Row 1: Ch 5, sc in 2nd ch from hook and in each ch across. (4 sts)
Rows 2–76: Ch 1, turn, sc in each st across. (4 sts)
Fasten off, leaving a 24 in (61.0 cm) tail for sewing.
Check: the strap is 1.1 in (2.8 cm) wide and 19 in (48.3 cm) long. At 4 rows per inch, 76 rows give exactly 19 in (48.3 cm).
Hanging Tab (Make 1)
Use sage green and work in rows. The ch 1 does not count as a st.
Row 1: Ch 15, sc in 2nd ch from hook and in each ch across. (14 sts)
Rows 2–4: Ch 1, turn, sc in each st across. (14 sts)
Row 5: Ch 1, turn, sc2tog, sc in next 10 sts, sc2tog. (12 sts)
Row 6: Ch 1, turn, sc in each st across. (12 sts)
Row 7: Ch 1, turn, sc2tog, sc in next 8 sts, sc2tog. (10 sts)
Row 8: Ch 1, turn, sc in each st across. (10 sts)
Row 9: Ch 1, turn, sc2tog, sc in next 6 sts, sc2tog. (8 sts)
Row 10: Ch 1, turn, sc in each st across. (8 sts)
Row 11: Ch 1, turn, sc2tog, sc in next 4 sts, sc2tog. (6 sts)
Rows 12–20: Ch 1, turn, sc in each st across. (6 sts)
Fasten off, leaving a 16 in (40.6 cm) tail.
Check: Row 1 is 4 in (10.2 cm) wide, Rows 13–20 are 1.7 in (4.3 cm) wide, and the tab is 5 in (12.7 cm) long.
Make All Pieces
- Sage green: 3 baskets (Rnds 1–20), 2 straps, 1 tab
- Cream: 3 rims (Rnds 21–23, one per basket)
Add the cream rim to each basket before joining. Here is the layout from top to bottom, seen from the back:
[ ring ]
[ tab ]
| strap | | strap |
[ Basket 1 (top) ] strap rows 1-20
| | | | strap rows 21-28 (gap)
[ Basket 2 (middle) ] strap rows 29-48
| | | | strap rows 49-56 (gap)
[ Basket 3 (bottom) ] strap rows 57-76
Border: Cream Shell Rim
Work the rim on each basket after Rnd 20. Border gauge: Rnd 21 adds 0.25 in (0.6 cm), Rnd 22 adds 0.5 in (1.3 cm), and Rnd 23 adds 0.25 in (0.6 cm). That makes 1 in (2.5 cm) in total.
Rnd 21: Join cream in any st of Rnd 20. Ch 1, sc in each st around, join. (60 sts = 60 worked 1 per st + 0 added)
Rnd 22: Ch 1, sc in first st, sk 2 sts, shell in next st, sk 2 sts, sc in next st 9 times, sk 2 sts, shell in next st, sk 2 sts, join to first sc. (10 shells + 10 sc = 60 sts)
Rnd 23: Ch 1, reverse sc in each st around, join. (60 sts = 60 worked 1 per st + 0 added)
Fasten off and weave in ends.
Why the math works: The shell repeat is 6 sts (sc, sk 2, shell, sk 2), and 60 divides evenly by 6, so you get exactly 10 scallops. Each repeat uses 6 sts and makes 6 new sts (5 dc + 1 sc). The rim keeps the same 17.1 in (43.4 cm) circumference, so it doesn’t ruffle or pull in.
Joining
Use the sage green tails and a whipstitch. Sew through both layers with small, even stitches.
Mark the back. On each basket, the joining seam sits at st 60/st 1. Place markers on Rnd 21 so the straps cover sts 54–57 and sts 3–6. This leaves a 5-st gap (sts 58, 59, 60, 1, 2) of about 1.4 in (3.6 cm), and it keeps the round seams at the back.
Stitch-to-stitch logic. One strap row is the same height as one basket rnd (both are 4 per inch). Each basket is 20 rnd-heights tall:
- Rnds 21–23 count as 4, because the shell rnd is as tall as 2 sc rnds.
- Rnd 20 counts as 1.
- The lattice counts as 11.
- Rnds 11–14 count as 4.
Join in this order:
- Lay Basket 1 on strap rows 1–20, with the rim at Row 1. Sew strap rows 1–4 to Rnds 21–23, row 5 to Rnd 20, and rows 17–20 to Rnds 11–14. Tack the lattice at each net sc the strap crosses.
- Leave strap rows 21–28 free. This makes a 2 in (5.1 cm) gap.
- Sew Basket 2 to rows 29–48 the same way.
- Leave rows 49–56 free.
- Sew Basket 3 to rows 57–76.
- Repeat with the second strap.
Tension. Sew firmly, but don’t pull, because the basket fronts need to stay round. Keep a roll inside each basket while you sew so the backs don’t flatten or pucker.
Tab. Center tab Rows 1–4 over the top of Basket 1 so they cover sts 53–6 of Rnd 21 (14 sts) and the tops of the straps. Sew all four edges. Then pass Rows 13–20 through the wooden ring from front to back, fold them down, and sew Row 20 to the back of Rows 11–12.
Size checkpoint: from the bottom of Basket 3 to the top of the ring, the holder measures 23.5 in (59.7 cm). That is 19 in (48.3 cm) of straps, 2 in (5.1 cm) of visible tab, and 2.5 in (6.4 cm) of ring.
Final Blocking
- Wet the holder in cool water, or spray it evenly until it is damp.
- Press out extra water in a towel. Don’t wring it.
- Slide a toilet roll or a 4.5 in (11.4 cm) jar wrapped in plastic into each basket.
- Ease each lattice into even diamonds, and pin each shell into a rounded scallop.
- Lay the straps straight and check that both gaps measure 2 in (5.1 cm).
- Flatten the tab and smooth the ring loop.
- Let it dry fully, then remove the forms.
Final Quality-Control Checklist
- Each basket base is 5.5 in (14.0 cm) across and lies flat.
- Each basket has 20 lattice loops per rnd and 10 cream shells.
- Each basket is 5 in (12.7 cm) tall.
- The straps are 19 in (48.3 cm) long and parallel.
- Both gaps are 2 in (5.1 cm).
- The tab covers both strap tops, and the ring loop is secure.
- Total length is 23.5 in (59.7 cm).
- All ends are woven in and hidden.
Troubleshooting
- Base cups upward: Your sc are too tight. Go up half a hook size, and keep the increases evenly spaced.
- Base ruffles: Your sc are too loose. Go down half a hook size.
- Lattice twists around the basket: Make sure each sc goes into the center ch of the loop below, not off to one side.
- Shells ruffle or pull: Recount Rnd 21. It must have exactly 60 sts.
- Holder tilts to one side: The two straps are sewn at different rows. Re-sew so each basket sits on the same rows of both straps.
- Baskets droop forward: Add tacking stitches between the strap and the solid band.
- Roll doesn’t fit: Go up half a hook size and remake the basket with the same counts.
Care
Hand wash in cool water with mild soap. Lay flat to dry and reshape each basket around a roll. Remove the wooden ring before washing if you can.

Final Notes
The measurements build on each other. A 60-st base at 3.5 sts per inch gives baskets 5.5 in (14.0 cm) across. Twenty net loops and 10 shells both divide that same 60 evenly. Twenty rnd-heights per basket at 4 per inch make each basket 5 in (12.7 cm) tall. The 76 strap rows hold three baskets and two 2 in (5.1 cm) gaps, for 19 in (48.3 cm). The tab and ring bring the total to 23.5 in (59.7 cm).
Check your first basket and keep every count exact, and the other pieces will match.
Happy crocheting!