Stacked Hearts Christmas Tree Ornament Crochet Pattern

This little Christmas tree is made from three teal hearts stacked from small to large. Each heart has a cream outline, a short ribbed cream trunk sits at the base, and a chained cream loop at the top lets it hang. It looks graphic and modern but still feels homemade, and it suits a tree, a gift tag, or a window hook.

The palette is just two colors: a deep teal for the hearts and a warm cream for the outlines, trunk, and loop. The cream rounds frame each heart clearly, so the tree shape reads well even from across the room.

All instructions use US crochet terms. The finished ornament measures 3.0 in (7.6 cm) wide and 5.0 in (12.7 cm) tall without the loop, or 6.5 in (16.5 cm) tall including the loop.

Construction is simple. You make three teal hearts from a magic ring, growing them to three sizes with extra rounds, and edge each one in cream. You then make a small ribbed trunk, overlap the hearts so each point rests in the top dip of the heart below, sew everything together, and chain the hanging loop.

Finished Size and Construction

  • Finished size: 3.0 in (7.6 cm) wide x 5.0 in (12.7 cm) tall, plus a 1.5 in (3.8 cm) loop
  • Skill level: Easy to intermediate
  • Terminology: US crochet terms
  • Yarn weight: DK / light worsted (#3) cotton
  • Hook: 3.5 mm (E-4)
  • Number of pieces: 4 (3 hearts + 1 trunk), plus a loop worked in place
  • Layout: 1 column of 3 hearts, small at the top and large at the bottom, trunk centered below
  • Piece sizes (with border): Heart A 1.4 x 1.3 in (3.6 x 3.3 cm); Heart B 2.2 x 1.8 in (5.6 x 4.6 cm); Heart C 3.0 x 2.3 in (7.6 x 5.8 cm); trunk 0.9 x 0.8 in (2.3 x 2.0 cm)
  • Size before border: Heart A 1.0 x 0.9 in (2.5 x 2.3 cm); Heart B 1.8 x 1.4 in (4.6 x 3.6 cm); Heart C 2.6 x 1.9 in (6.6 x 4.8 cm)
  • Border depth: 0.2 in (0.5 cm) on each side

Materials

Use a smooth mercerized or matte cotton in DK weight. Cotton gives crisp stitch definition and keeps the hearts flat after blocking. Acrylic will also work, but it gives a softer, puffier outline.

  • Teal (Color A): 10 g, about 24 m (26 yd)
  • Cream (Color B): 8 g, about 19 m (21 yd)

These quantities include a margin of roughly 40% for a gauge swatch, tails, and sewing. One ornament uses about 6 g of teal and 5 g of cream.

Tools:
– 3.5 mm (E-4) crochet hook
– Tapestry needle
– Scissors
– Stitch marker
– Ruler or tape measure
– Rust-proof pins and a blocking mat or folded towel
– Spray bottle with water

Abbreviations (US Terms)

  • ch – chain
  • sl st – slip stitch
  • sc – single crochet
  • dc – double crochet
  • tr – treble crochet
  • rev sc – reverse single crochet
  • BLO – back loop only
  • sp – space
  • st(s) – stitch(es)

Special stitch – reverse single crochet (rev sc, also called crab stitch): Working from left to right (right-handed), insert the hook into the next stitch to the right, yarn over, pull up a loop, yarn over, and pull through both loops. This makes the corded, beaded edge you see on each heart.

Gauge and Checkpoints

Base gauge: 20 sc x 22 rows = 4 in (10.2 cm) in sc with a 3.5 mm hook.

Motif gauge: Round 1 of any heart measures 1.0 in (2.5 cm) wide x 0.9 in (2.3 cm) tall.

Make Heart A first and measure it before going on. It is quick and shows straight away whether your tension matches.

Checkpoints:
– After Round 1 (all hearts): 1.0 x 0.9 in (2.5 x 2.3 cm)
– After Round 2 (Hearts B and C): 1.8 x 1.4 in (4.6 x 3.6 cm)
– After Round 3 (Heart C): 2.6 x 1.9 in (6.6 x 4.8 cm)
– Each border adds 0.4 in (1.0 cm) to the width and height of a heart

If your heart is too big, go down to a 3.25 mm or 3.0 mm hook. If it is too small, go up to a 3.75 mm hook. A difference of 0.1 in (0.3 cm) is fine on Round 1. Larger differences grow with every round and will change the tree’s proportions.

Three nested crocheted hearts with cream borders and teal centers on teal background.

Heart A (Small Heart)

With teal, make a magic ring.

Round 1: Ch 3 (does not count as a st), into the ring work 3 tr, 3 dc, ch 1, tr, ch 1, 3 dc, 3 tr, ch 3, sl st into the ring. Pull the ring tight. (13 sts, 2 ch-1 sps, 2 ch-3 sps.)

Pulling the ring shut draws both ch-3s together, which forms the top dip. The single tr between the two ch-1 sps forms the bottom point. Fasten off and weave in the tail.

Checkpoint: 1.0 x 0.9 in (2.5 x 2.3 cm).

Heart B (Medium Heart)

Round 1: Work as for Heart A Round 1. Do not fasten off.

Round 2 (growth round): Ch 2 (does not count), 4 dc in the beginning ch-3 sp, 2 dc in each of the next 3 tr, dc in each of the next 3 dc, dc in the ch-1 sp, (dc, ch 2, dc) in the point tr, dc in the ch-1 sp, dc in each of the next 3 dc, 2 dc in each of the next 3 tr, 4 dc in the end ch-3 sp, sl st into the sl st at the dip. (30 dc and 1 ch-2 point sp.)

Each side has 15 dc: 4 + 6 + 3 + 1 + 1, with the last of these being the dc beside the point. Fasten off.

Checkpoint: 1.8 x 1.4 in (4.6 x 3.6 cm).

Heart C (Large Heart)

Rounds 1–2: Work as for Heart B. Do not fasten off.

Round 3 (growth round): Ch 2 (does not count), 2 dc in each of the next 4 dc, dc in each of the next 11 dc, (dc, ch 2, dc) in the ch-2 sp, dc in each of the next 11 dc, 2 dc in each of the last 4 dc, sl st into the sl st at the dip. (40 dc and 1 ch-2 point sp.)

Each side has 20 dc: 8 + 11 + 1. The increases sit only over the lobes, which keeps the lobes round while the sides stay straight and lead down to a sharp point. Fasten off.

Checkpoint: 2.6 x 1.9 in (6.6 x 4.8 cm).

Trunk

With cream, ch 5.

Row 1: Sc in the 2nd ch from the hook and in each ch across, turn. (4 sc.)

Rows 2–5: Ch 1, sc in BLO of each st across, turn. (4 sc.)

Fasten off and leave a 10 in (25.4 cm) tail for sewing. The rows run vertically on the finished tree, so the BLO ridges become the vertical ribs of the trunk.

Checkpoint: 0.9 in (2.3 cm) wide across the 5 rows x 0.8 in (2.0 cm) tall along the 4 sts.

Make All Pieces

For one ornament:

  • Teal: 1 Heart A, 1 Heart B, 1 Heart C
  • Cream: border on all 3 hearts (see Border below), 1 trunk, the loop, and sewing

Work the cream border on each heart as soon as its teal rounds are done, so that all three hearts are fully edged before you join them.

Layout (top to bottom):

      [loop]
     [ A  ]       1.4 in wide
   [   B    ]     2.2 in wide
 [     C      ]   3.0 in wide
     [trunk]      0.9 in wide

All pieces are centered on one vertical line through the dips and points.

Joining

Method: Overlap the hearts and tack them down with cream on the back of the fabric.

  1. Lay Heart C face up. Place Heart B on top so its point covers Heart C’s top dip, overlapping by 0.5 in (1.3 cm).
  2. The part of Heart B’s edge that sits on Heart C is 9 border sts: the 3 point sts plus 3 sts on each side. Using a 12 in (30.5 cm) cream strand, sew through each of these 9 rev sc and into the Heart C fabric directly underneath, one stitch to one stitch. Do not skip any or double up.
  3. Repeat to place Heart A on Heart B with the same 0.5 in (1.3 cm) overlap and the same 9 tacked sts.
  4. Place the trunk behind Heart C’s point so 0.2 in (0.5 cm) is hidden and 0.6 in (1.5 cm) shows. Whipstitch the trunk’s top edge (5 row ends) to the back of Heart C, one stitch per row end.

Tension: Tack firmly enough that the layers don’t shift, but not so tightly that the edges dimple or the cream sts flatten. Keep the needle on the back and catch only the back half of the teal sts so nothing shows on the front.

Hanging loop: Join cream with a sl st in the center sc of Heart A’s top dip, ch 20, sl st in the same st. Fasten off and weave in the ends.

Size checkpoint: The joined tree should measure 3.0 in (7.6 cm) wide and 5.0 in (12.7 cm) from Heart A’s top to the trunk’s bottom: 1.3 + 1.8 + 2.3 = 5.4 in, minus two 0.5 in overlaps = 4.4 in, plus 0.6 in of trunk = 5.0 in (12.7 cm).

Border

Border gauge: About 5 sc per 1 in (2.5 cm) along the outer edge, and 2 rounds = 0.2 in (0.5 cm) deep.

Each heart gets the same two cream rounds, starting at the dip. The counts below are per side, from the dip to the point, not counting the dip st or the point sts.

Round 1 (conversion round): Join cream with a sl st in the sl st at the dip, ch 1, sc in the same place (dip sc). Work the first side as given below, then 3 sc in the point (the point tr on Heart A, the ch-2 sp on Hearts B and C). Work the second side as a mirror of the first, then sl st to the first sc.

  • Heart A: 2 sc in the ch-3 sp, sc in the next tr, 2 sc in the next tr, sc in the next tr, sc in each of the next 3 dc, sc in the ch-1 sp. (10 per side.) Total: 10 + 10 + 3 point + 1 dip = 24 sc.
  • Heart B: Sc in each of the 15 dc. (15 per side.) Total: 15 + 15 + 3 + 1 = 34 sc.
  • Heart C: Sc in each of the 20 dc. (20 per side.) Total: 20 + 20 + 3 + 1 = 44 sc.

On Heart B the 34 sc break down as 30 sc worked 1 per existing dc, plus 4 extra (3 at the point and 1 at the dip). On Heart C the 44 sc break down as 40 + 4.

Round 2 (trim round): Ch 1, rev sc in each sc around, sl st to the first st. (Heart A 24, Heart B 34, Heart C 44 rev sc.) Fasten off and weave in the ends.

Why the math works: Each round 1 border sits on an edge of about 4.8 in (12.2 cm) on Heart A, 6.8 in (17.3 cm) on Heart B, and 8.8 in (22.4 cm) on Heart C. At 5 sc per inch those edges need 24, 34, and 44 sc, which matches the counts exactly. The 3 sc at each point turn the sharp corner. The single sc at each dip adds no fullness, so the dip stays crisp. The rev sc round uses 1 st per sc, so the edge neither ruffles nor pulls in.

Final Blocking

  1. Weave in all ends before blocking, except the trunk tail if you have not sewn the trunk yet.
  2. Lay the ornament face down on a blocking mat or folded towel.
  3. Pin it to 3.0 in (7.6 cm) wide and 5.0 in (12.7 cm) tall.
  4. Pin each heart point sharply and ease the lobes into smooth curves with your fingers.
  5. Pin the trunk square, 0.9 in (2.3 cm) wide.
  6. Spray until damp but not soaked.
  7. Leave to dry completely, which takes about 4–6 hours.
  8. Unpin it and straighten the loop by hand.

Final Quality-Control Checklist

  • Heart sizes with border: 1.4, 2.2, and 3.0 in (3.6, 5.6, and 7.6 cm) wide
  • Each border has 24, 34, and 44 sts with no gaps at the dips
  • The points are sharp and centered on one vertical line
  • The overlaps are 0.5 in (1.3 cm) and invisible from the front
  • The trunk shows 0.6 in (1.5 cm) below Heart C, with ribs running vertically
  • The loop is 1.5 in (3.8 cm) long and attached at the center of Heart A
  • The ornament hangs straight without tilting
  • All ends are secure

Troubleshooting

The heart cups or curls: Your tension is too tight on the tr. Go up a hook size or loosen the yarn-overs.

The border ruffles: You may have added sts on the lobes. Recount against 24, 34, or 44.

The border pulls the heart into a bowl: Your rev sc is too tight. Work it with a hook one size larger.

The point is blunt: Make sure you work all 3 sc into the single point st or sp, not spread across nearby sts.

The dip gapes open: Pull the magic ring tighter before Round 2, then weave the tail through the dip twice.

The tree hangs crooked: Move the loop to the true center sc of Heart A’s dip.

The tree is too tall: Increase the overlaps to 0.6 in (1.5 cm) each.

Care

Hand wash in cool water with a mild soap, press out the water in a towel, and dry it flat, re-pinning if needed. Store it flat or hang it so the loop isn’t crushed.

Handmade crocheted ornament with three stacked teal hearts and cream trim hanging on pine branch with golden lights.

Final Notes

The whole ornament follows one measurement chain. Round 1 at 1.0 x 0.9 in (2.5 x 2.3 cm) sets the scale. Round 2 grows it to 1.8 x 1.4 in (4.6 x 3.6 cm), and Round 3 to 2.6 x 1.9 in (6.6 x 4.8 cm). The cream border adds 0.4 in (1.0 cm), giving 1.4, 2.2, and 3.0 in (3.6, 5.6, and 7.6 cm) widths. Two 0.5 in (1.3 cm) overlaps and 0.6 in (1.5 cm) of visible trunk bring the tree to 3.0 x 5.0 in (7.6 x 12.7 cm). If you check Round 1 first, every later number follows.

Happy crocheting!

Leave a Comment