The Sage Trio is a hanging toilet paper holder made of three small round baskets stacked one above the other. Two flat side straps hold the baskets together, and a wooden ring at the top hangs it from a hook. Each basket holds one standard roll, with the top of the roll showing so it’s easy to grab.
It’s made in a single sage green cotton. The baskets use griddle stitch (single crochet and double crochet alternating), which gives a pebbly, seed-like texture. That texture is firm enough for the baskets to keep their shape without stiffener. A reverse single crochet rim gives each basket a rounded, rolled edge.
This pattern uses US crochet terms. Each basket is 5 in (12.7 cm) across and 3.6 in (9.1 cm) tall. The finished holder is about 5.5 in (14.0 cm) wide and about 18 in (45.7 cm) long from the top of the ring to the bottom of the lowest basket.
Here’s how it goes together. You crochet a flat round base, turn the wall up with a back-loop round, and work the textured wall. You make two straps lengthwise and sew them to the sides of all three baskets. Then you work each basket’s rim through the strap to lock it in place, and finally attach the straps to a crocheted band on the ring.
Finished Size and Construction
- Finished size: about 5.5 in (14.0 cm) wide × 18 in (45.7 cm) long
- Skill level: Easy–Intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted (#4), cotton
- Hook: 5.0 mm (H-8)
- Number of pieces: 6 (3 baskets, 2 straps, 1 ring band)
- Layout: 3 baskets stacked vertically, 1 column
- Piece size: each basket is 5 in (12.7 cm) across × 3.6 in (9.1 cm) tall
- Size before border: basket wall 3.1 in (7.9 cm) tall
- Border (rim) depth: 0.5 in (1.3 cm)
Materials
Yarn: Use a smooth worsted-weight cotton or cotton blend. Cotton holds its shape, handles bathroom humidity, and makes the griddle texture stand out clearly. Avoid acrylic that’s very soft or splitty, because the baskets will sag.
- Sage green: 100 g (about 170 m / 186 yd)
Tools:
– 5.0 mm (H-8) crochet hook
– 3 in (7.6 cm) wooden ring
– Yarn needle
– 4 locking stitch markers
– Measuring tape
– Scissors
– Pins or clips
The yarn amount includes a margin of about 30% for your gauge swatch and small differences in tension.
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- inc – 2 sc in the same stitch
- BLO – back loop only
- rev sc – reverse single crochet
- MR – magic ring
- st(s) – stitch(es)
- rnd(s) – round(s)
Special stitch: Reverse single crochet (rev sc). Work this from left to right (from right to left if you crochet left-handed). Insert the hook into the next stitch to the right, yarn over, pull up a loop, then yarn over and pull through both loops. It makes a rounded, corded edge.
Turning chains: Unless the pattern says otherwise, ch 1 or ch 2 at the start of a round does not count as a stitch.
Gauge and Checkpoints
- Sc gauge: 15 sts and 16 rnds = 4 in (10.2 cm). Each sc round is 0.25 in (0.6 cm) tall.
- Griddle gauge: 15 sts and 14 rnds = 4 in (10.2 cm).
Make one complete basket before you make the straps. It’s your gauge swatch, so use it to check every measurement below.
Checkpoints:
– After Rnd 6: the base is 3 in (7.6 cm) across.
– After Rnd 10: the base is 5 in (12.7 cm) across, and the outer edge is about 16 in (40.6 cm) around.
– After Rnd 21: the wall is 3.1 in (7.9 cm) tall, measured from the base ridge.
– After the rim: the wall is 3.6 in (9.1 cm) tall.
If your base is too big (more than 5.25 in / 13.3 cm across), go down to a 4.5 mm hook. If it’s too small (less than 4.75 in / 12.1 cm), go up to a 5.5 mm hook. A rumpled base means your gauge is too loose; a base that cups up means it’s too tight. Try your roll inside: it should drop in easily with about 0.25 in (0.6 cm) of room around it.

Basket (Make 3)
Base
Work in continuous joined rounds. Sl st to the first st at the end of each round.
Rnd 1: 6 sc in MR, sl st to first sc. (6)
Rnd 2: Ch 1, inc in each st around. (12)
Rnd 3: Ch 1, (sc in next st, inc) 6 times. (18)
Rnd 4: Ch 1, (sc in next 2 sts, inc) 6 times. (24)
Rnd 5: Ch 1, (sc in next 3 sts, inc) 6 times. (30)
Rnd 6: Ch 1, (sc in next 4 sts, inc) 6 times. (36)
Checkpoint: 3 in (7.6 cm) across.
Rnd 7: Ch 1, (sc in next 5 sts, inc) 6 times. (42)
Rnd 8: Ch 1, (sc in next 6 sts, inc) 6 times. (48)
Rnd 9: Ch 1, (sc in next 7 sts, inc) 6 times. (54)
Rnd 10: Ch 1, (sc in next 8 sts, inc) 6 times. (60)
Checkpoint: 5 in (12.7 cm) across and flat.
To stop the increases lining up into a hexagon, you can start the repeats of Rnds 7–10 with half the plain stitches. For example, Rnd 8 would be: sc in next 3 sts, inc, (sc in next 6 sts, inc) 5 times, sc in next 3 sts. The count stays the same.
Wall
Rnd 11 (base ridge): Ch 1, sc in BLO of each st around. (60)
The unworked front loops make a crisp ridge, and the fabric now turns upward.
Rnd 12: Ch 1, (sc in next st, dc in next st) 30 times. (60: 30 sc + 30 dc)
Rnd 13: Ch 2, (dc in next st, sc in next st) 30 times. (60: 30 dc + 30 sc)
You’re now working a dc into each sc and a sc into each dc, which makes the pebbly texture.
Rnds 14–21: Repeat Rnds 12–13 four more times. (60 in each round)
That’s 10 griddle rounds in total (Rnds 12–21).
Checkpoint: the wall is 3.1 in (7.9 cm) tall from the ridge, and the basket is still 5 in (12.7 cm) across.
Leave the loop live on a stitch marker. Don’t work the rim yet; you’ll work it during the border step, after the straps are attached.
Mark the strap columns: Put a marker in st 1 of Rnd 21 and another in st 31, directly opposite. The round seam is at st 1, so the strap will hide it.
Straps (Make 2)
Each strap is worked in rows along its length.
Foundation: Ch 73.
Row 1: Sc in 2nd ch from hook and in each ch across. (72)
Rows 2–3: Ch 1, turn, sc in each st across. (72)
Fasten off and leave a 24 in (61.0 cm) tail.
Checkpoint: 19.2 in (48.8 cm) long × 0.75 in (1.9 cm) wide.
Strap map (count stitches along Row 3, starting at the end with the foundation tail):
– Sts 1–13: Basket 3 (bottom)
– Sts 14–17: gap, 1.1 in (2.8 cm)
– Sts 18–30: Basket 2
– Sts 31–34: gap, 1.1 in (2.8 cm)
– Sts 35–47: Basket 1 (top)
– Sts 48–60: angled section to the ring, 3.5 in (8.9 cm)
– Sts 61–72: ring loop and fold-back
Each basket gets 13 strap stitches. The bottom 11 sew to wall Rnds 11–21, and the top 2 attach at the 2 rim rounds.
Ring Band (Make 1)
Attach yarn around the wooden ring. Work 16 sc over the ring, packed tightly, so they cover the bottom third of it. Fasten off and weave in the end.
Make All Pieces
All pieces are sage green:
– 3 baskets (worked through Rnd 21, rims not yet worked)
– 2 straps (72 sts × 3 rows)
– 1 ring band (16 sc)
Layout:
( RING )
/ \
strap / \ strap
| |
[ BASKET 1 ] top
| gap |
[ BASKET 2 ] middle
| gap |
[ BASKET 3 ] bottom
Joining
Method: Whipstitch with the strap tail or a new length of yarn on a yarn needle.
- Lay the baskets in a column. Pin Strap A over the st 1 column of each basket and Strap B over the st 31 column. Each strap should be centered, covering 3 wall stitches.
- Basket 3: Line up strap st 1 with Rnd 11 (the ridge). Whipstitch both long edges of the strap to the wall, one strap stitch to one wall round. Strap sts 1–11 go to Rnds 11–21. Strap sts 12–13 stay loose above the wall.
- Basket 2: Leave strap sts 14–17 free as the gap. Sew strap sts 18–28 to Rnds 11–21. Sts 29–30 stay loose.
- Basket 1: Leave sts 31–34 free. Sew sts 35–45 to Rnds 11–21. Sts 46–47 stay loose.
- Repeat on the opposite side with Strap B.
Tension: Pull each whipstitch just enough to close the gap, without puckering the wall. The strap should lie flat and the wall should stay round.
Size checkpoint: From the ridge of Basket 3 to the top of Basket 1’s wall, the stack should be about 12.5 in (31.8 cm). That’s the strap’s sts 1–47.
Border (Basket Rims)
Border gauge: 2 sc-height rounds = 0.5 in (1.3 cm).
Put the live loop of each basket back on your hook.
Rnd 22: Ch 1, sc in each st around. When you reach the strap columns (wall sts 60, 1, 2 and sts 30, 31, 32), insert the hook through the wall stitch and then through the strap fabric right outside it, and work the sc through both layers. Sl st to first sc. (60: 54 through the wall only + 6 through wall and strap)
This round catches strap st 12 (or st 29 / st 46 on the upper baskets) at both strap columns.
Rnd 23: Ch 1, rev sc in each st around. Sl st to first st and fasten off. (60)
Use the tail to whipstitch the last loose strap stitch (st 13, 30, or 47) to the rev sc ridge with 2 stitches.
Why the math works: The wall stays at 60 stitches all the way up, and the rim keeps exactly 60. Since nothing is added or skipped, the rim can’t flare or pull in. Rev sc is naturally a bit firm, which gently rolls the edge. Working the strap into Rnd 22 uses existing stitches rather than adding new ones, so the count stays at 60. With 2 rim rounds at 0.25 in (0.6 cm) each, the wall goes from 3.1 in (7.9 cm) to 3.6 in (9.1 cm).
Ring attachment: Hold both straps together. Pass sts 61–72 of each strap behind the ring band, from front to back. Fold the ends down the back and whipstitch sts 67–72 to the back of sts 61–66, so each strap forms a snug loop around the ring band. Sts 48–60 of each strap make the angled section from the ring to the top basket.
Final Blocking
- Weave in all ends and tuck them under the straps where you can.
- Spray the holder lightly with water until it’s damp but not soaked.
- Put a toilet roll in each basket to shape the walls.
- Press the rims round with your fingers and pinch the ridges sharp.
- Lay the holder flat, with the straps straight and the 1.1 in (2.8 cm) gaps even.
- Let it dry completely, at least 12 hours, before you hang it.
Final Quality-Control Checklist
- Each basket is 5 in (12.7 cm) across and 3.6 in (9.1 cm) tall.
- Each basket has 60 stitches in every wall and rim round.
- Each strap measures 19.2 in (48.8 cm) before you attach it.
- The straps sit directly opposite each other and cover the round seams.
- Both gaps are 1.1 in (2.8 cm).
- Both straps are the same length from the ring to Basket 1, so the holder hangs level.
- The rims are smooth and rolled, with no flare.
- The total length is about 18 in (45.7 cm).
Troubleshooting
- The base ruffles: Your gauge is too loose. Go down a hook size, or check that each increase round is exactly 6 stitches more than the one before.
- The base cups before Rnd 11: Your gauge is too tight. Go up a hook size.
- The walls slant outward: Check that you have 60 stitches per round. Extra stitches at the joins are the usual cause.
- The texture looks like stripes, not pebbles: You’re working sc into sc. Put each dc into an sc and each sc into a dc.
- The holder hangs crooked: Re-sew the ring fold so both straps have exactly sts 48–60 showing.
- The rolls won’t fit: Measure your roll. Larger rolls need one more increase round (66 stitches) and a 66-stitch wall and rim.
Care
Hand wash in cool water with mild soap, press out the water in a towel, and dry flat with a roll inside each basket to keep the shape. Don’t tumble dry.

Final Notes
Here’s the measurement chain for the whole project. A gauge of 15 stitches per 4 in (10.2 cm) gives a 60-stitch base that’s 5 in (12.7 cm) across. The wall is 3.1 in (7.9 cm) tall before the rim and 3.6 in (9.1 cm) after it. A 72-stitch strap is 19.2 in (48.8 cm), split into three 13-stitch basket sections, two 4-stitch gaps, the angled section, and the ring loop. Check your first basket against these numbers, and the rest of the build will match.
Happy crocheting!