Tulip Tiers Hanging Toilet Paper Holder Crochet Pattern

This pattern makes a three-tier hanging toilet paper holder. It has three round cream baskets joined by two braided cream straps that meet in a peak over a wall peg. Each basket holds one standard roll upright. The roll stands taller than the wall, so you can grab it easily.

The color bands give it a cottage-garden look. Each basket has a row of magenta tulip puffs, a leaf-green round, a row of cream puffs, and a crown of pink scallop shells under a corded cream rim. The base is a simple double-crochet circle, so all the color sits on the wall where it shows.

This pattern uses US crochet terms. Each basket measures 5 in (12.7 cm) across and 3.25 in (8.3 cm) tall. The holder measures 20 in (50.8 cm) from the peak to the bottom of the lowest basket.

Construction is simple. You work each basket in one piece, from the base up the wall in joined rounds. Then you crochet two straps and whipstitch them up opposite sides of the stacked baskets. Finally you overlap the strap tails to form the hanging peak.

Finished Size and Construction

  • Finished size: 5 in (12.7 cm) wide × 20 in (50.8 cm) tall, peak to bottom
  • Skill level: Easy–Intermediate
  • Terminology: US
  • Yarn weight: Worsted (#4), 100% cotton
  • Hooks: 5.0 mm (H-8) for baskets, 4.5 mm (7) for straps
  • Number of pieces: 5 (3 baskets + 2 straps)
  • Layout: 1 column of 3 baskets, stacked vertically with 2 in (5.1 cm) gaps
  • Piece size: each basket is 5 in (12.7 cm) across × 3.25 in (8.3 cm) tall
  • Size before border: basket wall is 3 in (7.6 cm) tall before the rim round
  • Border depth: 0.25 in (0.6 cm), one round of reverse single crochet

Materials

Use a firm, smooth cotton or cotton blend. Cotton holds the basket shape, shows the puffs and shells clearly, and copes with bathroom humidity. Avoid fuzzy acrylic, which blurs the tulip texture.

  • Cream: 140 g / 280 m (306 yd)
  • Magenta pink: 35 g / 70 m (77 yd)
  • Leaf green: 20 g / 40 m (44 yd)

These quantities include a margin of about 25% for gauge swatches and color-change tails.

Tools:
– 5.0 mm (H-8) and 4.5 mm (7) crochet hooks
– Tapestry needle
– 4 stitch markers
– Measuring tape
– Blocking pins and a spray bottle
– A standard toilet roll, used as a form while blocking

Abbreviations (US Terms)

  • ch – chain
  • sl st – slip stitch
  • sc – single crochet
  • dc – double crochet
  • BLO – back loop only
  • rev sc – reverse single crochet (crab stitch), worked left to right
  • st(s) – stitch(es)
  • sk – skip
  • rep – repeat

Special stitch – Puff (tulip): (Yarn over, insert hook in st, yarn over, pull up a loop to the height of a hdc) 3 times, then yarn over and pull through all 7 loops on the hook. Ch 1 to lock it. The locking ch 1 does not count as a stitch, and you skip it on the next round. One puff counts as 1 stitch.

Special stitch – Shell: 5 dc in the same stitch.

Gauge and Checkpoints

Basket gauge (5.0 mm hook):
– 15 dc × 8 rounds = 4 in (10.2 cm)
– 15 sc × 18 rounds = 4 in (10.2 cm)

Strap gauge (4.5 mm hook): 16 sc = 4 in (10.2 cm) along the strap.

Make one complete basket before starting the others. It is your gauge swatch. Check it at these points:

  1. After Base Round 5: the base is 5 in (12.7 cm) across.
  2. After Wall Round 9: the wall is 3 in (7.6 cm) tall, and the circumference is 16 in (40.6 cm).
  3. After Wall Round 10: the wall is 3.25 in (8.3 cm) tall.
  4. Fit test: a toilet roll, about 4.5 in (11.4 cm) across, drops in with a little room to spare.

If your basket is too big, go down half a hook size. If it is too small, or the roll sticks, go up half a size. Change the hook, not the stitch count, because the colorwork repeats depend on exactly 60 stitches.

Crocheted storage baskets stacked in cream, sage green, and magenta with textured puffed-stitch edging details.

Basket (Make 3)

Base

Use cream and the 5.0 mm hook. Join every round with a sl st to the top of the first stitch. The beginning ch 3 counts as 1 dc.

Round 1: Make a magic ring. Ch 3, then work 11 dc in the ring. Pull the ring partly closed, leaving a small center hole. (12 sts)

Round 2: Ch 3, 1 dc in the same st, then 2 dc in each st around. (24 sts)

Round 3: Ch 3, 2 dc in the next st, 1 dc in the next st, 2 dc in the next st; rep from * around. (36 sts)

Round 4: Ch 3, 1 dc in the next st, 2 dc in the next st, 1 dc in each of the next 2 sts, 2 dc in the next st; rep from * around. (48 sts)

Round 5: Ch 3, 1 dc in each of the next 2 sts, 2 dc in the next st, 1 dc in each of the next 3 sts, 2 dc in the next st; rep from * around. (60 sts)

Checkpoint: the circle is flat and 5 in (12.7 cm) across. If it cups, your tension is tight. If it ruffles, it is loose.

Wall

From here on, use ch 1 at the start of each round. It does not count as a stitch. Join each round to the first sc. To change color, work the last yarn over of the final stitch of the round in the new color, then cut the old color, leaving a 4 in (10.2 cm) tail.

Round 1 (cream): Ch 1, sc in the BLO of each st around. (60 sc) The unused front loops leave a crisp ridge where the base turns up into the wall.

Round 2 (cream): Ch 1, sc in each st around. (60 sc) Change to pink.

Round 3 (pink, tulip round): Ch 1, sc in the next st, puff in the next st, sc in the next st; rep from * 20 times. (60 sts: 40 sc + 20 puffs) Change to green.

Round 4 (green): Ch 1, sc in each st around, skipping the locking ch 1 of each puff. (60 sc) Change to cream.

Round 5 (cream, tulip round): Ch 1, puff in the next st, sc in each of the next 2 sts; rep from * 20 times. (60 sts: 20 puffs + 40 sc) These cream puffs sit one stitch over from the pink ones, so the two rows look staggered.

Rounds 6–7 (cream): Ch 1, sc in each st around, skipping the locking chains on Round 6. (60 sc each round) At the end of Round 7, change to pink.

Round 8 (pink, shell round): Ch 1, sc in the first st, sk 2 sts, shell in the next st, sk 2 sts, sc in the next st. Rep from * around. End the last repeat with sk 2 sts and join to the first sc instead of working a final sc. (60 sts: 10 shells × 5 dc + 10 sc) Change to cream.

Round 9 (cream): Ch 1, sc in each sc and each dc around. (60 sc)

Checkpoint: the wall is 3 in (7.6 cm) tall, and the circumference is 16 in (40.6 cm). Do not fasten off. Round 10 is the rim border, below.

Weave in all color-change tails on the inside. Weave each one within its own color band so nothing shows through.

Make All Pieces

Baskets: Make 3 baskets in total. Each basket uses about 37 g cream, 9 g pink, and 5 g green, including the rim.

Straps (make 2): Use cream and the 4.5 mm hook.

  • Row 1: Ch 89, sc in the 2nd ch from the hook and in each ch across. (88 sc)
  • Row 2: Ch 1, do not turn. Rev sc in each st across. (88 rev sc) Fasten off, leaving a 30 in (76.2 cm) tail for sewing.

Each strap is 22 in (55.9 cm) long and 0.6 in (1.5 cm) wide. The reverse single crochet gives it the twisted, braided-cord look.

Strap stitch map (88 sts):

  • Sts 1–13: bottom basket, 3.25 in (8.3 cm)
  • Sts 14–21: lower gap, 2 in (5.1 cm)
  • Sts 22–34: middle basket, 3.25 in (8.3 cm)
  • Sts 35–42: upper gap, 2 in (5.1 cm)
  • Sts 43–55: top basket, 3.25 in (8.3 cm)
  • Sts 56–82: triangle leg, 6.75 in (17.1 cm)
  • Sts 83–88: peak overlap, 1.5 in (3.8 cm)

Check the total: 13 + 8 + 13 + 8 + 13 + 27 + 6 = 88 sts.

Put markers at sts 13, 21, 34, and 42 on each strap.

Layout (front view):

        /\        ← peak (overlap, sts 83–88)
       /  \       ← legs (sts 56–82)
  |[ BASKET 1 ]|  ← sts 43–55
  |            |  ← gap (sts 35–42)
  |[ BASKET 2 ]|  ← sts 22–34
  |            |  ← gap (sts 14–21)
  |[ BASKET 3 ]|  ← sts 1–13
  S1          S2

Joining

Method: Whipstitch with the cream strap tail. Sew each strap vertically to the outside of the basket walls, catching both long edges of the strap.

Placement: On each basket, mark Wall Round 1, st 1, and Wall Round 1, st 31. These points split the 60-stitch round into two equal halves of 30 sts, so the straps sit exactly opposite each other. Line up the wall seam (st 1) with Strap 1 to hide the joins.

Stitch-to-stitch logic:

  1. Line up strap st 1 with the base ridge of the bottom basket, and strap st 13 with its rim. The 13 strap stitches cover the 3.25 in (8.3 cm) wall, which is 10 rounds. Sew roughly 4 strap stitches to every 3 wall rounds.
  2. Leave sts 14–21 free.
  3. Sew sts 22–34 to the middle basket the same way.
  4. Leave sts 35–42 free.
  5. Sew sts 43–55 to the top basket.
  6. Repeat steps 1–5 for Strap 2 at st 31.

Tension: Sew snugly, but don’t pull so hard that the wall puckers. The straps carry all the weight, so take one extra pass at the base ridge and the rim of each basket.

Peak: Bring the two free legs together over the center. Overlap sts 83–88 of both straps and sew them flat through both layers. This makes a solid 1.5 in (3.8 cm) peak.

Size checkpoint: Hang the holder empty. The bottom of the lowest basket should be 13.75 in (34.9 cm) below the top basket’s rim, and 20 in (50.8 cm) below the peak. The triangle should rise 6.25 in (15.9 cm) above the top rim.

Border

The border is the corded rim worked as Wall Round 10 on each basket.

Border gauge: 15 rev sc = 4 in (10.2 cm), the same as single crochet.

Round 10 (cream, rim): Ch 1, do not turn. Rev sc in each st around, working left to right. (60 rev sc) Join with a sl st and fasten off.

For a round basket, the “sides” are the two halves between the strap points:

  • Front half (sts 1–30): 30 rev sc
  • Back half (sts 31–60): 30 rev sc
  • Total: 30 + 30 = 60. No corners, no extra stitches.

Why the math works: All the patterned rounds use 60 stitches.

  • The 3-stitch puff repeat divides evenly: 60 ÷ 3 = 20 puffs.
  • The 6-stitch shell repeat divides evenly: 60 ÷ 6 = 10 shells.
  • The 5-stitch increase rhythm of the base also lands on 60 at Round 5.

The rim works 1 stitch into each existing stitch, adding nothing and removing nothing. That keeps the 16 in (40.6 cm) circumference, so the rim doesn’t flare or pull in. Each half is exactly 30 sts, so the straps at st 1 and st 31 always land on matching points.

Final Blocking

  1. Finish the full assembly before blocking.
  2. Spray each basket lightly until damp. Don’t soak cotton that’s already been sewn.
  3. Push a toilet roll wrapped in plastic into each basket. Smooth the wall upright against it, and press the base flat.
  4. Pinch each shell so it fans evenly. Roll the puffs between your fingers to round them.
  5. Lay the holder flat with the straps straight. Pin the gaps to 2 in (5.1 cm) and the overall length to 20 in (50.8 cm).
  6. Let it dry completely, at least 24 hours, before removing the rolls and pins.

Final Quality-Control Checklist

  • Each base is flat and 5 in (12.7 cm) across, with a tidy center hole.
  • Each wall is 3.25 in (8.3 cm) tall and stands upright.
  • Each basket has 20 pink puffs, 20 cream puffs, and 10 pink shells.
  • No color-change tails show on the outside.
  • The straps sit exactly opposite each other, at st 1 and st 31.
  • Both gaps measure 2 in (5.1 cm).
  • The peak is 6.25 in (15.9 cm) above the top rim, and the triangle is symmetrical.
  • The overall length is 20 in (50.8 cm), and the holder hangs straight with all three rolls in.

Troubleshooting

Base cups like a bowl: Your tension is tight. Go up a hook size for the base only, or loosen your dc.

Base ruffles: Your tension is loose. Go down a hook size for the base.

Wall leans outward: You probably skipped the BLO on Wall Round 1. Rip back and rework it.

Stitch count drifts after puff rounds: You worked into the locking ch 1. Skip it every time.

Shells crowd or gap: Recount Round 9 to make sure it has 60 sts, and rework Round 8 from a correct base.

Holder hangs crooked: One strap is sewn higher than the other. Re-sew using the marked strap stitches.

Baskets sag under rolls: Reinforce the strap seams at each base ridge, or use a firmer cotton.

Care

Hand wash cool with mild soap, press out the water in a towel, and reshape the baskets over rolls to dry. Do not tumble dry.

Crocheted three-tier toilet paper holder with pink flowers and green leaves hanging in a sage-green bathroom.

Final Notes

Here is the measurement chain:

  1. A 60-stitch base 5 in (12.7 cm) across sets a 16 in (40.6 cm) circumference.
  2. Nine wall rounds bring the wall to 3 in (7.6 cm).
  3. The rev sc rim adds 0.25 in (0.6 cm), for a 3.25 in (8.3 cm) wall.
  4. Three baskets and two 2 in (5.1 cm) gaps make up 13.75 in (34.9 cm) of strap.
  5. A 6.25 in (15.9 cm) triangle brings the total to 20 in (50.8 cm).

Check each link as you go and the holder will hang straight.

Happy crocheting!

Leave a Comment