{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "highland-cow-granny-square",
  "title": "Highland Cow Granny Square — Free Crochet Pattern",
  "meta_description": "Free Highland cow granny square crochet pattern with curved horns, floppy ears and shaggy hair. Rounds worked in dk yarn make a 3.24-inch square",
  "published_at": "2026-08-06",
  "updated_at": "2026-08-06",
  "author": "Nora",
  "thumbnail_url": "data/images/highland-cow-granny-square-hero.webp",
  "meta": {
    "title": "Highland Cow Granny Square — Free Crochet Pattern",
    "pattern_name": "Highland Cow Granny Square — Free Crochet Pattern",
    "difficulty": "Easy-Intermediate",
    "time_needed": "1-2 Hours",
    "rating": 4.8,
    "made_count": "3.4K",
    "taxonomy": {
      "category": "Blankets & Afghans",
      "skill_level": "Easy-Intermediate",
      "yarn_weight": "DK / Sport",
      "tags": [
        "granny square",
        "highland cow",
        "cow granny square",
        "animal granny square",
        "free crochet pattern",
        "dk yarn",
        "blanket square",
        "back loop only",
        "front loop only",
        "magic loop",
        "farmhouse crochet",
        "crochet square"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Highland Cow Granny Square — Free Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Easy-Intermediate",
          "value": "Comfortable with magic loop, dc/hdc increases, and BLO/FLO work",
          "raw_text": "Comfortable with magic loop, dc/hdc increases, and BLO/FLO work",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "hero-info-2",
          "label": "One Evening",
          "value": "1-2 hours per square, faster once the rhythm clicks",
          "raw_text": "1-2 hours per square, faster once the rhythm clicks",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "hero-info-3",
          "label": "Farmhouse Charm",
          "value": "Perfect for cozy animal blankets and rustic gifts",
          "raw_text": "Perfect for cozy animal blankets and rustic gifts",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 2,
      "card_type": "about",
      "code": "about",
      "title": "About",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "about-info-1",
          "label": "A 3D animal square",
          "value": "This highland cow granny square has a 3D effect because it is finished with multiple layers. We create the horns and the lovely floppy ears of the highland cow, and the face, nose and horns are all added on top of a plain square",
          "raw_text": "This highland cow granny square has a 3D effect because it is finished with multiple layers. We create the horns and the lovely floppy ears of the highland cow, and the face, nose and horns are all added on top of a plain square",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "about-info-2",
          "label": "The hair",
          "value": "The best part of the Highland cow is the beautiful hair. You will need a darning needle to create the hair for the highland cow — work loop stitches or lay yarn strands between the horns. But be creative and try different styles",
          "raw_text": "The best part of the Highland cow is the beautiful hair. You will need a darning needle to create the hair for the highland cow — work loop stitches or lay yarn strands between the horns. But be creative and try different styles",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "about-info-3",
          "label": "Mix and match",
          "value": "Like many other animal granny square patterns, this highland cow granny square is attached to a basic solid granny square, so you can easily combine it with a wide range of designs. This method maintains the shape perfectly, and the squares make great pillow covers or other decorative crochet items",
          "raw_text": "Like many other animal granny square patterns, this highland cow granny square is attached to a basic solid granny square, so you can easily combine it with a wide range of designs. This method maintains the shape perfectly, and the squares make great pillow covers or other decorative crochet items",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "about-info-4",
          "label": "Size and colors",
          "value": "Yarn of your choice in 5 colors. The sample is made with dk sport wool yarn and a 3.00 mm crochet hook, and the finished granny square is about 3.24 × 3.24 inches. Abbreviations use US terms",
          "raw_text": "Yarn of your choice in 5 colors. The sample is made with dk sport wool yarn and a 3.00 mm crochet hook, and the finished granny square is about 3.24 × 3.24 inches. Abbreviations use US terms",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 3,
      "card_type": "materials",
      "code": "materials",
      "title": "Materials",
      "raw_heading": "",
      "quantity": 1,
      "groups": [
        {
          "order": 1,
          "group_code": "group-1",
          "group_name": "",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-1-1",
              "label": "",
              "value": "Yarn of Your Choice- 5 colors, the sample is made with dk sport wool yarn, with a 3.00 mm crochet hook, the finished Granny Square is about 3.24 × 3.24 inches",
              "raw_text": "Yarn of Your Choice- 5 colors, the sample is made with dk sport wool yarn, with a 3.00 mm crochet hook, the finished Granny Square is about 3.24 × 3.24 inches"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet Hook — we used a 3.00 mm hook",
              "raw_text": "Crochet Hook, we used a 3.00 mm hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Darning Needle",
              "raw_text": "Darning Needle"
            },
            {
              "order": 4,
              "row_type": "item",
              "code": "mat-1-4",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors"
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 4,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations (US Terms)",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain stitch",
          "raw_text": "ch = chain stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain stitch"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-hdc",
          "label": "hdc",
          "value": "half double crochet",
          "raw_text": "hdc = half double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "hdc",
          "meaning": "half double crochet"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-sc",
          "label": "sc",
          "value": "single crochet",
          "raw_text": "sc = single crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sc",
          "meaning": "single crochet"
        },
        {
          "order": 4,
          "row_type": "abbrev",
          "code": "abbrev-dc",
          "label": "dc",
          "value": "double crochet",
          "raw_text": "dc = double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc",
          "meaning": "double crochet"
        },
        {
          "order": 5,
          "row_type": "abbrev",
          "code": "abbrev-slst",
          "label": "slst",
          "value": "slip stitch for joining to a different round",
          "raw_text": "slst = slip stitch for joining to a different round",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "slst",
          "meaning": "slip stitch for joining to a different round"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-st",
          "label": "st",
          "value": "stitch",
          "raw_text": "st = stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st",
          "meaning": "stitch"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-sk",
          "label": "sk",
          "value": "skip",
          "raw_text": "sk = skip",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sk",
          "meaning": "skip"
        },
        {
          "order": 8,
          "row_type": "abbrev",
          "code": "abbrev-inc",
          "label": "inc",
          "value": "increase",
          "raw_text": "inc = increase",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "inc",
          "meaning": "increase"
        },
        {
          "order": 9,
          "row_type": "abbrev",
          "code": "abbrev-tog",
          "label": "tog",
          "value": "together",
          "raw_text": "tog = together",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "tog",
          "meaning": "together"
        },
        {
          "order": 10,
          "row_type": "abbrev",
          "code": "abbrev-bl",
          "label": "BL",
          "value": "back loop",
          "raw_text": "BL = back loop",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "BL",
          "meaning": "back loop"
        },
        {
          "order": 11,
          "row_type": "abbrev",
          "code": "abbrev-blo",
          "label": "BLO",
          "value": "back loop only",
          "raw_text": "BLO = back loop only",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "BLO",
          "meaning": "back loop only"
        },
        {
          "order": 12,
          "row_type": "abbrev",
          "code": "abbrev-flo",
          "label": "FLO",
          "value": "front loop only",
          "raw_text": "FLO = front loop only",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "FLO",
          "meaning": "front loop only"
        }
      ]
    },
    {
      "order": 5,
      "card_type": "part",
      "code": "main-pattern",
      "title": "Highland Cow Face, Ears, Nose & Horns",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "main-pattern-info-14",
          "label": "The Face of Highland Cow",
          "value": "The face is worked in the round from a magic loop over 3 rounds, then the ears, nose and horns are added as separate layers.",
          "raw_text": "The Face of Highland Cow",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "main-pattern-round-1",
          "label": "Round 1",
          "value": "Magic loop, ch3 as a standing st(count as 1dc), 2hdc, 1dc, 1hdc, 2sc, 1hdc; Repeat [1dc, 2hdc, 1dc, 1hdc, 2sc, 1hdc], slst to the top of the first ch3.",
          "raw_text": "Round 1.  Magic loop, ch3 as a standing st(count as 1dc), 2hdc, 1dc, 1hdc, 2sc, 1hdc; Repeat [1dc, 2hdc, 1dc, 1hdc, 2sc, 1hdc], slst to the top of the first ch3.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "main-pattern-round-2",
          "label": "Round 2",
          "value": "ch3 as a standing st (count as 1dc), 1dc in the same st to finish a dc inc, 2hdc, dc inc, hdc inc, 2hdc, hdc inc; Repeat [dc inc, 2hdc, dc inc, hdc inc, 2hdc, hdc inc], slst to the top of the first ch3.",
          "raw_text": "Round 2.  ch3 as a standing st (count as 1dc), 1dc in the same st to finish a dc inc, 2hdc, dc inc, hdc inc, 2hdc, hdc inc; Repeat [dc inc, 2hdc, dc inc, hdc inc, 2hdc, hdc inc], slst to the top of the first ch3.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "ch1 as a standing st, 1sc in the same st, 3sc, (sc inc)×2; [4sc, (sc inc)×2] repeat 3 times, slst to the first true sc. Fasten off.",
          "raw_text": "Round 3.  ch1 as a standing st, 1sc in the same st, 3sc, (sc inc)×2; [4sc, (sc inc)×2] repeat 3 times, slst to the first true sc. Fasten off.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "main-pattern-info-1",
          "label": "Right Ear of Highland Cow",
          "value": "Turn over. We can see each corner is formed by two sc-inc (4sc). The right ear starts in the bottom-most sc (BL) of the two sc-inc at the top right corner.",
          "raw_text": "Right Ear of Highland Cow. Turn over. We can see each corner is formed by two sc-inc(4sc).",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "round",
          "code": "main-pattern-info-2",
          "label": "Right Ear",
          "value": "Turn over. Join yarn in the bottom-most sc (BL) of the two sc-inc (4sc) at top right corner. Ch5, Return, sk1, work in BLO of remaining chs: 1 slst, 1sc, 1hdc, dc inc. Work 2 slst in the join loop to turn to the opposite side of this chain. FLO (from 1st to 4th): hdc inc, 2sc, slst. Join to the first slst, fasten off.",
          "raw_text": "Turn over. Join yarn in the bottom-most sc(BL) of the two sc-inc (4sc) at top right corner. Ch5, Return, sk1, work in BLO of remaining chs: 1slst, 1sc, 1hdc, dc inc. Work 2 slst in the join loop to turn to the opposite side of this chain. FLO (from 1st to 4th): hdc inc, 2sc, slst. Join to the first slst, fasten off.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "main-pattern-info-15",
          "label": "Step by step",
          "value": "Step by step: Turn over. We can see each corner is formed by two sc-inc (4sc). Join yarn in the bottom-most sc (BL) at top right corner. Ch5. Return, sk1, work in BLO of remaining chs: 1 slst, 1sc, 1hdc, dc inc. Work 2 slst in the join loop to turn the position and work on the opposite side of this chain. FLO (from 1st to 4th): hdc inc, 2sc, slst. Join to the first slst, and fasten off.",
          "raw_text": "Turn over. We can see each corner is formed by two sc-inc(4sc). Join yarn in the bottom-most sc( BL) at top right corner. Ch5. Return, sk1, work in BLO of remaining chs: 1 slst, 1sc, 1hdc, dc inc. Work 2 slst in the join loop to turn the position and work on the opposite side of this chain. FLO (from 1st to 4th): hdc inc, 2sc, slst. Join to the first slst, and fasten off.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "info",
          "code": "main-pattern-info-5",
          "label": "Left Ear of Highland Cow",
          "value": "Rotate it 180 degrees to make the right ear on the left side.",
          "raw_text": "Left Ear of Highland Cow. Rotate it 180 degrees to make the right ear on the left side.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "round",
          "code": "main-pattern-info-6",
          "label": "Left Ear",
          "value": "Join new yarn in the corresponding st (BL) of the right ear's join loop. Ch5, return, sk1, work in BLO of remaining chs: 1 slst, 2sc, hdc inc. 1 slst in the next st (BL), 1 slst in the original join loop to work on the opposite side of this chain. FLO of the same chain group (from 1st to 4th): dc inc, 1hdc, 1sc, 1 slst. Join to the first slst, fasten off.",
          "raw_text": "Join new yarn in the corresponding st (BL) of the right ear's join loop. Ch5, return, sk1, work in BLO of remaining chs: 1 slst, 2sc, hdc inc. 1 slst in the next st (BL), 1 slst in the original join loop to work on the opposite side of this chain. FLO of the same chain group (from 1st to 4th): dc inc, 1hdc, 1sc, 1 slst. Join to the first slst, fasten off.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "info",
          "code": "main-pattern-info-16",
          "label": "Step by step",
          "value": "Step by step: Position it upside down to make the right ear on the left side. Join new yarn in the corresponding st (BL) of the right ear's join loop. Ch5. Return, sk1, work in BLO of remaining chs: 1 slst, 2sc, hdc inc. 1 slst in the next st (BL), 1 slst in the original join loop to work on the opposite side of this chain. FLO (from 1st to 4th): dc inc, 1hdc, 1sc, 1 slst. Join to the first slst, and fasten off.",
          "raw_text": "Position it upside down to make the right ear on the left side. Join new yarn in the corresponding st (BL) of the right ear's join loop. Ch5. Return, sk1, work in BLO of remaining chs: 1 slst, 2sc, hdc inc. 1 slst in the next st (BL), 1 slst in the original join loop to work on the opposite side of this chain. FLO (from 1st to 4th): dc inc, 1hdc, 1sc, 1 slst. Join to the first slst, and fasten off.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "info",
          "code": "main-pattern-info-9",
          "label": "Nose of Highland Cow",
          "value": "The nose is worked in one round from a magic loop to form the oval muzzle; the nostrils are embroidered later.",
          "raw_text": "Nose of Highland Cow",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "round",
          "code": "main-pattern-info-10",
          "label": "Nose",
          "value": "Magic loop, ch3 as a standing st(count as 1dc), 3dc, 4hdc, 4dc, 4hdc, slst to the top of the first ch3, fasten off.",
          "raw_text": "Magic loop, ch3 as a standing st(count as 1dc), 3dc, 4hdc, 4dc, 4hdc, slst to the top of the first ch3, fasten off.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "info",
          "code": "main-pattern-info-11",
          "label": "Curved Horns of Highland Cow",
          "value": "The horns are worked along a starting chain, with sc2tog and hdc2tog at each end.",
          "raw_text": "Curved Horns of Highland Cow",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "round",
          "code": "main-pattern-info-12",
          "label": "Curved Horns",
          "value": "Ch22, return, sk1, BLO: 1slst, 1sc, sc2tog, hdc2tog, 8hdc, hdc2tog, sc2tog, 1sc, 2 slst. Fasten off.",
          "raw_text": "Ch22, return, sk1, BLO: 1slst, 1sc, sc2tog, hdc2tog, 8hdc, hdc2tog, sc2tog, 1sc, 2 slst. Fasten off.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 6,
      "card_type": "part",
      "code": "part-2",
      "title": "Granny Square Background & Assembly",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "part-2-info-6",
          "label": "Granny Square Background",
          "value": "Create a simple, solid granny square for the perfect background. The cow face, horns and nose are attached to it afterwards, which keeps the shape perfectly.",
          "raw_text": "Granny Square Background. Create a simple, solid granny square for the perfect background.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "part-2-info-1",
          "label": "Round 1",
          "value": "magic loop, ch3(count as 1dc), 3dc+ch3; [4dc+ch3] repeat 3 times, omit the final ch3, work ch1+1hdc to join the top of the first ch3.",
          "raw_text": "Round 1. magic loop, ch3(count as 1dc), 3dc+ch3; [4dc+ch3] repeat 3 times, omit the final ch3, work ch1+1hdc to join the top of the first ch3.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "part-2-info-2",
          "label": "Rounds 2-3",
          "value": "ch3 to begin (count as 1dc), 1dc in the same corner. Work 1dc in each st around, (2dc+ch3+2dc) in each corner as you go. When you reach the end of the round and return to the starting corner, 2dc into the starting corner, join the round with ch1, 1hdc into the top of the beginning ch3.",
          "raw_text": "Round 2-3. ch3 to begin (count as 1dc), 1dc in the same corner. Work 1dc in each st around, (2dc+ch3+2dc) in each corner as you go. When you reach the end of the round and return to the starting corner,  2dc  into the starting corner, join the round with  ch1, 1hdc  into the top of the beginning ch3.",
          "round_start": 2,
          "round_end": 3,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "part-2-info-3",
          "label": "Round 4",
          "value": "Work as above for sides and corners. When you return to the starting corner, work 2dc+ch3, then slst to the top of the first true dc. Fasten off.",
          "raw_text": "For Round 4:  Work as above for sides and corners. When you return to the  starting corner , work 2dc+ch3, then slst to the top of the first true dc. Fasten off.",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "part-2-info-5",
          "label": "Assemble",
          "value": "Attach the face and horn to the granny square, then sew the nose to the face. Stitch two nostrils, and make two French knots for the eyes. Create textured hair using loop stitches or yarn strands between the horns.",
          "raw_text": "Attach the face and horn to the granny square, then sew the nose to the face. Stitch two nostrils, and make two French knots for the eyes. Create textured hair using loop stitches or yarn strands between the horns.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/highland-cow-granny-square-hero.webp",
    "data/images/highland-cow-granny-square-step-2.webp",
    "data/images/highland-cow-granny-square-step-3.webp",
    "data/images/highland-cow-granny-square-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/highland-cow-granny-square-hero.webp",
      "alt": "Highland Cow Granny Square — Free Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/highland-cow-granny-square-hero.webp",
      "alt": "Highland Cow Granny Square — Free Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/highland-cow-granny-square-step-2.webp",
      "alt": "Highland Cow Granny Square — Free Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/highland-cow-granny-square-step-3.webp",
      "alt": "Highland Cow Granny Square — Free Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/highland-cow-granny-square-step-4.webp",
      "alt": "Highland Cow Granny Square — Free Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 0
}