The Hearthside Heart is a small, cozy Christmas ornament: two deep burgundy single-crochet hearts sewn back to back with a crisp cream whipstitch rim. A slim cream loop sits in the center dip so the heart hangs straight on a branch.
The look is classic and a little rustic, like a homemade cabin ornament. Tight single crochet gives the burgundy a firm, fine-ridged texture. The cream wraps around the edge stand out against it like hand stitching on felt.
This pattern uses US crochet terms. The finished ornament measures about 3 in (7.6 cm) wide and 2.75 in (7.0 cm) tall, not counting the hanging loop, which adds about 1.75 in (4.4 cm).
The construction is simple. You work each heart flat in rows from the bottom point up, split the top into two lobes, and edge it with one round of single crochet. Then you hold two hearts together, add a little padding, and whipstitch them closed in cream before attaching the loop.
Finished Size and Construction
- Finished size: 3 in (7.6 cm) wide x 2.75 in (7.0 cm) tall
- Hanging loop: about 1.75 in (4.4 cm) tall
- Skill level: Easy
- Terminology: US crochet terms
- Yarn weight: DK (light worsted, #3)
- Hook: 3.5 mm (E-4)
- Number of pieces: 2 heart layers (front and back), plus 1 chain loop
- Layout: front layer stacked directly over back layer, wrong sides facing
- Single heart body (Rows 1–12): 2.5 in (6.4 cm) wide x 2.2 in (5.6 cm) tall
- Size before border (edged heart): 2.75 in (7.0 cm) wide x 2.5 in (6.4 cm) tall
- Border depth: about 0.125 in (0.3 cm) on each edge from the cream whipstitch wraps
Materials
Use a smooth DK yarn with good stitch definition. Cotton or a cotton blend gives the crispest edge, and a soft acrylic also works well. Avoid fuzzy yarns, because they blur the cream wraps.
- Color A, Burgundy: 10 g, about 23 m (25 yd)
- Color B, Cream: 4 g, about 9 m (10 yd)
These quantities include a margin for a gauge swatch and tails. One ornament actually uses a little less.
Tools:
– 3.5 mm (E-4) crochet hook
– Tapestry needle
– Small pinch of polyester fiberfill (optional, for light padding)
– 2 stitch markers
– Scissors
– Pins or clips
– Ruler or tape measure
Abbreviations (US Terms)
- ch – chain
- sc – single crochet
- sc2tog – single crochet 2 together
- sl st – slip stitch
- st(s) – stitch(es)
- RS / WS – right side / wrong side
sc2tog: Insert the hook in the next st, yarn over, pull up a loop. Insert the hook in the following st, yarn over, pull up a loop (3 loops on hook). Yarn over and pull through all 3 loops. This makes 1 st from 2.
Whipstitch (sewn): Bring the needle from back to front through a pair of matching edge stitches, then carry the yarn over the outer edge to the back again. Each pass makes one visible wrap.
Pattern notes: The ch 1 at the start of each row does not count as a stitch. Work every row into both loops.
Gauge and Checkpoints
Gauge: 21 sc and 22 rows = 4 in (10.2 cm) in single crochet rows. That works out to about 5.25 sts and 5.5 rows per 1 in (2.5 cm).
Make one heart layer first and measure it before making the second one. A heart is quicker than a swatch and tells you everything you need to know.
Checkpoints:
– After Row 6 (13 sts): the row measures 2.5 in (6.4 cm) across.
– After Row 9: the heart measures about 1.6 in (4.1 cm) tall from the point.
– After Row 12: the heart measures about 2.2 in (5.6 cm) tall from the point to the top of a lobe.
– After the edging round: the heart measures 2.75 in (7.0 cm) wide x 2.5 in (6.4 cm) tall.
Too big? Go down a hook size to 3.25 mm (D-3) and work a little tighter.
Too small? Go up to a 3.75 mm (F-5) hook.
Keep the fabric firm either way. Loose stitches let padding show through and make the cream wraps sit unevenly.

Heart Layer (Make 2)
Use Color A (burgundy).
Row 1: Ch 2. Work 3 sc in the 2nd ch from the hook. Turn. (3 sts)
Row 2: Ch 1. Work 2 sc in the first st, sc in the next st, 2 sc in the last st. Turn. (5 sts)
Row 3: Ch 1. Work 2 sc in the first st, sc in the next 3 sts, 2 sc in the last st. Turn. (7 sts)
Row 4: Ch 1. Work 2 sc in the first st, sc in the next 5 sts, 2 sc in the last st. Turn. (9 sts)
Row 5: Ch 1. Work 2 sc in the first st, sc in the next 7 sts, 2 sc in the last st. Turn. (11 sts)
Row 6: Ch 1. Work 2 sc in the first st, sc in the next 9 sts, 2 sc in the last st. Turn. (13 sts)
Checkpoint: Row 6 should measure 2.5 in (6.4 cm) across.
Rows 7–9: Ch 1. Sc in each st across. Turn. (13 sts in each row)
The straight rows round out the widest part of the heart before the lobes begin. Place a marker in the 7th (center) st of Row 9. This stitch stays unworked and forms the dip between the lobes.
First Lobe
Row 10: Ch 1. Sc in the first 6 sts. Leave the rest unworked. Turn. (6 sts)
Row 11: Ch 1. Sc2tog, sc in the next 2 sts, sc2tog. Turn. (4 sts)
Row 12: Ch 1. Sc2tog twice. (2 sts)
Fasten off with a short tail.
Second Lobe
Row 10: Skip the marked center st of Row 9. Join Color A in the next st. Ch 1, sc in the same st and in the next 5 sts. Turn. (6 sts)
Row 11: Ch 1. Sc2tog, sc in the next 2 sts, sc2tog. Turn. (4 sts)
Row 12: Ch 1. Sc2tog twice. (2 sts)
Do not fasten off yet. Weave the first lobe’s tail into the back of its lobe now.
Checkpoint: The heart measures about 2.2 in (5.6 cm) tall from the point to the lobe tops.
Edging Round
This round smooths the stepped row edges and gives the whipstitch a clean, countable line of stitches. Fasten off the working yarn, then join it at the dip so the round starts at the center. With RS facing, join Color A in the marked center st of Row 9.
Edging: Ch 1. Work the sections below in order:
- Dip: 1 sc in the marked center st. (1)
- Lobe A: 1 sc in each of the 3 row ends of Rows 10–12 going up the inner side. Then 2 sc in each of the 2 top sts, and 1 sc in each of the 3 row ends going down the outer side. (3 + 4 + 3 = 10)
- Side A: 1 sc in each row end of Rows 9 down to 2 (8 row ends). Work 2 sc in the row ends of Row 5 and Row 3 instead of 1. (8 + 2 = 10)
- Point: 3 sc into the base of Row 1. (3)
- Side B: Repeat Side A going up from Row 2 to Row 9. (10)
- Lobe B: 1 sc in each of the 3 outer row ends, 2 sc in each of the 2 top sts, and 1 sc in each of the 3 inner row ends. (10)
Sl st to the first sc to join. Total: 1 + 10 + 10 + 3 + 10 + 10 = 44 sts.
Fasten off and weave in the ends on the WS.
The 2 extra sc on each side let the edge follow the diagonal increase rows without cupping. The 2-sc pairs on the lobe tops round the curves, and the 3-sc point keeps the tip sharp.
Checkpoint: The edged heart measures 2.75 in (7.0 cm) wide x 2.5 in (6.4 cm) tall.
Make Both Pieces
- Color A (burgundy): 2 heart layers, each with Rows 1–12 and the edging round, 44 edge sts each
- Color B (cream): 1 hanging loop and the whipstitch border
Layout (side view, stacked):
[ FRONT heart – RS facing out ]
[ padding (optional) ]
[ BACK heart – RS facing out ]
Line up both hearts so the dips, lobe tops and points sit exactly on top of each other.
Joining
The two layers are joined by the cream whipstitch, which also forms the visible border. Both layers have exactly 44 edge stitches, so the join is a 1:1 match. Each front stitch pairs with the stitch directly behind it.
- Lightly block both hearts flat (see Final Blocking) and let them dry before joining.
- Hold the layers WS together. Clip them at the dip, the point and both lobe tops.
- Match the dip st of the front with the dip st of the back. These are the first sts of each edging round.
- Count around both layers from the dip. Front st 6 (the first top st of Lobe A) should line up with back st 6, and front st 22 (the center sc of the point) with back st 22. If the counts drift, re-clip before you sew.
Tension: Pull each wrap just snug enough to sit flat on the edge. If you pull too hard, the edge puckers and the lobes lose their shape. If you sew too loosely, the wraps loop and the padding peeks out.
Size checkpoint: Once joined, the ornament measures 3 in (7.6 cm) wide x 2.75 in (7.0 cm) tall.
Border (Cream Whipstitch Edge)
Border gauge: about 5 wraps per 1 in (2.5 cm). The 44 wraps spread evenly around a perimeter of about 8.75 in (22.2 cm).
Cut a 36 in (91.4 cm) length of Color B and thread it on the tapestry needle.
Setup: Start at the dip. Bring the needle out between the layers so the knot hides inside, coming through the front dip st.
Border round: Work 1 wrap through each matched pair of edge sts, inserting the needle under both loops of the front and back sts together. Count each section as you go:
- Dip: 1 wrap (1)
- Lobe A: 10 wraps (10)
- Side A: 10 wraps (10)
- Point: 3 wraps, one through each of the 3 point sc (3)
- Side B: 10 wraps (10)
- Lobe B: 7 wraps, then stop with 3 inner-lobe pairs left unsewn (7 of 10)
Padding: Push a small pinch of fiberfill through the gap, about 0.5 in (1.3 cm) wide. Spread it thinly with the back of the hook. The ornament should look softly rounded, not stuffed.
Finish Lobe B: Work the last 3 wraps (10 of 10). That makes 44 wraps in total.
Why the math works: Each layer has 44 edge sts, and each wrap joins one front st to one back st. So 44 wraps close the heart exactly once around, with no gaps and no doubled stitches. Every wrap adds the same small depth of about 0.125 in (0.3 cm) to each outer edge. That takes the 2.75 in (7.0 cm) x 2.5 in (6.4 cm) edged heart to the 3 in (7.6 cm) x 2.75 in (7.0 cm) finished size.
Do not fasten off yet. Leave the cream yarn threaded and parked at the dip.
Hanging Loop
With Color B and the hook, ch 24. That makes a chain about 3.5 in (8.9 cm) long. Fasten off, leaving a 6 in (15.2 cm) tail at each end.
Fold the chain in half to make a doubled loop about 1.75 in (4.4 cm) tall. Thread both tails through the dip between the layers and tie them together inside the heart. Use the parked whipstitch yarn to make one extra wrap over the base of the loop to anchor it. Then bury all ends inside the padding and trim.
Final Blocking
- Lay the finished ornament on a towel or blocking mat.
- Mist it lightly with water until it is damp, not soaked.
- Gently shape the lobes into even curves, pinch the point sharp, and press the dip in with a fingertip.
- Pin it to 3 in (7.6 cm) wide x 2.75 in (7.0 cm) tall.
- Smooth the cream wraps so they sit perpendicular to the edge and are evenly spaced.
- Straighten the loop so it stands up from the center dip.
- Let it dry completely before you unpin it, usually a few hours.
For acrylic yarn, hover a steam iron about 1 in (2.5 cm) above the piece instead of misting. Never press the iron onto the yarn.
Final Quality-Control Checklist
- Each heart layer ends Row 12 with 2 sts on each lobe.
- Each edging round has exactly 44 sts.
- Both layers line up at the dip, the point and both lobe tops.
- The border has exactly 44 cream wraps, evenly spaced.
- No padding shows between the wraps.
- The finished size is 3 in (7.6 cm) x 2.75 in (7.0 cm).
- The loop is about 1.75 in (4.4 cm) tall and centered in the dip.
- All tails are hidden inside the heart.
Troubleshooting
The heart is lopsided. Count Rows 2–6. Each must start and end with an increase. Also check that you skipped exactly the 7th st of Row 9.
The lobes look pointy. Make sure you worked 2 sc into each top st on the edging round. Shape the lobes again while blocking.
The edges cup or ruffle. Cupping means the edging is too tight, so loosen your tension or go up a hook size for that round only. Ruffling means you worked extra row-end stitches, so recount to 10 per side.
The front and back don’t match. One edging round is off by a stitch. Recount both to 44 and fix the edging before you sew.
The cream wraps look crowded. Make sure you’re working one wrap per stitch pair, not between stitches.
The ornament hangs crooked. Re-center the loop exactly at the dip st.
Care
Spot clean with cool water and mild soap, then reshape the heart and let it dry flat. Store it flat or hanging, away from direct sun, so the burgundy keeps its rich color.

Final Notes
The measurement chain is short and easy to check. Row 6 is 2.5 in (6.4 cm) wide, and the Row 12 heart is 2.2 in (5.6 cm) tall. The edged heart is 2.75 in (7.0 cm) x 2.5 in (6.4 cm), and the finished ornament is 3 in (7.6 cm) x 2.75 in (7.0 cm). Keep both layers at 44 edge stitches, match them 1:1 with 44 cream wraps, and the heart will close neatly every time. Make one for the tree, a few for gift toppers, or a matching set for a holiday swap.
Happy crocheting!