This holder stacks three round baskets in a column, each sized to hold one roll of toilet paper. They hang one above the other from a single loop. Each basket has cream walls with alternating rows of pink and cream puff stitches, separated by thin green rows, and a ruffled pink shell rim. The rows of pink puffs look a little like tulips, which is where the name comes from.
The palette is cream, raspberry pink and leaf green. The cream body keeps it calm, and the pink and green add a garden feel. It suits a bright bathroom, a farmhouse shelf or a guest room.
The pattern uses US crochet terms. Each basket measures 5.5 in (14.0 cm) across and 3 in (7.6 cm) tall. The fully assembled holder hangs about 20.5 in (52.1 cm) from the peg to the bottom of the lowest basket.
Construction is simple. You work a flat base in rounds of double crochet, then turn the walls up with a back-loop round and work the colorwork in joined rounds. Then you add a scalloped shell rim. The cream straps are short rows of single crochet, sewn to the outsides of the baskets.
Finished Size and Construction
- Finished size (assembled): about 5.5 in (14.0 cm) wide × 20.5 in (52.1 cm) long
- Skill level: Easy–Intermediate
- Terminology: US crochet terms
- Yarn weight: Worsted/Aran (#4 medium) cotton or cotton blend
- Hook: 5.5 mm (I-9)
- Number of pieces: 8 (3 baskets, 4 connector straps, 1 hanging strap)
- Layout: 1 column of 3 baskets, linked by pairs of straps, with a V-shaped hanger on top
- Basket size: 5.5 in (14.0 cm) diameter × 3 in (7.6 cm) tall
- Wall height before rim: 2.25 in (5.7 cm)
- Rim (border) depth: 0.75 in (1.9 cm)
Materials
Choose a smooth, firm cotton or cotton blend. Cotton keeps its shape when loaded and holds up well in humid bathrooms. Avoid fuzzy acrylic, because it hides the puff stitch texture and the baskets can sag.
- Color A – Cream: 220 g / 374 m (bases, walls, cream puffs, all straps)
- Color B – Raspberry Pink: 80 g / 136 m (pink puffs, rim)
- Color C – Leaf Green: 50 g / 85 m (green rows)
These amounts assume about 85 m per 50 g and include a margin of roughly 15% for swatching and weaving in ends.
Tools:
– 5.5 mm (I-9) crochet hook
– Tapestry needle
– 4 locking stitch markers
– Scissors
– Measuring tape
– Wall peg or hook (optional)
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- BLO – back loop only
- sk – skip
- st(s) – stitch(es)
- sp – space
- MR – magic ring
Special stitch – Puff: [Yarn over, insert hook in the indicated stitch, yarn over and pull up a loop to the height of a dc] 3 times (7 loops on hook). Yarn over and pull through all 7 loops.
Special stitch – Shell: 7 dc in the same stitch.
Gauge and Checkpoints
Gauge: 14 sc × 16 rows = 4 in (10.2 cm) in a flat sc swatch.
Before you make all eight pieces, make one complete basket and measure it. Check it at each stage:
- Base after Round 1: 1.5 in (3.8 cm) across
- Base after Round 3: 3.5 in (8.9 cm) across
- Base after Round 5: 5.5 in (14.0 cm) across
- Wall after Round 12: 2.25 in (5.7 cm) tall
- Wall after rim: 3 in (7.6 cm) tall
If your base is too big, go down half a hook size. If it’s ruffling, you’re probably increasing unevenly, so check your counts.
If your base is too small, go up half a hook size. A standard roll is about 4.5 in (11.4 cm) across, so the base must reach at least 5 in (12.7 cm).

Basket Base (make 3)
Work in joined rounds with the right side facing. Ch 2 at the start of a round does not count as a stitch.
Round 1 (Color A): MR, ch 2, 12 dc in ring, sl st to first dc. (12 sts)
Round 2: Ch 2, 2 dc in each st around, sl st to first dc. (24 sts)
Round 3: Ch 2, [dc in next st, 2 dc in next st] 12 times, sl st to first dc. (36 sts)
Round 4: Ch 2, [dc in next 2 sts, 2 dc in next st] 12 times, sl st to first dc. (48 sts)
Round 5: Ch 2, [dc in next 3 sts, 2 dc in next st] 12 times, sl st to first dc. (60 sts)
Checkpoint: the base should lie flat and measure 5.5 in (14.0 cm) across.
Basket Walls
From here on there are no increases. Every round keeps 60 stitches. All color joins happen at the same spot at the back of the basket.
Round 6 (Color A): Ch 1, sc in BLO of each st around, sl st to first sc. (60 sc) This round makes the ridge where the wall turns up.
Round 7 (Color A): Ch 1, sc in each st around, sl st to first sc. (60 sc) Fasten off Color A.
Round 8 (Color B – pink puffs): Join Color B in any st. Ch 1, puff in the same st, ch 1, sk next st, puff in next st, ch 1, sk next st, repeat from * around. Sl st to the top of the first puff. (30 puffs + 30 ch-1 sps = 60 sts) Fasten off.
Round 9 (Color C): Join Color C in any puff. Ch 1, sc in each puff and each ch-1 sp around, sl st to first sc. (60 sc) Fasten off.
Round 10 (Color A – cream puffs): Join Color A in the sc worked into any ch-1 sp of Round 8. Ch 1, puff in the same st, ch 1, sk next st, puff in next st, ch 1, sk next st, repeat from * around, sl st to first puff. (30 puffs + 30 ch-1 sps = 60 sts) The cream puffs sit between the pink puffs below them. Fasten off.
Round 11 (Color C): Join Color C in any puff. Ch 1, sc in each puff and each ch-1 sp around, sl st to first sc. (60 sc) Fasten off.
Round 12 (Color B): Join Color B in any st. Ch 1, sc in each st around, sl st to first sc. (60 sc) Do not fasten off. Go straight into the rim (see Border below).
Checkpoint: the wall should measure 2.25 in (5.7 cm) from the base ridge.
Straps
All straps use Color A and are worked flat in rows. The ch 1 at the start of a row does not count as a stitch.
Connector strap (make 4):
– Foundation: Ch 22.
– Row 1: Sc in 2nd ch from hook and each ch across, turn. (21 sc)
– Rows 2–3: Ch 1, sc in each st across, turn. (21 sc)
– Fasten off, leaving a 12 in (30.5 cm) tail for sewing.
– Size: 6 in (15.2 cm) long × 0.75 in (1.9 cm) wide.
Hanging strap (make 1):
– Foundation: Ch 71.
– Row 1: Sc in 2nd ch from hook and each ch across, turn. (70 sc)
– Rows 2–3: Ch 1, sc in each st across, turn. (70 sc)
– Fasten off, leaving a 12 in (30.5 cm) tail.
– Size: 20 in (50.8 cm) long × 0.75 in (1.9 cm) wide.
Three rows of sc make the straps thick and firm, so they won’t twist or stretch under the weight of the rolls.
Make All Pieces
| Piece | Qty | Colors |
|---|---|---|
| Basket | 3 | A, B, C |
| Connector strap (21 sc) | 4 | A |
| Hanging strap (70 sc) | 1 | A |
Layout grid:
/\
/ \ hanging strap (inverted V)
| |
[ Basket 1 ] top
| | 2 connector straps
[ Basket 2 ] middle
| | 2 connector straps
[ Basket 3 ] bottom
Joining
Finish the rim (Border section) on all three baskets before you sew anything. The rim is written as its own section because it has its own counts.
Mark strap positions. On each basket, find the color-join seam at the back. Count 15 stitches to the right of it and place a marker in Round 12. Count 30 stitches from that marker and place a second marker. The two markers sit exactly opposite each other, 30 + 30 = 60. Use the same positions on all three baskets so the straps line up in straight vertical lines.
Overlap rule: each strap end overlaps the basket wall by 2 in (5.1 cm), which covers about 7 sc of strap length.
Connect Basket 1 to Basket 2:
1. Lay a connector strap over the outside of Basket 2’s wall, centered on a marker. Its end should line up with the top of the rim, and its first 2 in (5.1 cm) should run down the wall.
2. Whipstitch both long edges and the short end of the strap to the wall. Each strap row covers about one wall round. The strap is 3 sts wide, so center it over the marked stitch and the stitches on either side.
3. Sew the other end of the strap to the bottom 2 in (5.1 cm) of Basket 1’s wall, starting at the base ridge and running up.
4. Repeat on the opposite marker.
A 6 in (15.2 cm) strap minus two 2 in (5.1 cm) overlaps leaves a 2 in (5.1 cm) gap between baskets.
Connect Basket 2 to Basket 3 the same way.
Hanging strap: Sew one end of the hanging strap to the top 2 in (5.1 cm) of Basket 1 at the first marker and the other end at the second marker. The remaining 16 in (40.6 cm) forms an inverted V with two 8 in (20.3 cm) sides. The point of the V rises about 7.5 in (19.1 cm) above the rim.
Tension: Sew firmly, but don’t pull so hard that the wall puckers. Go through both the strap and the wall on every stitch, and sew the short ends of each overlap twice. They carry the most weight.
Size checkpoint: baskets 3 × 3 in (7.6 cm) = 9 in (22.9 cm), plus gaps 2 × 2 in (5.1 cm) = 4 in (10.2 cm), gives a stack of 13 in (33.0 cm). Add the 7.5 in (19.1 cm) hanger for 20.5 in (52.1 cm) in total.
Border: Scalloped Rim
The rim is the shell edge on each basket, worked right after Round 12 with Color B still attached.
Border gauge: each shell repeat spans 6 sts of Round 12, or about 1.7 in (4.3 cm) of the 17 in (43.2 cm) circumference. Each shell stands 0.75 in (1.9 cm) tall.
Round 13 (Color B): Ch 1, sc in the first st, sk 2 sts, 7 dc in next st, sk 2 sts, sc in next st, repeat from * 8 more times, then sk 2 sts, 7 dc in next st, sk 2 sts, sl st to first sc. (10 sc + 10 shells of 7 dc = 80 sts)
This is a conversion round. Each repeat uses 6 stitches of Round 12 (1 sc + 2 skipped + 1 shell + 2 skipped) and produces 8 stitches (1 sc + 7 dc). Fasten off and weave in the end.
Why the math works: 60 sts ÷ 6 sts per repeat = exactly 10 shells. There’s no partial repeat and no gap at the join. Putting 7 dc into one stitch over a 6-stitch span adds fullness, which gives the rim its gentle ruffle. A 5 dc shell would lie flat instead. Ten shells also divide evenly by the two strap positions. With the markers 15 sts from the seam, each strap lands in the same spot within its shell repeat on both sides.
Final Blocking
- Weave in all ends inside the baskets, running them along the color rows they belong to.
- Lightly spray each basket with water until it’s damp but not soaked.
- Push a toilet roll, or a jar about 4.5 in (11.4 cm) across, into each basket to shape the walls.
- Pinch each shell into a rounded scallop and let it flare slightly outward.
- Lay the straps flat, pin them straight to 0.75 in (1.9 cm) wide, and leave them to dry.
- Let everything dry completely, about 12–24 hours.
- Hang the holder on the peg empty and check that the baskets hang level.
Final Quality-Control Checklist
- Each base measures 5.5 in (14.0 cm) across and lies flat
- Every wall round has 60 sts and every rim has 80 sts
- Pink puffs and cream puffs alternate, so the rows sit offset rather than stacked
- All color joins line up at the back
- Straps run in straight vertical lines on both sides
- The gaps between baskets are both 2 in (5.1 cm)
- Total hanging length is about 20.5 in (52.1 cm)
- Overlap ends are double-stitched and no ends are visible
Troubleshooting
The base cups upward: you’ve lost increases. Recount each round against 12 / 24 / 36 / 48 / 60.
The base ruffles: your tension is too loose. Go down a hook size for the base only.
The puffs lean or look flat: pull each loop up to a full dc height before closing the puff.
The walls flare outward: Round 6 wasn’t worked in BLO, or your wall rounds are loose. Rework Round 6 or tighten your tension.
The rim won’t close evenly: Round 12 doesn’t have exactly 60 sts. Recount before you start the shells.
The baskets tilt: the straps aren’t exactly 30 sts apart. Re-mark the positions and resew.
The straps stretch: add a fourth sc row, or use a smaller hook for the straps.
Care
Hand wash in cool water, press out the water in a towel, and dry the holder flat with rolls inside to keep the shape. Don’t wring or tumble dry it.

Final Notes
The measurements build on each other in this order:
– Gauge: 14 sc = 4 in (10.2 cm).
– Base: grows to 60 sts and 5.5 in (14.0 cm) across.
– Walls: stay at 60 sts and reach 2.25 in (5.7 cm).
– Rim: ten 7-dc shells add 0.75 in (1.9 cm), for a 3 in (7.6 cm) basket.
– Connector straps: 6 in (15.2 cm) straps with 2 in (5.1 cm) overlaps leave 2 in (5.1 cm) gaps.
– Hanging strap: 20 in (50.8 cm) long, it finishes the holder at about 20.5 in (52.1 cm).
If you check each stage as you go, the three tiers will come out even and hang straight.
Happy crocheting!