Bluebell Heart Toilet Paper Roll Holder Crochet Pattern

This hanging toilet paper holder keeps three spare rolls stacked neatly on a door or wall hook. A long cream backing strip carries three soft blue sleeves, and each sleeve wraps around one roll. Every sleeve has a raised blue heart on the front, and a small blue bow sits at the top below a cream hanging loop.

The palette is just two colors: a cozy cream for the strip and loop, and a medium cornflower blue for the sleeves, hearts, and bow. Everything is worked in single crochet, so the fabric is dense, firm, and tidy. The hearts and bow are the same blue as the sleeves, so they show up as texture rather than contrast.

This pattern uses US crochet terms. The finished backing strip measures 4.5 in (11.4 cm) wide by 18.5 in (47.0 cm) long. Each sleeve is 4 in (10.2 cm) wide by 14 in (35.6 cm) around.

Construction is simple. You crochet one flat strip in rows and add a two-round border. Then you crochet three flat sleeve rectangles, sew a heart to each, and seam each one into a ring. The rings are sewn stitch-to-stitch across the strip, and the bow and loop go on last.

Finished Size and Construction

  • Finished size (strip): 4.5 in x 18.5 in (11.4 cm x 47.0 cm)
  • Skill level: Easy
  • Terminology: US crochet terms
  • Yarn weight: Worsted weight (#4), cotton or cotton blend
  • Hook: 5.0 mm (H-8)
  • Number of pieces: 9 (1 strip, 3 sleeves, 3 hearts, 1 bow, 1 hanging loop)
  • Layout: 3 sleeves stacked vertically on 1 strip, bow and loop at the top
  • Sleeve size: 4 in x 14 in (10.2 cm x 35.6 cm) flat, then seamed into a ring
  • Strip size before border: 4 in x 18 in (10.2 cm x 45.7 cm)
  • Border depth: 0.25 in (0.6 cm) on every side

Materials

Choose a smooth worsted cotton. Cotton holds its shape around the rolls, does not shed, and handles bathroom humidity well. Acrylic also works, but the sleeves will be stretchier, so check the ring fit on a real roll.

  • Cream: 70 g, about 112 m (strip, border, hanging loop)
  • Blue: 150 g, about 240 m (3 sleeves, 3 hearts, bow)

These amounts include a margin of roughly 20 percent for your swatch and seaming tails.

Tools:
– 5.0 mm (H-8) crochet hook
– Tapestry needle
– Stitch markers (at least 4)
– Scissors
– Measuring tape
– Rust-proof pins for blocking
– 3 standard toilet paper rolls for fit testing

Abbreviations (US Terms)

  • ch – chain
  • sl st – slip stitch
  • sc – single crochet
  • sc2tog – single crochet 2 together (insert in next st, pull up a loop, insert in following st, pull up a loop, yarn over and pull through all 3 loops)
  • BLO – back loop only
  • st(s) – stitch(es)
  • rnd – round

Special technique – BLO slip stitch cord: Insert the hook into the back loop only of the next stitch, yarn over, and pull through the stitch and the loop on the hook. Keep it loose. The unused front loops stay on top and form a raised, rope-like outline.

Gauge and Checkpoints

Gauge: 16 sc and 18 rows = 4 in (10.2 cm) in sc worked in rows.

Make one sleeve before anything else. It works as your real swatch and tells you whether a roll will fit.

Checkpoints:
– Sleeve after Row 18: 4 in (10.2 cm) long and 4 in (10.2 cm) wide.
– Sleeve after Row 63: 14 in (35.6 cm) long.
– Heart after Row 5: 11 sts, about 2.75 in (7.0 cm) wide.
– Strip after Row 45: 10 in (25.4 cm) long.
– Strip after Row 81: 18 in (45.7 cm) long and 4 in (10.2 cm) wide.

If your piece is too big: Go down 0.5 mm in hook size. A loose sleeve lets the rolls slide out.

If your piece is too small: Go up 0.5 mm. A tight sleeve squashes the roll and pulls the strip out of line.

If only the length is off, change the row count, not the stitch count. The strip must stay 16 sts wide so that each sleeve (also 16 sts) joins stitch-to-stitch.

Blue crocheted square with a heart design on cream-colored crochet background.

Sleeve (Make 3, Blue)

Each sleeve is a flat rectangle that later becomes a ring.

Foundation: Ch 17.

Row 1: Sc in 2nd ch from hook and in each ch across, turn. (16 sc)

Rows 2–63: Ch 1 (does not count as a st), sc in each st across, turn. (16 sc)

Do not fasten off.

Edging rnd: Ch 1, then sl st in each st and in each row end around the whole rectangle: 16 sts along each short end and 63 row ends along each long side. Join with sl st to the first sl st. (16 + 63 + 16 + 63 = 158 sl sts)

Fasten off and leave a 16 in (40.6 cm) tail for seaming the ring. The slip stitch edging gives the sleeve a neat, chain-like rim without changing its size.

Sleeve size: 4 in x 14 in (10.2 cm x 35.6 cm).

Heart Appliqué (Make 3, Blue)

The heart is worked in rows from the bottom point up, then outlined.

Foundation: Ch 2.

Row 1: 3 sc in 2nd ch from hook, turn. (3 sc)

Row 2: Ch 1, 2 sc in first st, sc in next st, 2 sc in last st, turn. (5 sc)

Row 3: Ch 1, 2 sc in first st, sc in next 3 sts, 2 sc in last st, turn. (7 sc)

Row 4: Ch 1, 2 sc in first st, sc in next 5 sts, 2 sc in last st, turn. (9 sc)

Row 5: Ch 1, 2 sc in first st, sc in next 7 sts, 2 sc in last st, turn. (11 sc)

Rows 6–7: Ch 1, sc in each st across, turn. (11 sc)

First lobe:

Row 8: Ch 1, sc in next 5 sts, turn. Leave the remaining 6 sts unworked. (5 sc)

Row 9: Ch 1, sc2tog, sc in next st, sc2tog. (3 sts) Fasten off.

Second lobe: Skip the 6th st of Row 7 (this is the center dip). Join yarn in the 7th st.

Row 8: Ch 1, sc in same st and in next 4 sts, turn. (5 sc)

Row 9: Ch 1, sc2tog, sc in next st, sc2tog. (3 sts) Do not fasten off.

Outline Rnd 1: Work around the whole heart:
– 2 sc in the row ends down the inner side of the second lobe
– Sl st in the skipped center st of Row 7
– 2 sc in the row ends up the inner side of the first lobe
– Across the first lobe top: 2 sc in first st, sc in next st, 2 sc in last st (5 sc)
– 2 sc in the row ends down the outer side of the first lobe
– 7 sc in the row ends of Rows 7–1
– 3 sc in the bottom point (the foundation ch)
– 7 sc in the row ends of Rows 1–7
– 2 sc in the row ends up the outer side of the second lobe
– Across the second lobe top: 2 sc in first st, sc in next st, 2 sc in last st (5 sc)
– Join with sl st to the first sc.

Count: 2 + 2 + 5 + 2 + 7 + 3 + 7 + 2 + 5 = 35 sc, plus 1 sl st in the dip. (36 sts)

Outline Rnd 2: Work the BLO slip stitch cord in each st around. (36 sl sts) Fasten off and leave a 12 in (30.5 cm) tail.

Heart size: About 3.25 in (8.3 cm) wide and 2.5 in (6.4 cm) tall.

Attach: Lay a sleeve flat. Center the heart across the 16 sts and over about Rows 27–37, so its middle sits on Row 32, the middle row of the sleeve. Sew it down with small stitches through the inner edge of Outline Rnd 1, so the cord from Rnd 2 stays raised.

Backing Strip (Make 1, Cream)

Foundation: Ch 17.

Row 1: Sc in 2nd ch from hook and in each ch across, turn. (16 sc)

Rows 2–81: Ch 1, sc in each st across, turn. (16 sc)

Do not fasten off. Go straight on to the Border section below.

Strip size before border: 4 in x 18 in (10.2 cm x 45.7 cm).

Bow (Make 1, Blue)

Foundation: Ch 15.

Row 1: Sc in 2nd ch from hook and in each ch across, turn. (14 sc)

Rows 2–9: Ch 1, sc in each st across, turn. (14 sc)

Fasten off and leave a 24 in (61.0 cm) tail. Pinch the rectangle at its center and wrap the tail 10 times around the pinch to form the knot. Secure it at the back.

Bow size: 3.5 in x 2 in (8.9 cm x 5.1 cm) before pinching.

Hanging Loop (Make 1, Cream)

Ch 30, about 6 in (15.2 cm). Fasten off and leave a tail at both ends. Folded in half, it makes a 3 in (7.6 cm) loop.

Make All Pieces

  • Cream: 1 backing strip, 1 hanging loop
  • Blue: 3 sleeves, 3 hearts, 1 bow

Layout (front view, top to bottom):

        (loop)
   +--------------+
   |    [ BOW ]   |   Rows 64-81 (top 4 in / 10.2 cm)
   |--------------|   <- Sleeve 1 seam on Row 63
   | (  HEART 1 ) |
   |--------------|   <- Sleeve 2 seam on Row 41
   | (  HEART 2 ) |
   |--------------|   <- Sleeve 3 seam on Row 19
   | (  HEART 3 ) |
   +--------------+   Rows 1-18

Joining

Close each sleeve: Fold the sleeve with the heart facing out, so Row 1 meets Row 63. Whipstitch the two short ends together through matching sts, 16 sts to 16 sts. You now have a ring 14 in (35.6 cm) around and 4 in (10.2 cm) wide.

Sew the sleeves to the strip: Turn each ring so the seam is at the back and the heart faces forward. Lay the seam across the strip on its row: Row 63 for the top sleeve, Row 41 for the middle sleeve, and Row 19 for the bottom sleeve. The seams are 22 rows apart, about 4.9 in (12.4 cm).

Sew stitch-to-stitch: each of the 16 seam sts goes to one of the strip’s 16 sts on that row. The widths match exactly, so there is no easing and nothing to add. Sew back through every stitch a second time for strength, because this line carries the weight of a roll.

Tension: Pull each stitch snug but not tight. If the strip puckers across its width, the seam is too tight.

Size checkpoint: The top seam should sit 4 in (10.2 cm) below the top of the strip body (Rows 64–81). The bottom seam should sit 4 in (10.2 cm) above the bottom of the body (Rows 1–18).

Sew the bow to the center of the top section, about 2 in (5.1 cm) below the top edge. Fold the hanging loop and sew both ends to the back of the strip at the top center.

Border (Cream, Backing Strip)

Work the border right after Row 81, before you attach the sleeves.

Border gauge: Same as the body, 16 sc = 4 in (10.2 cm). One rnd of sc plus one rnd of sl st adds 0.25 in (0.6 cm) on each side.

Rnd 1: Ch 1. Along the top of Row 81: 3 sc in first st (corner), sc in next 14 sts, 3 sc in last st (corner). Down the long side: sc in each row end of Rows 80–2. (79 sc) Along the foundation ch: 3 sc in first ch (corner), sc in next 14 ch, 3 sc in last ch (corner). Up the other long side: sc in each row end of Rows 2–80. (79 sc) Join with sl st to the first sc.

Rnd 1 total: 12 corner sc + 14 + 14 + 79 + 79 = 198 sc.

Per side (corner center to corner center, including both corner sts):
– Short sides: 1 + 1 + 14 + 1 + 1 = 18 sts each
– Long sides: 1 + 1 + 79 + 1 + 1 = 83 sts each
– Check: (18 x 2) + (83 x 2) − 4 shared corners = 198

Rnd 2: Ch 1, sl st loosely in each st around. Join. (198 sl sts) Fasten off.

Why the math works: The strip is a single piece, so each short side starts from its own 16 sts. Of those, 14 are worked once and the 2 end sts become corner groups, so no stitch is counted twice. The long sides use the 79 inner row ends (Rows 2–80), because the corner groups already cover Rows 1 and 81. That is 1 sc per row end, the standard ratio for single crochet fabric, so the edges lie flat.

Finished strip: 4 in + 0.25 in + 0.25 in = 4.5 in (11.4 cm) wide, and 18 in + 0.25 in + 0.25 in = 18.5 in (47.0 cm) long.

Final Blocking

  1. Weave in all ends except any seaming tails you still need.
  2. Lightly mist the strip with water, or soak it and press out the water in a towel.
  3. Pin it flat to 4.5 in x 18.5 in (11.4 cm x 47.0 cm), keeping the long edges straight.
  4. Gently steam the sleeves with a roll inside each one so they hold a round shape.
  5. Hold the iron above the hearts and never press on them, so the raised cord stays round.
  6. Let everything dry completely before hanging.

Final Quality-Control Checklist

  • The strip measures 4.5 in x 18.5 in (11.4 cm x 47.0 cm).
  • Border Rnd 1 has 198 sts and the corners are square.
  • Each sleeve is 16 sts x 63 rows, 4 in x 14 in (10.2 cm x 35.6 cm).
  • Each heart has 36 sts in its outline and is centered on Row 32.
  • The sleeve seams sit on strip Rows 63, 41, and 19.
  • Each sleeve holds a roll snugly without crushing it.
  • The bow is centered and the loop is secure on the back.
  • All ends are woven in for at least 1 in (2.5 cm).

Troubleshooting

Rolls slip out of the sleeves. Your gauge is loose or your rolls are small. Remake the sleeve with 3 to 4 fewer rows.

Rolls will not fit. Add 2 to 4 rows to the sleeve. Each extra row adds about 0.22 in (0.6 cm) to the circumference.

The strip twists or curls. Block it again and check that every row has exactly 16 sts.

The border ruffles. You probably added extra sc on the long sides. Rnd 1 needs exactly 79 sts between the corner groups.

The heart cord looks flat. Work Outline Rnd 2 more loosely, or go up one hook size for that round only.

The strip sags at a seam. Sew the seam line a second time, catching both loops of every strip stitch.

Care

Hand wash in cool water with mild soap, press out the water, and dry flat. Reshape the sleeves around rolls while they are still damp.

Crocheted toilet paper holder with blue heart-patterned sleeves and cream backing hanging on bathroom wall.

Final Notes

The measurement chain is short. A gauge of 16 sc gives a 4 in (10.2 cm) wide strip and sleeves that match it stitch-to-stitch. 63 rows give a 14 in (35.6 cm) sleeve ring, and 81 rows give an 18 in (45.7 cm) strip. The 198-stitch border brings the strip to 4.5 in x 18.5 in (11.4 cm x 47.0 cm). Check each number as you go, and the holder will hang straight and hold three rolls neatly.

Happy crocheting!

Leave a Comment