The Lavender Bloom holder is a soft, practical bathroom piece. It has three stacked baskets, and each one holds one standard toilet roll. Each basket face shows a raised puff-stitch flower framed by classic granny clusters, so the stack looks textured and cottage-style without being fussy.
Everything is worked in one lavender yarn. That keeps the focus on the texture: the round puff petals, the open granny spaces, and the neat single-crochet rim on each basket. A natural wooden ring at the top gives it a warm finish against a cream wall.
This pattern uses US crochet terms. Each basket is about 5 in (12.7 cm) across when round, 16 in (40.6 cm) around, and 4.5 in (11.4 cm) tall. The three stacked baskets measure 15.5 in (39.4 cm) from the top rim to the bottom base. Including the hanger and ring, the whole piece is about 22 in (55.9 cm) long.
Construction is modular. For each basket, you make four puff-flower granny squares and join them into a ring. Then you add a round single-crochet base and finish the top with a rim border. Last, you crochet flat straps that link the baskets and loop them around the ring.
Finished Size and Construction
- Basket size: 16 in (40.6 cm) around, about 5 in (12.7 cm) across, 4.5 in (11.4 cm) tall
- Total length: 15.5 in (39.4 cm) for the baskets, about 22 in (55.9 cm) including the ring
- Skill level: Intermediate (puff stitch, reverse single crochet)
- Terminology: US
- Yarn weight: Worsted (#4), cotton or cotton blend
- Hook: 4.5 mm (US 7)
- Number of pieces: 12 squares, 3 bases, 1 hanger strap, 4 connector straps
- Layout: Each basket is 4 squares joined in a ring, plus 1 base. The 3 baskets hang in a vertical stack.
- Square size: 4 in (10.2 cm), with 19 sc per side
- Basket height before border: 4 in (10.2 cm)
- Border depth: 0.5 in (1.3 cm)
Materials
Yarn: Use a worsted-weight cotton or cotton blend. Cotton holds its shape under the weight of a roll and handles bathroom humidity well. Avoid very splitty yarn, because puff stitches need clean loops.
- Lavender: 200 g, about 340 m (372 yd)
This amount includes a margin of about 20%. The project itself uses roughly 160 g.
Tools:
- 4.5 mm (US 7) crochet hook
- Wooden ring, 2 in (5.1 cm) diameter
- Tapestry needle
- 8 locking stitch markers
- Sewing pins
- Measuring tape
- Spray bottle and blocking mats
Abbreviations (US Terms)
- ch: chain
- sl st: slip stitch
- sc: single crochet
- dc: double crochet
- sp: space
- st(s): stitch(es)
- RS / WS: right side / wrong side
- rev sc: reverse single crochet (crab stitch). Work sc from left to right (right to left if you crochet left-handed).
Special stitch: Puff stitch (puff). (Yarn over, insert hook in the ring or space, pull up a loop to about 0.5 in, or 1.3 cm) 4 times. You now have 9 loops on the hook. Yarn over and pull through all 9 loops, then ch 1 to lock. The locking ch does not count as a stitch.
Gauge and Checkpoints
Gauge: 19 sc and 20 rows = 4 in (10.2 cm). One finished square (Rounds 1–4) measures 4 in (10.2 cm) per side.
Make one square before anything else, and measure it at each checkpoint:
- After Round 1: about 1.5 in (3.8 cm) across
- After Round 2: about 2.5 in (6.4 cm)
- After Round 3: about 3.5 in (8.9 cm)
- After Round 4: 4 in (10.2 cm), with 19 sc per side
If your square measures over 4.25 in (10.8 cm), go down to a 4 mm hook. If it measures under 3.75 in (9.5 cm), go up to a 5 mm hook. Keep the same hook for every piece, including the bases and straps. The base has to match the wall exactly at 76 stitches.

Pattern: Puff Flower Square (make 12)
Round 1 (RS): Make a magic ring. Ch 2 (does not count as a stitch). Work 1 puff in the ring, then ch 2. Puff in the ring, ch 2. Repeat from * 6 more times. Join with a sl st to the top of the first puff and pull the ring closed.
Count: 8 puffs, 8 ch-2 sps.
Round 2: Sl st into the first ch-2 sp. Ch 3 (counts as dc), then work (2 dc, ch 2, 3 dc) in the same sp for the corner. Ch 1, 3 dc in the next sp, ch 1. (3 dc, ch 2, 3 dc) in the next sp, ch 1, 3 dc in the next sp, ch 1. Repeat from * 2 more times. Join to the top of the beginning ch-3.
Count: 36 dc (9 per side), 4 ch-2 corner sps, 8 ch-1 sps.
Round 3: Sl st in the next 2 dc and into the corner ch-2 sp. Ch 3, then (2 dc, ch 2, 3 dc) in the same sp. Ch 1, and work (3 dc in the next ch-1 sp, ch 1) twice. (3 dc, ch 2, 3 dc) in the corner sp, ch 1, (3 dc in the next ch-1 sp, ch 1) twice. Repeat from * 2 more times. Join.
Count: 48 dc (12 per side), 4 ch-2 corner sps, 12 ch-1 sps (3 per side).
Round 4 (trim round): Ch 1. Sc in the same st as the join. Then sc in each dc and each ch-1 sp around, working 3 sc in each ch-2 corner sp. Join to the first sc. Fasten off, leaving a 6 in (15.2 cm) tail.
Count: (48 dc + 12 ch-1 sps worked 1 per stitch = 60) + (12 sc added in the corners) = 72 sc.
Per-side count: Count from one corner center sc to the next, including both. That gives 1 + 1 + 15 + 1 + 1 = 19 sc per side. Check: 4 sides × 19 − 4 shared corners = 72. ✓
Weave in the ends, then block the square to 4 in (10.2 cm) square (see Final Blocking).
Pattern: Round Base (make 3)
Work in continuous rounds and move a marker to the first stitch of each round.
Round 1: Make a magic ring and work 6 sc into it. (6)
Round 2: 2 sc in each st. (12)
Round 3: (Sc in the next st, 2 sc in the next) 6 times. (18)
Round 4: (Sc in the next 2, 2 sc in the next) 6 times. (24)
Rounds 5–12: Keep the same rhythm. Each round adds 1 plain sc before every increase, so each round adds 6 sts. The totals are: Round 5, 30; Round 6, 36; Round 7, 42; Round 8, 48; Round 9, 54; Round 10, 60; Round 11, 66; Round 12, 72.
Round 13: (Sc in the next 17, 2 sc in the next) 4 times. (76)
Sl st to the next st and fasten off, leaving a 12 in (30.5 cm) tail.
Checkpoints: After Round 6, the base is about 2.4 in (6.1 cm) across. After Round 13, it is about 5 in (12.7 cm) across and 16 in (40.6 cm) around. It should lie flat. Place 4 markers on Round 13, one every 19 sts, to mark the quarter points.
Pattern: Straps
Hanger strap (make 1): Ch 5. Row 1: sc in the 2nd ch from the hook and in the next 3 ch. (4 sc) Rows 2–70: ch 1, turn, sc in each st across. (4 sc) Fasten off, leaving a 12 in (30.5 cm) tail.
The strap is 14 in (35.6 cm) long and about 0.85 in (2.2 cm) wide.
Connector straps (make 4): Work Rows 1–15 the same way. (4 sc per row) Fasten off, leaving a 12 in (30.5 cm) tail.
Each connector is 3 in (7.6 cm) long.
Make All Pieces
All 20 pieces are lavender:
- Squares: 12, which is 4 per basket
- Bases: 3
- Hanger strap: 1
- Connector straps: 4, which is 2 per gap
Layout of each basket wall (shown flat; Square 4 joins back to Square 1):
[Sq 1 FRONT] [Sq 2 RIGHT] [Sq 3 BACK] [Sq 4 LEFT] -> back to Sq 1
[ BASE ]
Stack layout:
( RING )
/ \
hanger hanger
[ Basket A: top ]
| | <- connectors
[ Basket B: middle ]
| | <- connectors
[ Basket C: bottom ]
The straps always attach to the vertical center of Square 2 and Square 4. That puts the flower on Square 1 facing forward.
Joining
Wall seams: Hold Squares 1 and 2 with RS together. Join with a sl st through the outer loops of both squares. Start in one corner center sc and finish in the next corner center sc, so you work 19 sl sts. Join Square 3 to Square 2 and Square 4 to Square 3 the same way. Then join Square 4 to Square 1 to close the ring, and turn it RS out.
Stitch logic: Every seam pairs stitch 1 with stitch 1 and stitch 19 with stitch 19. Each square’s bottom edge keeps its own 19 sts, so the bottom opening has 4 × 19 = 76 sts.
Base seam: Hold the base and the bottom of the wall with WS together, base facing down. Line up the 4 base markers with the 4 wall seams. Join the yarn at a seam and sc through both layers, 1 sc per pair of stitches: 19 sc per square, 76 sc in total. Join and fasten off. This makes a small ridge that helps the basket keep its shape.
Tension: Keep the sl sts as loose as the fabric. If you pull them tight, the seams pucker and shorten the basket. Insert a toilet roll as you work to check.
Checkpoint: The basket should measure 16 in (40.6 cm) around and 4 in (10.2 cm) tall before the border.
Border (Basket Rim)
Border gauge: 76 sts over 16 in (40.6 cm) works out to 4.75 sts per inch. That matches the 19 sc per 4 in (10.2 cm) gauge.
Round 1: With RS facing, join the yarn at the Square 1/Square 4 seam. Ch 1 and sc in each st around: 19 sc across the top of each square, including both corner center sts. Join.
Count: 19 + 19 + 19 + 19 = 76 sc.
Round 2: Ch 1 and sc in each st around. Join. (76 sc, 19 per square)
Round 3: Ch 1 and work rev sc in each st around. Join. (76 rev sc) Fasten off.
Why the math works: Each square gives exactly 19 sts to the rim, and no stitches are added at the seams. That keeps the rim at the same 16 in (40.6 cm) as the wall, so it neither flares nor pulls in. The 3 rounds add 0.5 in (1.3 cm), which brings the basket to 4.5 in (11.4 cm). Work the rim on all 3 baskets.
Assembling the stack:
- Thread the hanger strap through the ring and center the ring on the strap.
- Pin 1 in (2.5 cm) of each hanger end to the outside of Basket A, centered on Squares 2 and 4 and starting at the top of the rim. That leaves about 5 in (12.7 cm) of strap rising on each side.
- Pin the top 1 in (2.5 cm) of each connector to the lowest 1 in (2.5 cm) of Basket A’s side squares, just above the base seam.
- Pin the bottom 1 in (2.5 cm) of each connector to the top of Basket B’s rim. This leaves a 1 in (2.5 cm) gap between the baskets.
- Repeat steps 3 and 4 to hang Basket C from Basket B.
- Whipstitch around all edges of each overlap with the strap tails. Stitch through the outer loops only so the stitches don’t show inside.
Final Blocking
- Block the squares before joining. Spritz them, pin them to 4 in (10.2 cm) squares, and let them dry fully.
- Shape the bases flat to 5 in (12.7 cm) across.
- After assembly, lightly mist each basket.
- Put a toilet roll in each basket while it is damp. Smooth the rim so it sits straight and upright.
- Puff up each flower with your fingertips.
- Lay the stack flat to dry. Don’t hang it while it’s wet, because the straps would stretch.
Final Quality-Control Checklist
- Each square measures 4 in (10.2 cm) with 19 sc per side
- Each base has 76 sts and lies flat
- The wall seams run straight and each one has 19 sts
- Each rim has 76 sts in every round
- Each basket is 16 in (40.6 cm) around and 4.5 in (11.4 cm) tall
- The straps are centered on Squares 2 and 4, and the flowers face forward
- The gaps between baskets are 1 in (2.5 cm)
- The stack hangs level from the ring
- All ends are woven in securely
Troubleshooting
- The puffs look flat. Pull each loop up taller, to about 0.5 in (1.3 cm), and don’t forget the locking ch 1.
- The square is wavy. Your dc clusters are too loose. Go down half a hook size.
- The base cups upward. Check the count after Round 13. If it is under 76, an increase was missed.
- The base ruffles. There are too many stitches, or your tension is loose. Recount, and go down half a hook size if needed.
- The rim flares. You probably added stitches at a seam. Recount to 19 per square.
- The basket tilts. The straps are off-center. Re-pin each one to the 10th of the 19 sts on its side square.
- The roll won’t fit. The baskets are too small. Check your gauge. The basket needs to be 16 in (40.6 cm) around for a 4.5 in (11.4 cm) roll.
Care
Hand wash in cool water with mild soap, then press out the water in a towel. Reshape the baskets around rolls and dry them flat.

Final Notes
The holder works because each step matches the measurement before it. Each square is 4 in (10.2 cm) with 19 sts per side. Four squares make a 16 in (40.6 cm) wall with 76 sts. The 76-st base joins it one stitch to one stitch, and the rim keeps those 76 sts. That gives a 4.5 in (11.4 cm) basket, and three baskets with two 1 in (2.5 cm) gaps make the 15.5 in (39.4 cm) stack. If you check your gauge on the first square, every later count falls into place.
Happy crocheting!