This round, bubble-shaped bag holder keeps grocery bags in one place and looks good while it does. You push bags in through the open top and pull them out one at a time through a small hole at the bottom. A thick, covered ring at the top slips over a door knob, hook, or cabinet handle.
The sample uses one solid color, a deep petrol teal. Staggered shell stitches cover the body and give it a scalloped texture that reads well from across the room. The top rim and the area around the dispensing hole are worked in single crochet, which gives clean, firm edges that hold up to frequent use.
The pattern uses US crochet terms. The finished pouch is about 8 in (20.3 cm) wide and 8.5 in (21.6 cm) tall when flattened. With the ring added, the holder is about 11.5 in (29.2 cm) tall overall.
You work the body in continuous joined rounds from the bottom up. First you make the dispensing hole and a single-crochet base, then the shell rounds, and then you decrease toward the opening and finish with a rolled rim. The ring is single crochet worked over a 3 in (7.6 cm) ring core, with a short tab that you sew to the inside back of the rim.
Finished Size and Construction
- Finished size (pouch, flat): 8 in (20.3 cm) wide × 8.5 in (21.6 cm) tall
- Overall hanging height: about 11.5 in (29.2 cm)
- Skill level: Advanced beginner
- Terminology: US
- Yarn weight: Bulky (#5) cotton or cotton-blend cord
- Hook: 6.0 mm (US J-10)
- Number of pieces: 2 (body + hanging ring)
- Layout: Ring centered above the body, sewn to the inside back of the rim
- Piece size: body 16 in (40.6 cm) around at its widest; ring 3.75 in (9.5 cm) across
- Size before rim: about 7.75 in (19.7 cm) measured up the side from the hole edge
- Rim depth: 3 rounds, 1 in (2.5 cm)
Materials
Yarn: Use a smooth bulky cotton or cotton-blend cord with good stitch definition. Fuzzy yarns hide the shells. Cotton keeps the pouch firm, so it holds its round shape even when it’s only half full.
- Petrol Teal: 220 g, about 310 m (339 yd)
This quantity includes a margin of about 20% for gauge swatching and differences between yarn brands.
Tools:
– 6.0 mm (US J-10) crochet hook
– One 3 in (7.6 cm) plastic or wooden ring (for the hanging ring core)
– Tapestry needle
– 2 stitch markers
– Measuring tape
– Scissors
– A small towel or plastic bags, for blocking
Abbreviations (US Terms)
- ch – chain
- sl st – slip stitch
- sc – single crochet
- dc – double crochet
- sc2tog – single crochet 2 together
- sk – skip
- st(s) – stitch(es)
- rnd(s) – round(s)
- rep – repeat
- BLO – back loop only
Special stitch – Shell: Work 5 dc in the same stitch. The center stitch of a shell is its 3rd dc.
Gauge and Checkpoints
- Single crochet: 12 sc and 12 rows = 4 in (10.2 cm)
- Shell pattern: 12 sts (2 repeats) = 4 in (10.2 cm) wide; 5 shell rnds = 4 in (10.2 cm) tall
Before you start, make a sc swatch about 5 in (12.7 cm) square. If your 4 in (10.2 cm) of stitches has more than 12 sc, go up a hook size. If it has fewer, go down one.
Checkpoints while working the body:
– After Rnd 7: the base measures 16 in (40.6 cm) around the outer edge and is about 2.25 in (5.7 cm) tall from the hole edge, measured along the surface.
– After Rnd 14: the body measures about 7.75 in (19.7 cm) up the side and still 16 in (40.6 cm) around.
– After Rnd 17: the opening measures 12 in (30.5 cm) around, or 6 in (15.2 cm) across when flattened.
If a checkpoint comes out 0.5 in (1.3 cm) or more too big, rip back to the base and go down a hook size. If it’s too small, go up a size. Don’t change the stitch counts, because the shell repeat depends on 48 stitches.

Body
Foundation (dispensing hole): Ch 12. Sl st to the first ch to form a ring, taking care not to twist.
Rnd 1: Ch 1, work 1 sc in each ch around, then sl st to the first sc to join. (12 sts)
Rnd 2: Ch 1, sc in next st, 2 sc in next st; rep from * 5 more times. Join. (18 sts)*
Rnd 3: Ch 1, sc in next 2 sts, 2 sc in next st; rep from * 5 more times. Join. (24 sts)*
Rnd 4: Ch 1, sc in next 3 sts, 2 sc in next st; rep from * 5 more times. Join. (30 sts)*
Rnd 5: Ch 1, sc in next 4 sts, 2 sc in next st; rep from * 5 more times. Join. (36 sts)*
Rnd 6: Ch 1, sc in next 5 sts, 2 sc in next st; rep from * 5 more times. Join. (42 sts)*
Rnd 7: Ch 1, sc in next 6 sts, 2 sc in next st; rep from * 5 more times. Join. (48 sts)*
These rounds add 6 stitches each. That’s slightly fewer than a flat circle needs, so the base cups up into the rounded bottom of the bubble.
Rnd 8 (Shell Rnd A, first): Ch 1, sc in the same st as the join, sk 2 sts, shell in next st, sk 2 sts, sc in next st; rep from * 6 more times, then sk 2 sts, shell in next st, sk 2 sts. Sl st to the first sc to join. (8 shells + 8 sc = 48 sts)*
Rnd 9 (Shell Rnd B): Ch 3 (counts as dc), 2 dc in the same st as the join (half shell), sc in the center dc of the next shell, shell in the next sc; rep from * 6 more times, then sc in the center dc of the last shell and 2 dc in the first sc (the same st as the starting ch-3). Sl st to the top of the ch-3 to join. (7 shells + 2 half shells + 8 sc = 48 sts)*
The two half shells meet at the join to make a complete 5-stitch shell. The ch-3 is that shell’s center stitch.
Rnd 10 (Shell Rnd A): Ch 1, sc in the same st as the join (the top of the ch-3), shell in the next sc, sc in the center dc of the next shell; rep from * 6 more times, then shell in the last sc. Sl st to the first sc to join. (8 shells + 8 sc = 48 sts)*
Rnds 11–14: Work Shell Rnd B (Rnd 9), then Rnd A (Rnd 10), then Rnd B, then Rnd A. (48 sts each rnd)
This gives 7 shell rounds in total. Because each round puts its shells on top of the previous round’s single crochets, the shells sit staggered like brickwork.
Rnd 15 (conversion round): Ch 1, sc in each st around. Join. (48 worked 1 per existing st + 0 added = 48 sts)
Rnd 16: Ch 1, sc in next 6 sts, sc2tog; rep from * 5 more times. Join. (42 sts)*
Rnd 17: Ch 1, sc in next 5 sts, sc2tog; rep from * 5 more times. Join. (36 sts)*
Check the opening now: it should be 12 in (30.5 cm) around.
Make All Pieces
- Body: 1, in Petrol Teal
- Hanging ring: 1, in Petrol Teal
Layout (front view):
[ RING ]
|
[ TAB ] (sewn inside back rim)
[ BODY ]
[ opening ]
[ shells ]
[ hole ]
Hanging Ring
Rnd 1: Join the yarn around the 3 in (7.6 cm) ring with a sl st. Ch 1 and work 32 sc over the ring, pushing the stitches together as you go so none of the core shows. Sl st to the first sc to join. (32 sts)
If you can still see the core, add sc in multiples of 2 until it’s covered, and write down your final count.
Rnd 2: Ch 1, sl st in BLO of each sc around. Join. (32 sts)
This round rolls the front loops outward, which gives the ring its thick, rounded look. The ring should now measure 3.75 in (9.5 cm) across the outside and about 2.25 in (5.7 cm) across the inner opening.
Tab: Fold the ring so the join sits at the bottom. Join the yarn in the 3rd st to the right of the join.
– Row 1: Ch 1, sc in the BLO of the next 6 sts. Turn. (6 sts)
– Rows 2–5: Ch 1, sc in each st across. Turn. (6 sts)
The tab measures 2 in (5.1 cm) wide and about 1.75 in (4.4 cm) long. Fasten off and leave a 12 in (30.5 cm) tail for sewing.
Joining
You’ll finish the rim (next section) before joining. Here is the joining method so you can plan for it.
Method: Whipstitch with the yarn tail, through both loops.
Stitch-to-stitch logic: Flatten the body so the round joins sit at center back, then mark the 6 rim sts centered on that line (3 on each side of the join). Lay the tab inside the pouch so its last row sits 1 in (2.5 cm) below the top edge. Sew each of the 6 tab sts to 1 rim st, matching them one to one. Then sew the two side edges of the tab down to the inside wall.
Tension: Pull each stitch snug but not tight. If you pull too hard, the rim puckers into a V at the back.
Size checkpoint: When you hang the holder, the ring should stand about 3 in (7.6 cm) above the rim. The overall height should be about 11.5 in (29.2 cm).
Rim (Border)
Rim gauge: 3 sc rnds = 1 in (2.5 cm), and 36 sts = 12 in (30.5 cm) around.
When you flatten the pouch, the rim has 18 sts across the front and 18 across the back. Each quarter of the circle has 9 sts.
Rnd 18: Ch 1, sc in each st around. Join. (36 sts: 18 front / 18 back)
Rnd 19: Ch 1, sc in each st around. Join. (36 sts: 18 front / 18 back)
Rnd 20: Ch 1, sc in each st around, working a little more loosely. Fasten off with an invisible join. (36 sts: 18 front / 18 back)
Why the math works: Rnd 17 brought the count down to 36 by making 6 evenly spaced decreases twice. Since 36 divides evenly into halves (18) and quarters (9), the rim lies symmetrically when the pouch is flattened. You don’t add or remove any stitches in the rim, so it stays exactly 12 in (30.5 cm) around. Three straight rounds of sc above the decreases curve slightly inward, and that gives the rolled look of the sample.
The edge of the dispensing hole is Rnd 1 itself: 12 sc worked into the chain. It’s firm and needs no extra edging. Weave in all the ends on the inside.
Final Blocking
- Spritz the body lightly with water until it’s damp but not soaked.
- Stuff it firmly with a rolled towel or a bundle of plastic bags until it’s round.
- Gently push the shells into even, staggered columns with your fingers.
- Press the rim into a smooth circle 12 in (30.5 cm) around.
- Lay the ring flat and pat it into a true circle 3.75 in (9.5 cm) across.
- Let it air dry completely, about 24 hours, before you remove the stuffing.
- Check that the flat width is 8 in (20.3 cm) and the height is 8.5 in (21.6 cm).
Final Quality-Control Checklist
- The dispensing hole is about 1.25 in (3.2 cm) across and lets a bag through smoothly.
- The base is 16 in (40.6 cm) around at Rnd 7.
- All 7 shell rounds have exactly 8 shells.
- The shells sit staggered, with no two stacked straight on top of each other.
- The opening is 12 in (30.5 cm) around, and the rim is 3 rounds deep.
- The ring core is fully covered with 32 sc (or your adjusted count).
- The tab is centered at the back and sewn 1 in (2.5 cm) below the rim edge.
- All ends are woven in on the inside.
Troubleshooting
The bottom ruffles instead of cupping: Your tension on the base rounds is loose. Go down a hook size for Rnds 1–7 only.
The bottom is flat and pointed: You probably missed increases. Recount each round against the stitch counts above.
The shells lean or drift: Make sure each sc goes into the center (3rd) dc of a shell, and that each shell goes into an sc.
One shell is missing: The count for that round is under 48. Rip back and recount.
The rim flares: Work Rnds 18–20 with a hook one size smaller.
The ring core shows: Add 2 more sc in Rnd 1 and push the stitches together tightly.
The holder tips forward when hanging: Sew the tab lower, so its last row sits 1.25 in (3.2 cm) below the top edge.
Care
Spot clean if you can. If needed, hand wash in cool water, reshape it around a towel, and lay it flat to dry. Don’t put it in the dryer.

Final Notes
The measurement chain is simple. A 12-chain hole grows to 48 sts and 16 in (40.6 cm) around at the base. The 7 shell rounds hold that 48-stitch width up to about 7.75 in (19.7 cm). Two decrease rounds bring the opening to 36 sts and 12 in (30.5 cm). A 1 in (2.5 cm) rim finishes the top, and the covered ring 3.75 in (9.5 cm) across hangs it all. If you check each of those numbers as you go, your holder will finish at 8 in (20.3 cm) wide and 8.5 in (21.6 cm) tall.
Happy crocheting!