Rosy Bobble Heart Plastic Bag Holder Crochet Pattern

This heart-shaped bag holder hangs on a hook and keeps grocery bags in one place. Stuff bags in through the wide top opening, then pull them out one at a time through the framed hole near the point.

The front is covered in coral bobbles. A smaller bobble heart outlined in burgundy sits in the center, and the hole has a coral and burgundy frame. A burgundy rim edges the opening, and a ribbed burgundy tab loops through a wooden ring for hanging.

The pattern uses US terms. The finished holder is about 10 in (25.4 cm) wide, 11 in (27.9 cm) tall and 2 in (5.1 cm) deep, not counting the tab.

You will make five parts: a bobble front panel with a slit for the hole, a plain back panel, a bobble gusset, a small appliqué heart and a hole frame. Sew the appliqué and frame to the front, join both panels to the gusset, then add the rim and tab.

Finished Size and Construction

  • Finished size: about 10 in (25.4 cm) wide x 11 in (27.9 cm) tall x 2 in (5.1 cm) deep
  • Skill level: Intermediate
  • Terminology: US
  • Yarn weight: Worsted (#4) cotton
  • Hook: 4.5 mm (US 7)
  • Number of pieces: 5 crocheted parts, plus a tab worked from the rim
  • Layout: front and back panels joined by one gusset strip around the sides and point
  • Panel size before edge round: 33 sts x 39 rows, about 9.4 in (23.9 cm) x 9.75 in (24.8 cm)
  • Panel size after edge round: about 10 in (25.4 cm) x 10.25 in (26.0 cm)
  • Border (rim) depth: 3 rounds, about 0.75 in (1.9 cm)

Materials

Use a smooth, firm worsted cotton. Cotton holds the heart shape and keeps the bobbles crisp, and it won’t stretch when the holder is full.

  • Coral (main color): 320 g, about 580 m
  • Burgundy (contrast): 70 g, about 125 m
  • 4.5 mm (US 7) hook
  • Wooden ring, 2 in (5.1 cm) across
  • Tapestry needle, 6 locking stitch markers, scissors, tape measure, rustproof pins

Bobbles use a lot of yarn. These amounts include a margin of about 15 percent.

Abbreviations (US Terms)

  • ch – chain
  • sc – single crochet
  • sl st – slip stitch
  • sc2tog / sc3tog – single crochet 2 / 3 together
  • BLO – back loop only
  • inc – 2 sc in the same stitch
  • st(s) – stitch(es)
  • RS / WS – right side / wrong side

Bobble (bo): *Yarn over, insert hook in st, yarn over and pull up a loop, yarn over and draw through 2 loops; repeat from * 4 more times in the same st (6 loops on hook). Yarn over and draw through all 6 loops. Each bobble counts as 1 st.

Bobbles are worked on WS rows so they pop out on the RS.

Gauge and Checkpoints

Gauge: 14 sts and 16 rows = 4 in (10.2 cm) in bobble pattern (sc rows alternating with bobble rows).

Make the back panel first. It has the same counts as the front but no bobbles, so it works as your test piece. Check the front panel at these points:

  • After Row 8: 17 sts, about 4.9 in (12.4 cm) wide and 2 in (5.1 cm) tall
  • After Row 24: 33 sts, about 9.4 in (23.9 cm) wide and 6 in (15.2 cm) tall
  • After Row 39: 9.75 in (24.8 cm) tall from point to lobe tops
  • After the edge round: 10 in (25.4 cm) x 10.25 in (26.0 cm)

Too big? Switch to a 4 mm hook. Too small? Switch to a 5 mm hook. Don’t change any stitch counts: the gusset, rim and frame are all matched to them.

Coral pink crocheted fabric featuring a deep burgundy heart with textured popcorn stitches.

Bobble Row Rule

From Row 4 on, every even row is a WS bobble row. Work the first 2 and last 2 sts of the row as sc, including any increase or decrease there. Across the middle, alternate bo and sc. Start with bo on Rows 4, 8, 12 and so on, and with sc on Rows 6, 10, 14 and so on, so the bobbles stagger. If 1 st is left over before the edge sts, work it as sc. Odd rows (RS) are plain sc.

Front Panel (Coral)

Row 1 (RS): Ch 4, sc in 2nd ch from hook and next 2 ch, turn. (3 sts)

Rows 2–8: Ch 1, inc in first st, sc to last st, inc in last st, turn. Use the bobble rule on Rows 4, 6 and 8. Each row has 2 more sts than the one before. (Row 8: 17 sts)

Row 9: Ch 1, inc, sc to last st, inc, turn. (19 sts)

Row 10: Ch 1, work even. (19 sts)

Row 11 (slit row): Ch 1, inc in first st, sc in next 3 sts, ch 11, skip next 11 sts, sc in next 3 sts, inc in last st, turn. (21 sts: 5 sc + 11 ch + 5 sc)

Row 12: Ch 1, work even, working into the back bump of each slit ch. (21 sts)

Rows 13–24: Increase at both ends on odd rows, work even on even rows. (Row 13: 23 sts, Row 15: 25, Row 17: 27, Row 19: 29, Row 21: 31, Row 23: 33, Row 24: 33)

Rows 25–30: Ch 1, work even. (33 sts)

First Lobe

Row 31: Ch 1, sc in first 16 sts only, turn. (16 sts)

Row 32: Work even. (16 sts)

Row 33: Ch 1, sc2tog, sc to last 2 sts, sc2tog, turn. (14 sts)

Row 34: Work even. (14 sts)

Rows 35–38: Decrease at both ends every row. (Row 35: 12 sts, Row 36: 10, Row 37: 8, Row 38: 6)

Row 39: Work even. (6 sts) Fasten off.

Second Lobe

Skip the center (17th) st of Row 30. Join coral in the next st and work Rows 31–39 over the last 16 sts. Fasten off.

Edge Round (RS)

Join coral in the skipped center st. Work 1 sc in every st and every row end around the heart, with 3 sc in the center foundation ch at the point. Join with a sl st and fasten off.

Counts by section: dip 1, lobe inner side 9, lobe top 6, lobe outer side 9, body side 30 (Rows 1–30), point 5 (1 + 3 + 1), body side 30, lobe outer side 9, lobe top 6, lobe inner side 9. Total: 114 sts.

Mark the first and last st of the gusset section, which runs from one lobe outer side to the other through the point: 9 + 30 + 5 + 30 + 9 = 83 sts. The opening section is the remaining 6 + 9 + 1 + 9 + 6 = 31 sts.

Back Panel (Coral)

Work as for the front panel, but sc in place of every bobble. On Row 11, sc across with the increases and no slit. The edge round gives the same 114 sts: 83 gusset sts and 31 opening sts. Mark it the same way.

Gusset (Coral)

Foundation: Ch 84.

Row 1 (RS): Sc in 2nd ch from hook and each ch across, turn. (83 sts)

Row 2 (WS): Ch 1, sc in first 2 sts, bo, sc 39 times, sc in last 3 sts, turn. (83 sts: 2 + 78 + 3)

Row 3: Ch 1, sc in each st, turn. (83 sts)

Row 4: Ch 1, sc in first 3 sts, bo, sc 39 times, sc in last 2 sts, turn. (83 sts: 3 + 78 + 2)

Rows 5–7: Repeat Rows 3, 2 and 3. Fasten off.

The gusset measures about 23.7 in (60.2 cm) x 1.75 in (4.4 cm). Each long edge has 83 sts, which matches each panel’s gusset section.

Appliqué Heart

With coral:

Row 1 (RS): Ch 4, sc in 2nd ch from hook and next 2 ch, turn. (3 sts)

Row 2: Ch 1, inc, sc, inc, turn. (5 sts)

Row 3: Ch 1, inc, sc in next 3, inc, turn. (7 sts)

Row 4: Ch 1, inc, bo, sc twice, bo, inc, turn. (9 sts)

Row 5: Ch 1, inc, sc in next 7, inc, turn. (11 sts)

Row 6: Ch 1, inc, sc, bo, sc 4 times, inc, turn. (13 sts)

Row 7: Ch 1, sc in each st, turn. (13 sts)

Lobes: Work each lobe over 6 sts. Skip the center st of Row 7 between the two lobes.

  • Lobe Row 1: Ch 1, sc, bo, sc twice, sc, turn. (6 sts)
  • Lobe Row 2: Ch 1, sc2tog, sc 2, sc2tog, turn. (4 sts)
  • Lobe Row 3: Ch 1, sc, bo, sc, sc. (4 sts) Fasten off.

Width across Row 7 is about 3.7 in (9.4 cm).

Outline (burgundy):

Rnd 1: Join at the skipped center st. Work 1 sc in every st and row end, with 3 sc in the center foundation ch. By section: dip 1, lobe inner side 3, lobe top 4, lobe outer side 3, side 7, point 5, side 7, lobe outer side 3, lobe top 4, lobe inner side 3. Join. (40 sts)

Rnd 2: Ch 1, sc around, with these changes: 3 sc in the point’s center st (+2), sc3tog centered on the dip (–2), and 2 sc in the first and last st of each lobe top (+4). Join and fasten off, leaving a long tail. (44 sts)

The finished appliqué is about 4.5 in (11.4 cm) wide x 3.5 in (8.9 cm) tall.

Hole Frame

Foundation: With coral, ch 22. Join into a ring without twisting.

Rnd 1: Ch 1, sc in each ch, join. (22 sts)

Rnd 2: Change to burgundy. Ch 1, inc, sc 11 times, join. (33 sts) Fasten off, leaving a long tail.

The opening is about 2 in (5.1 cm) across. The outer edge is about 3 in (7.6 cm) across.

Make All Pieces

  • Coral: 1 front panel, 1 back panel, 1 gusset
  • Coral + burgundy: 1 appliqué heart, 1 hole frame
  • Burgundy: rim and tab, worked directly on the assembled holder

Front face layout:

[ lobe ]  dip  [ lobe ]
   [ appliqué heart ]     Rows 17-30
     ( hole frame )       over Row 11 slit
          point

Pin the frame over the slit and stretch the slit into a circle. Sew Rnd 1 of the frame to the slit edges, 1 frame st to 1 slit st: 11 sts along the chain edge and 11 along the skipped sts of Row 10, for 22 in total. Tack down the burgundy outer edge. Center the appliqué between the lobes, with its point near Row 17 and its lobe tops near Row 30. Whipstitch it in place around the outline.

Joining

Method: Hold the pieces RS together and sl st through both layers, so the seam ends up inside.

Line up the first marked st of the front panel’s gusset section with the first st of the gusset’s foundation edge. With coral, sl st 1 st to 1 st: 83 panel sts to 83 gusset sts. Fasten off. Join the back panel to the gusset’s Row 7 edge the same way, 83 sts to 83 sts. Turn the holder RS out.

Tension: Keep the slip stitches as loose as your sc. If the seam is tight, the point will pucker. You can switch to a 5 mm hook for the seams.

Checkpoint: The pouch measures 10 in (25.4 cm) wide and about 2 in (5.1 cm) deep.

Border (Rim and Tab)

Border gauge: 14 sc = 4 in (10.2 cm), the same as the body.

The opening has 4 sides: front 31 sts, gusset end 7 row ends, back 31 sts and the other gusset end 7 row ends.

Rnd 1: Join burgundy at one gusset end. Ch 1, sc 7 across the gusset end, 31 across the front, 7 across the other gusset end and 31 across the back. Join. (76 sts: 7 + 31 + 7 + 31)

Rnd 2: Ch 1, sc around, working a sc3tog centered on the front dip and another on the back dip. Join. (72 sts: 7 + 29 + 7 + 29)

Rnd 3: Ch 1, sc in each st, join. (72 sts) Fasten off.

Why the math works: Every stitch and row end on the opening gets exactly 1 sc, so the rim neither ruffles nor pulls in. Each sc3tog removes 2 sts and keeps its dip sharp.

Hanging tab: With the back facing, join burgundy in the 3rd st before the back dip st of Rnd 3.

  • Row 1: Ch 1, sc in 7 sts (3 before the dip st, the dip st, 3 after), turn. (7 sts)
  • Rows 2–14: Ch 1, sc in BLO of each st, turn. (7 sts)

The tab is 2 in (5.1 cm) wide x 3.5 in (8.9 cm) long. Pass it through the wooden ring, fold it down behind Row 1 and whipstitch the last row in place. About 1.25 in (3.2 cm) of tab shows above the rim.

Final Blocking

  1. Mist the holder lightly with water. Don’t soak it, or the bobbles will flatten.
  2. Stuff it firmly with a towel so the gusset opens to 2 in (5.1 cm).
  3. Pin it to 10 in (25.4 cm) wide and 11 in (27.9 cm) tall.
  4. Pinch the point and both dips into shape.
  5. Roll the rim slightly outward.
  6. Let it dry for at least 24 hours before you remove the towel.

Final Quality-Control Checklist

  • Each panel has 114 edge sts: 83 gusset sts and 31 opening sts.
  • The gusset is 83 sts long and 7 rows deep.
  • The rim has 72 sts after Rnd 2.
  • The frame opens to 2 in (5.1 cm) and hides the slit.
  • The appliqué is centered and lies flat.
  • The tab is centered over the back dip.
  • All tails are woven in on the WS.

Troubleshooting

  • Bobbles on the wrong side: Work bobbles on even (WS) rows only.
  • Wavy edges: Keep the edge-round tension even, with exactly 1 sc per row end.
  • Gusset doesn’t fit: Recount. Both the gusset and each panel section need exactly 83 sts.
  • Rim flares: Work Rnds 2–3 with a smaller hook.
  • Bags slip out too easily: Tighten Rnd 2 of the frame.
  • Holder sags: Go down a hook size, or slip a piece of cardboard inside against the back.

Care

Hand wash in cool water with mild detergent. Roll it in a towel to press out the water, then lay it flat to dry and reshape the heart.

Hands interacting with a coral crocheted heart featuring a burgundy outline and small removable sensory elements.

Final Notes

The measurements build on each other. A gauge of 14 sts and 16 rows per 4 in (10.2 cm) gives 33-st panels about 9.4 in (23.9 cm) wide. The edge round brings each panel to 114 sts and 10 in (25.4 cm) wide. The 83-st gusset matches the panel sides 1 to 1, and the 76-st rim shapes down to 72. If your gauge matches, every part fits without adjusting.

Happy crocheting!

Leave a Comment