This holder tidies up the pile of grocery bags under the sink. It is a tall, soft tube covered in round coral popcorn bobbles, with a burgundy rim, a burgundy-edged dispensing hole, and a raised bobble heart on the front. You push bags in at the top and pull them out one at a time through the hole near the bottom.
It uses two colors: a warm coral pink for the body and heart, and a deep burgundy for the rim, hanging tab, hole edging, and heart outline. The burgundy frames the coral texture, so the piece looks finished and a little vintage-cottage.
The pattern uses US crochet terms. The finished holder is 6 in (15.2 cm) wide when laid flat, 12 in (30.5 cm) around, and about 15⅞ in (40.3 cm) tall from base to rim. The tab and wooden ring add about 2 in (5.1 cm) on top.
You start with a flat single crochet circle for the base. Then you work joined rounds that alternate popcorns and single crochet, with a chain slot for the dispensing hole. The burgundy rim and tab finish the top. The heart is made separately in rows, outlined in burgundy, and sewn on.
Finished Size and Construction
- Finished size: 6 in (15.2 cm) flat width × 15⅞ in (40.3 cm) tall, plus a 2 in (5.1 cm) tab
- Circumference: 12 in (30.5 cm), 48 stitches
- Skill level: Easy-intermediate
- Terminology: US
- Yarn weight: Worsted (#4)
- Hook: 5.0 mm (H-8)
- Number of pieces: 1 tubular body plus 1 sewn-on heart appliqué
- Layout: Single vertical tube. The hole is low on the front and the heart is centered above it.
- Body size before rim: 15 in (38.1 cm) tall
- Rim depth: about ⅞ in (2.2 cm), 4 rounds
- Heart size: 3¾ in (9.5 cm) wide × 3½ in (8.9 cm) tall, including the outline
Materials
Choose a smooth worsted-weight cotton or cotton-acrylic blend with about 200 m (219 yd) per 100 g. Cotton keeps the popcorns round and crisp and stands up to kitchen use. Fuzzy yarns blur the bobbles.
- Coral pink (Color A): 250 g / 500 m (547 yd)
- Burgundy (Color B): 50 g / 100 m (109 yd)
Popcorns use a lot of yarn. Both amounts include a margin of roughly 10%, so you have spare yarn for a gauge test and for sewing.
Tools:
– 5.0 mm (H-8) crochet hook
– Wooden ring, 2 in (5.1 cm) diameter
– 4 locking stitch markers
– Tapestry needle
– Scissors
– Measuring tape
– Rustproof pins
Abbreviations (US Terms)
- ch: chain
- sc: single crochet
- dc: double crochet
- sl st: slip stitch
- st(s): stitch(es)
- sc2tog: single crochet 2 together
- rnd(s): round(s)
- RS / WS: right side / wrong side
Special stitch: Popcorn (pc). Work 4 dc in the same stitch. Take the hook out of the working loop. Insert the hook from front to back through the top of the first dc in the group, pick up the dropped loop, and pull it through. One popcorn counts as 1 stitch.
In the next round, work your sc into the top of the popcorn, which is the loop that closed it. Count carefully here; it is the most common place to lose a stitch.
Gauge and Checkpoints
- Single crochet: 16 sts and 18 rnds = 4 in (10.2 cm)
- Popcorn pattern (alternating pc and sc rounds): 16 sts and 12 rnds = 4 in (10.2 cm)
Test first. Work the base and Rnds 9–20 before you commit to the full length. Lay the tube flat and measure it.
Checkpoints:
– After Rnd 8: the base is about 3½ in (8.9 cm) across.
– After Rnd 20: the tube is 6 in (15.2 cm) wide flat, and Rnds 9–20 measure 4 in (10.2 cm) tall.
– After Rnd 32: 8 in (20.3 cm) above the base edge.
– After Rnd 44: 12 in (30.5 cm).
– After Rnd 53: 15 in (38.1 cm).
If your piece is too big, go down to a 4.5 mm hook. If it is too small, go up to a 5.5 mm hook. Don’t change the stitch counts. The hole, heart placement, and tab are all set from the 48-stitch circumference.

Body
The rounds are joined, not worked in a spiral, so the popcorns stay in straight, offset rows. At the end of every round, sl st to the first st and ch 1. The ch 1 does not count as a stitch.
The first st of each round sits at the left side of the tube. That makes sts 1–24 the front and sts 25–48 the back. The joins form a faint line along the side, out of view.
Base (Color A)
- Rnd 1: Magic ring, 6 sc in ring. Join. (6)
- Rnd 2: 2 sc in each st. (12)
- Rnd 3: Sc, 2 sc in next 6 times. (18)
- Rnd 4: Sc 2, 2 sc in next 6 times. (24)
- Rnd 5: Sc 3, 2 sc in next 6 times. (30)
- Rnd 6: Sc 4, 2 sc in next 6 times. (36)
- Rnd 7: Sc 5, 2 sc in next 6 times. (42)
- Rnd 8: Sc 6, 2 sc in next 6 times. (48)
The base should be a flat disc about 3½ in (8.9 cm) across.
Popcorn Tube (Color A)
- Rnd 9: Sc in each st. (48)
Because there is no increase in Rnd 9, the edge turns upward into a gentle curve. Once the popcorns sit right above it, the bottom looks rounded.
- Rnd 10 (pc A): Sc in next st, pc in next st 24 times. (48: 24 sc, 24 pc)
- Rnd 11: Sc in each st. (48)
- Rnd 12 (pc B): Pc in next st, sc in next st 24 times. (48: 24 pc, 24 sc)
- Rnd 13: Sc in each st. (48)
- Rnd 14 (pc A): Repeat Rnd 10. (48)
Pc B moves each popcorn over one stitch from pc A, which gives the brick-offset bobble texture.
Rnd 15 (slot round): Sc 6. Ch 12 and skip the next 12 sts (sts 7–18). Sc 30. Join.
That gives 48 stitches in total: 36 sc + 12 ch.
The bottom of the slot sits 2 in (5.1 cm) above the base edge. The slot is centered on the front.
Rnd 16 (pc B): Pc, sc 3 times. Then work into the chains: pc in next ch, sc in next ch 6 times. Then pc, sc 15 times. (48: 24 pc, 24 sc)
- Rnds 17–53: Continue alternating. Odd rnds are sc in each st (48). Even rnds alternate between pc A (Rnds 18, 22, 26 and so on) and pc B (Rnds 20, 24, 28 and so on).
The last pc round is Rnd 52, which is pc A. Rnd 53 is a sc round.
Checkpoint: Rnds 9–53 add up to 45 rounds and measure 15 in (38.1 cm). The width is still 6 in (15.2 cm) flat.
At the end of Rnd 53, change to Color B on the joining sl st. Fasten off Color A.
Heart Appliqué
The heart is worked in rows from the bottom point up. Ch 1 at the start of each row does not count as a stitch. Popcorns are worked only on RS rows, so they pop toward the front.
With Color A:
- Row 1 (RS): Ch 2, 3 sc in 2nd ch from hook. Turn. (3)
- Row 2 (WS): Ch 1, 2 sc in first st, sc 1, 2 sc in last st. Turn. (5)
- Row 3: Ch 1, 2 sc in first st, sc, pc, sc, 2 sc in last st. Turn. (7: 1 pc)
- Row 4: Ch 1, 2 sc in first st, sc 5, 2 sc in last st. Turn. (9)
- Row 5: Ch 1, 2 sc in first st, sc 2, pc, sc, pc, sc 2, 2 sc in last st. Turn. (11: 2 pc)
- Row 6: Ch 1, 2 sc in first st, sc 9, 2 sc in last st. Turn. (13)
- Row 7: Ch 1, sc 2, pc, sc 4 times, pc, sc 2. Turn. (13: 5 pc)
- Row 8: Ch 1, sc 13. Turn. (13)
- Row 9: Ch 1, sc 3, pc, sc 3 times, pc, sc 3. Turn. (13: 4 pc)
- Row 10: Ch 1, sc 13. Turn. (13)
First lobe:
- Row 11 (RS): Ch 1, sc2tog over sts 1–2, pc, sc, pc, sc. Turn. (5: 2 pc)
- Row 12: Ch 1, sc2tog, sc, sc2tog. (3)
Fasten off.
Second lobe: Skip st 7 of Row 10. This skipped stitch forms the center dip.
- Row 11: With RS facing, join Color A in st 8. Ch 1, sc, pc, sc, pc, sc2tog. Turn. (5: 2 pc)
- Row 12: Ch 1, sc2tog, sc, sc2tog. (3)
Fasten off. The heart has 16 popcorns in total.
Outline (Color B): Join in the skipped center st 7 and work as follows.
- Ch 1, sc in st 7. (1)
- Up the inner side of the lobe: 2 sc in row ends. (2)
- Across the lobe top: 2 sc in first st, sc, 2 sc in last st. (5)
- Down the outer side of the lobe: 2 sc. (2)
- Down the main side: 1 sc in each row end of Rows 10–1. (10)
- At the point: 3 sc into the base of Row 1. (3)
- Up the other side: 10 sc, then 2 sc, 5 sc across the second lobe top, and 2 sc. (19)
- Join to the first sc. Total: 42 sts.
Fasten off and leave a 24 in (61 cm) tail of Color B for sewing.
The heart should measure 3¾ in (9.5 cm) wide and 3½ in (8.9 cm) tall.
Attach the Heart
- Lay the tube flat with the front facing up.
- Pin the heart’s bottom point at the top of Rnd 32, which is 8 in (20.3 cm) above the base edge. Center it between sts 12 and 13, directly above the middle of the slot.
- The top of the heart reaches about Rnd 42. Its sides line up with roughly sts 5 and 20.
- Slip a hand inside the tube so you don’t catch the back.
- Whipstitch through the outer loops of the burgundy outline with the tail.
- Sew one short line between the two lobes so the dip lies flat.
Border
This design has two burgundy trims: the top rim and the dispensing-hole edging.
Border gauge: 16 sc and 18 rnds = 4 in (10.2 cm).
Top Rim (Color B)
- Rnd 54: Ch 1, sc in each st. Join. (48: 24 front, 24 back)
- Rnds 55–57: Repeat Rnd 54. (48)
Why the math works: Each rim stitch sits in exactly one body stitch. Each side therefore keeps 24 stitches, which equals 6 in (15.2 cm) at 4 sts per inch, the same as the body. With no increases or decreases, the rim neither ruffles nor pulls in. Four rounds measure about ⅞ in (2.2 cm), so the total height is 15 in + ⅞ in = 15⅞ in (40.3 cm).
Fasten off.
Hanging Tab (Color B)
Find the back center, which falls between sts 36 and 37. The tab covers sts 32–41.
- Row 1 (RS): Join in st 32 of Rnd 57. Ch 1, sc 10. Turn. (10)
- Row 2: Ch 1, sc2tog, sc 6, sc2tog. Turn. (8)
- Row 3: Ch 1, sc 8. Turn. (8)
- Row 4: Ch 1, sc2tog, sc 4, sc2tog. Turn. (6)
- Rows 5–14: Ch 1, sc 6. Turn. (6)
The tab is 2½ in (6.4 cm) wide at the base and narrows to a 1½ in (3.8 cm) strap. Fasten off and leave a 12 in (30.5 cm) tail.
Pass the strap through the wooden ring and fold it to the WS. Whipstitch Row 14 to the back of Row 4. The loop and ring stand about 2 in (5.1 cm) above the rim.
Dispensing-Hole Edging (Color B)
Rnd 1: Join at the bottom-right corner of the slot. Ch 1, then work:
- 12 sc into the tops of the 12 skipped Rnd 14 sts
- 2 sc around the post at the left corner
- 12 sc into the free loops of the 12 chains
- 2 sc at the right corner
- Join. (28: 12 + 2 + 12 + 2)
Rnd 2: Ch 1, sc in each st. Join. (28)
Why the math works: The slot was 12 chains, or 3 in (7.6 cm) wide. Working 12 stitches along each long edge keeps both edges at their original length. The 2 stitches at each corner make the turns. At 28 stitches, the edging is 7 in (17.8 cm) around, so the opening settles into a round hole about 2¼ in (5.7 cm) across.
Fasten off and weave in all ends.
Final Blocking
- Dampen the holder by misting it, or soak it briefly and squeeze it gently in a towel.
- Roll up a towel or slide in a 4 in (10.2 cm) cardboard tube to fill out the body.
- Pat the tube to 6 in (15.2 cm) wide flat and 15⅞ in (40.3 cm) tall.
- Use your fingertips to round out the hole to 2¼ in (5.7 cm).
- Pin the heart outline flat. Pinch each popcorn so it stands up.
- Let it dry completely before hanging. Don’t press the bobbles.
Final Quality-Control Checklist
- Every body round has 48 sts, with 24 popcorns on each pc round.
- The popcorns alternate in a brick offset.
- The joins line up at the left side.
- The hole edging has 28 sts and is centered on the front.
- The heart has 16 popcorns and a 42-st outline.
- The heart point sits 8 in (20.3 cm) above the base edge.
- The rim is 4 rounds of 48 sts and lies straight.
- The tab is centered on the back and sewn securely around the ring.
- All ends are woven in, with no loose strands inside where bags could catch.
Troubleshooting
- Popcorns sink inward: Make sure you insert the hook from front to back into the first dc.
- Stitch count drifts on sc rounds: Work into the closing loop of each popcorn and skip the joining sl st.
- Tube slants: Make sure you join every round. Working in a spiral shifts the columns.
- Hole gapes into a slit: Work 2 sc in each corner, and check the count of 28.
- Rim flares: Go down half a hook size for the rim only.
- Heart curls: Block it flat before sewing it on.
Care
Hand wash in cool water and lay flat to dry. Reshape the popcorns while the holder is still damp.

Final Notes
Every measurement follows from the 48-stitch circumference: 48 stitches at 4 per inch give 12 in (30.5 cm) around and 6 in (15.2 cm) flat. The 45 pattern rounds measure 15 in (38.1 cm), and the 4-round rim brings the total to 15⅞ in (40.3 cm). The 12-chain slot becomes a 28-stitch, 2¼ in (5.7 cm) opening, and the 13-stitch heart grows to 3¾ in (9.5 cm) once it is outlined.
Happy crocheting!