This curtain is a field of small open hearts held in a light chain lattice. Each heart has a clean chain-and-single-crochet outline around an open center, a rounded shell scallop edge and a sharp shell point at the bottom. Cream chain loops link every heart to its neighbors, so the panel reads as a diamond trellis with a heart in each opening.
The colors are dusty rose and cream. The hearts alternate between the two in a checkerboard, and the lattice and border are all cream, which keeps the panel airy when light comes through. The style is romantic and vintage. You can use it as a window curtain, a doorway divider or a backdrop.
The pattern uses US crochet terms. The finished panel measures 40.8 x 56.8 in (103.6 x 144.3 cm), plus rod loops that hang about 2 in (5.1 cm) above the top edge.
Each heart takes three rounds. You then add a cream round of chain loops and join each new motif to its neighbors on that same round (join-as-you-go). Two border rounds straighten the edges, and the last one adds the hanging loops.
Finished Size and Construction
- Finished size: 40.8 x 56.8 in (103.6 x 144.3 cm), plus 2 in (5.1 cm) rod loops
- Skill level: Intermediate
- Terminology: US crochet terms
- Yarn weight: Sport (CYC 2) cotton
- Hook: 3.0 mm
- Number of pieces: 140 heart motifs, joined as you go
- Layout: 10 motifs across x 14 motifs down
- Piece size: heart 3.25 x 3 in (8.3 x 7.6 cm); joined block pitch 4 x 4 in (10.2 x 10.2 cm)
- Size before border: 40 x 56 in (101.6 x 142.2 cm)
- Border depth: 0.4 in (1.0 cm) per side, 2 rounds
Materials
Use a smooth mercerized or matte sport-weight cotton. Cotton keeps the scallops crisp and blocks well. Acrylic relaxes and loses the heart shape. The amounts below assume 50 g balls of about 150 m.
- Dusty rose: 250 g (approx. 750 m), for 70 hearts
- Cream: 450 g (approx. 1350 m), for 70 hearts, all lattice rounds and the border
Quantities include a margin of about 15% for gauge swatches and tails.
Tools:
- 3.0 mm crochet hook
- 4 locking stitch markers
- Tapestry needle
- Scissors
- Measuring tape
- Blocking mats and rust-proof pins
- Spray bottle
Abbreviations (US Terms)
- ch: chain
- sl st: slip stitch
- sc: single crochet
- dc: double crochet
- sk: skip
- st(s): stitch(es)
- sp: space
- Rnd: round
- RS: right side
Special stitches:
- Scallop: 5 dc in the same st. The 3rd dc is the scallop’s center.
- Point shell: (3 dc, ch 2, 3 dc) in the same sp.
- Joining loop: ch 3, sl st in the 4th (center) ch of the matching loop on the neighboring motif, ch 3. Use it in place of a ch-7 loop.
Gauge and Checkpoints
Make one complete heart, including its cream loop round, before you start the curtain. Measure it at each stage:
- After Rnd 1: laid flat, the 48-ch ring measures about 6.5 in (16.5 cm) around.
- After Rnd 2: the heart outline is 2.5 in (6.4 cm) wide x 2.25 in (5.7 cm) tall.
- After Rnd 3: the heart is 3.25 in (8.3 cm) wide x 3 in (7.6 cm) tall, from the top of the lobes to the point.
- After joining two motifs: the distance from one heart’s center to the next is 4 in (10.2 cm).
If the heart is too big, use a hook 0.25 mm smaller. If it’s too small, use one 0.25 mm larger. If the heart is the right size but the spacing is off, change only the loop round. Use ch 6 loops for tighter spacing or ch 8 for looser spacing, and adjust the joining loops to match (2 and 3 ch, or 4 and 3 ch).

Heart Motif
Work Rnds 1–3 in rose or cream, following the layout grid. Work Rnd 4 in cream on every motif. Keep the RS facing throughout.
Rnd 1 (foundation ring): Ch 48, then sl st in the 1st ch to form a ring without twisting it. (48 ch)
This join becomes the top dip of the heart.
Rnd 2 (outline): Ch 1, sc in the same ch as the join (dip sc), sc in next 5 ch, 2 sc in each of next 6 ch, sc in next 12 ch, (sc, ch 2, sc) in next ch (bottom point), sc in next 12 ch, 2 sc in each of next 6 ch, sc in next 5 ch. Sl st to the 1st sc. (61 sc and 1 ch-2 sp)
Check: 1 dip ch + 23 ch + 1 point ch + 23 ch = 48 ch used. The 12 increases (6 per side) shape the rounded lobes. Each side now has 30 sts from the dip to the point, including that side’s point sc.
Rnd 3 (scallops): Ch 1, sc in the dip sc, [sk 1 st, scallop in next st, sk 1 st, sc in next st] 7 times. Sk next 2 sts, point shell in the ch-2 sp, sk next 2 sts, sc in next st, [sk 1 st, scallop in next st, sk 1 st, sc in next st] 6 times, sk 1 st, scallop in next st, sk 1 st, sl st to the 1st sc. Fasten off. (14 scallops, 1 point shell, 15 sc; 76 dc total)
Check: on the first side, 7 repeats of 4 sts use sts 1–28, and you skip sts 29 and 30. The second side mirrors this, and its last scallop ends at the dip sc. Skipping sts at the dip and the point keeps both of them sharp.
Block each heart lightly now so the lobes and point are set before joining.
Rnd 4 (lattice loops, cream): This round attaches to 16 anchors: the dip sc, the center dc of each scallop and the point’s ch-2 sp. Join cream with sc in the dip sc. Ch 7, sc in next anchor; repeat from * to * 14 more times. Ch 7, sl st to the 1st sc. Fasten off. (16 sc, 16 ch-7 loops)
Number the loops 1–16 in the order you worked them. Loop 1 runs from the dip to the 1st scallop. Place markers on the anchors at the 2nd, 6th, 10th and 14th scallops (counting the point as the 8th anchor after the dip). These are the motif’s 4 corners, and each side has 4 loops:
- Top: loops 15, 16, 1, 2 (top right corner to top left corner)
- Left: loops 3, 4, 5, 6 (top to bottom)
- Bottom: loops 7, 8, 9, 10 (left to right)
- Right: loops 14, 13, 12, 11 (top to bottom)
If you crochet left-handed, everything is mirrored, but there are still 4 loops per side.
Make All Pieces
Make 70 rose hearts and 70 cream hearts, 140 motifs in total. Every motif gets a cream Rnd 4. You can make all the hearts (Rnds 1–3) first and add each Rnd 4 as you join.
Layout grid (R = rose, C = cream), 10 across x 14 down:
Row 1: R C R C R C R C R C
Row 2: C R C R C R C R C R
...repeat Rows 1-2...
Row 13: R C R C R C R C R C
Row 14: C R C R C R C R C R
Odd rows start with rose and even rows start with cream. Each row has 5 hearts of each color.
Joining
Join the motifs as you go on Rnd 4. Work the first motif’s Rnd 4 in full. On every later motif, work Rnd 4 as written, but use a joining loop wherever the motif meets a finished neighbor. Work Row 1 from left to right, then start Row 2 at the left.
Stitch-to-stitch logic. Each shared side has 4 loops, which you join in matching pairs:
- New motif’s left side to the left neighbor’s right side: loop 3 to loop 14, 4 to 13, 5 to 12 and 6 to 11.
- New motif’s top to the bottom of the motif above: loop 2 to loop 7, 1 to 8, 16 to 9 and 15 to 10.
An interior motif has 8 joining loops. Motifs in Row 1 join only on the left, motifs in Column 1 join only on top, and the first motif doesn’t join at all. Corner anchors aren’t joined, so a small open diamond forms where 4 motifs meet. That diamond is part of the lattice.
Tension. Make the 3 chains on each side of a joining sl st the same size as your free chains. If they’re too tight, the curtain puckers. If they’re too loose, the hearts sag and the lattice loses its diamond shape. Let the sl st sit level with the loop instead of pulling it snug.
Size checkpoint. After Row 1, lay the strip flat. It should be 40 in (101.6 cm) wide: 10 motifs at 4 in (10.2 cm) each. Every 3 rows, check that the height has grown by 12 in (30.5 cm). Before the border, the full panel measures 40 x 56 in (101.6 x 142.2 cm).
Border
Border gauge: 5 sc per ch-7 loop. That’s 20 sc per motif side, or 5 sc per inch (5 sc per 2.54 cm).
Rnd 1: With the RS facing, join cream with a sl st in the first free loop after any curtain corner. Ch 1. Work 5 sc in each free loop up to the next curtain corner, ch 2; repeat from * to * around. Sl st to the 1st sc.
Where two motifs meet along the edge, go straight from the last loop of one motif into the first loop of the next. Don’t add any stitches at the seam. At each curtain corner, the ch 2 passes over the corner anchor.
- Top and bottom: 10 motifs x 4 loops x 5 sc = 200 sc each
- Left and right: 14 motifs x 4 loops x 5 sc = 280 sc each
- Total: 960 sc and 4 corner ch-2 sps
Rnd 2 (with rod loops): Ch 1. Sc in each sc and (sc, ch 2, sc) in each corner ch-2 sp, then sl st to the 1st sc. On the top edge only, make a rod loop on the 2nd sc and on every 20th sc after it (the 2nd, 22nd, 42nd and so on, ending on the 202nd sc of that side). To make a rod loop, ch 30 and sl st in the sc you just made.
- Top and bottom: 200 + 2 corner sc = 202 sc each
- Left and right: 280 + 2 corner sc = 282 sc each
- Total: 968 sc, 4 corner ch-2 sps and 11 rod loops
The rod loops don’t add to the sc count. They fit rods up to 1 in (2.5 cm) in diameter. Fasten off and weave in the ends.
Why the math works: Each motif adds exactly 4 loops to each side. At 5 sc per loop, that’s 20 sc per 4 in (10.2 cm), which matches the motif spacing, so the border lies flat without stretching or rippling. Rnd 2 adds only the 2 corner sc on each side. With the rod loops spaced 20 sc apart, one falls near every motif seam, with one at each end.
Final Blocking
- Weave in all tails before blocking. Hide them in the Rnd 2 sc of the hearts, not in the chain loops.
- Soak the curtain in cool water for 15 minutes, then press out the water in a towel. Don’t wring it.
- If your mats are smaller than the panel, block it in sections. Lay a band of 4 rows flat and pin the top border straight.
- Pin each heart’s dip and bottom point on a straight vertical line, then pin the lobes round.
- Ease each lattice loop into a smooth arc. Use a tape measure to check that heart centers are 4 in (10.2 cm) apart.
- Pin the side borders straight. The width should be 40.8 in (103.6 cm).
- Let each section dry completely before you move on.
- Check that the final height is 56.8 in (144.3 cm), not counting the rod loops.
Final Quality-Control Checklist
- 140 motifs (70 rose and 70 cream) in a correct checkerboard
- Every heart has 14 scallops and 1 point shell
- Every motif has 16 loops, and every interior seam has 4 joins
- No twisted loops or missed joins at the 4-way diamonds
- Border Rnd 1: 200 / 280 / 200 / 280 sc
- Border Rnd 2: 202 / 282 / 202 / 282 sc, with 11 rod loops on top
- Panel measures 40.8 x 56.8 in (103.6 x 144.3 cm)
- All tails woven in securely
Troubleshooting
The heart cups or curls: Rnd 2 is too tight. Use a hook one size larger for Rnd 2 only.
The lobes look flat: Check that you worked 6 increases on each side, and pin the lobes rounder when blocking.
The bottom point is blunt: Make sure you skipped 2 sts on each side of the point shell.
The scallops don’t land evenly: Recount Rnd 2. Each side needs 30 sts from the dip to the point.
The curtain is wider than 40 in (101.6 cm): Your loops are too loose. Use ch 6 loops on the remaining motifs.
The border ripples: Some loops have more than 5 sc. Recount each side against 200 / 280.
Care
Hand wash in cool water with a mild detergent, roll the curtain in a towel to remove water and dry it flat, reblocking as needed. Don’t tumble dry, because it stretches the loops and distorts the hearts.

Final Notes
Here’s how the measurements build. A 48-ch ring becomes a 3.25 x 3 in (8.3 x 7.6 cm) heart, and the 16-loop lattice round spaces the hearts 4 in (10.2 cm) apart. Ten by fourteen motifs make 40 x 56 in (101.6 x 142.2 cm). The 0.4 in (1.0 cm) border brings the panel to 40.8 x 56.8 in (103.6 x 144.3 cm). If your first heart and first two joined motifs measure correctly, the rest of the curtain will too.
Happy crocheting!