{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "how-to-crochet-a-granny-square-cardigan",
  "title": "How to Crochet a Granny Square Cardigan",
  "meta_description": "Crochet a cozy granny square cardigan from 27 colorful squares in DK yarn with a 5mm hook — full pattern, joining steps, edging, and two cuff options",
  "published_at": "2026-07-10",
  "updated_at": "2026-07-11",
  "author": "Ruby",
  "thumbnail_url": "data/images/how-to-crochet-a-granny-square-cardigan-hero.webp",
  "meta": {
    "title": "How to Crochet a Granny Square Cardigan",
    "pattern_name": "How to Crochet a Granny Square Cardigan",
    "difficulty": "Intermediate",
    "time_needed": "About 45 Hours",
    "rating": 4.8,
    "made_count": "1.8K",
    "taxonomy": {
      "category": "Wearables",
      "skill_level": "Intermediate",
      "yarn_weight": "DK",
      "tags": [
        "granny square cardigan",
        "crochet cardigan",
        "granny square",
        "wearable crochet",
        "free crochet pattern",
        "DK weight yarn",
        "autumn crochet",
        "crochet sweater",
        "colorful crochet",
        "patchwork cardigan",
        "intermediate crochet",
        "cardigan pattern"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "How to Crochet a Granny Square Cardigan",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Intermediate Level",
          "value": "Comfortable with granny clusters, magic loops, and color changes",
          "raw_text": "Comfortable with granny clusters, magic loops, and color changes",
          "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": "Week-Long Project",
          "value": "Around 45 hours of relaxing, portable square-by-square stitching",
          "raw_text": "Around 45 hours of relaxing, portable square-by-square stitching",
          "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": "Autumn Statement Piece",
          "value": "Maple-leaf reds, oranges, and browns in a wear-everywhere patchwork cardigan",
          "raw_text": "Maple-leaf reds, oranges, and browns in a wear-everywhere patchwork cardigan",
          "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": "",
          "value": "This pattern turns 27 cheerful granny squares into a full, wearable cardigan you'll reach for from the first cool morning of autumn onward. Each square repeats the same simple round from the center out (the sample stops at Round 7), so no single piece ever feels overwhelming — the magic is in the mix of eleven colors, anchored by a solid red background that ties every square together like a patchwork of maple leaves. It's perfect for crocheters who love portable, pick-up-and-put-down projects and want a first garment built from familiar motifs rather than complicated shaping",
          "raw_text": "This pattern turns 27 cheerful granny squares into a full, wearable cardigan you'll reach for from the first cool morning of autumn onward. Each square repeats the same simple round from the center out (the sample stops at Round 7), so no single piece ever feels overwhelming — the magic is in the mix of eleven colors, anchored by a solid red background that ties every square together like a patchwork of maple leaves. It's perfect for crocheters who love portable, pick-up-and-put-down projects and want a first garment built from familiar motifs rather than complicated shaping",
          "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": "",
          "value": "Skill-wise, this sits comfortably at intermediate. You'll start each square with a magic loop, work classic 3-dc granny clusters, and learn one clever trick worth keeping forever: joining with a ch1 plus hdc instead of a slip stitch when you're not changing colors, which lies flat, creates a nearly invisible seam, and lands your hook right in the corner where the next round begins. Beyond the squares there are four small connecting parts — bottom edge, front opening, and two cuff options — and a step-by-step assembly section. Plan for roughly 45 hours total — I spread mine over a week of evenings, and it never once felt like a race",
          "raw_text": "Skill-wise, this sits comfortably at intermediate. You'll start each square with a magic loop, work classic 3-dc granny clusters, and learn one clever trick worth keeping forever: joining with a ch1 plus hdc instead of a slip stitch when you're not changing colors, which lies flat, creates a nearly invisible seam, and lands your hook right in the corner where the next round begins. Beyond the squares there are four small connecting parts — bottom edge, front opening, and two cuff options — and a step-by-step assembly section. Plan for roughly 45 hours total — I spread mine over a week of evenings, and it never once felt like a race",
          "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": "",
          "value": "The finished cardigan has a loose, relaxed fit thanks to the 5.00mm hook paired with DK weight yarn — all the warmth of a heavier sweater without the bulk, and lovely drape through the body and sleeves. In the red, orange, and brown palette it reads unmistakably autumnal, while small pops of yellow, white, and light blue keep it playful rather than heavy. It's a genuine statement piece you'll be asked about every time you wear it, and a heartfelt gift — though fair warning, you may not want to give it away",
          "raw_text": "The finished cardigan has a loose, relaxed fit thanks to the 5.00mm hook paired with DK weight yarn — all the warmth of a heavier sweater without the bulk, and lovely drape through the body and sleeves. In the red, orange, and brown palette it reads unmistakably autumnal, while small pops of yellow, white, and light blue keep it playful rather than heavy. It's a genuine statement piece you'll be asked about every time you wear it, and a heartfelt gift — though fair warning, you may not want to give it away",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 3,
      "card_type": "why_love",
      "code": "why-love",
      "title": "Why You'll Love This Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "why-love-1",
          "label": "",
          "value": "I made this cardigan bit by bit during stolen pockets of free time, and that's exactly what I love most about it: 27 squares — each worked in the same easy repeating round — means every single sitting ends with a finished piece in your hands. There's real satisfaction in pulling that magic loop tail tight and watching a perfect center appear, and the ch1-plus-hdc join is one of those small techniques that makes you feel like a smarter crocheter forever after — your hook lands exactly in the corner for the next round, no awkward slip-stitching across the top. I also adore the color play. With red as the constant background, no two squares need to match, so choosing each new combination of orange, brown, mustard, or steel blue feels like a tiny creative decision rather than a chore. By the time you reach the assembly steps, you've got a stack of squares that looks like autumn leaves piled on a table — and watching them become an actual garment you can wear is honestly the best part of all 45 hours",
          "raw_text": "I made this cardigan bit by bit during stolen pockets of free time, and that's exactly what I love most about it: 27 squares — each worked in the same easy repeating round — means every single sitting ends with a finished piece in your hands. There's real satisfaction in pulling that magic loop tail tight and watching a perfect center appear, and the ch1-plus-hdc join is one of those small techniques that makes you feel like a smarter crocheter forever after — your hook lands exactly in the corner for the next round, no awkward slip-stitching across the top. I also adore the color play. With red as the constant background, no two squares need to match, so choosing each new combination of orange, brown, mustard, or steel blue feels like a tiny creative decision rather than a chore. By the time you reach the assembly steps, you've got a stack of squares that looks like autumn leaves piled on a table — and watching them become an actual garment you can wear is honestly the best part of all 45 hours",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 5,
      "card_type": "common_mistakes",
      "code": "common-mistakes",
      "title": "Common Mistakes & How to Fix Them",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "mistake",
          "code": "mistake-1",
          "label": "Leaving the magic loop too loose before",
          "value": "After working your ch3 and the three repeats of 3dc+ch3 into the loop, pull the tail firmly until the center closes completely, then weave that tail through the backs of the round-one stitches in a circle before trimming. In a garment that gets stretched and worn, an unsecured magic loop will slowly creep open at the center of the square — and with 27 squares, even a few loose centers are very visible",
          "raw_text": "After working your ch3 and the three repeats of 3dc+ch3 into the loop, pull the tail firmly until the center closes completely, then weave that tail through the backs of the round-one stitches in a circle before trimming. In a garment that gets stretched and worn, an unsecured magic loop will slowly creep open at the center of the square — and with 27 squares, even a few loose centers are very visible",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "mistake",
          "code": "mistake-2",
          "label": "Replacing round two's ch1 + hdc join",
          "value": "That substitution is the most common autopilot error in this pattern. The instructions deliberately have you omit the final chains, work only ch1, and join with an hdc into the top of the starting ch3 — the hdc's height stands in for the missing chains AND parks your hook exactly in the corner space where round three begins. If you slip stitch instead, you'll have to slip-stitch across to reach the corner, adding bulk and a visible ridge",
          "raw_text": "That substitution is the most common autopilot error in this pattern. The instructions deliberately have you omit the final chains, work only ch1, and join with an hdc into the top of the starting ch3 — the hdc's height stands in for the missing chains AND parks your hook exactly in the corner space where round three begins. If you slip stitch instead, you'll have to slip-stitch across to reach the corner, adding bulk and a visible ridge",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "mistake",
          "code": "mistake-3",
          "label": "Forgetting that the starting ch3 counts as a dc",
          "value": "Every round here begins with ch3 counted as the first double crochet, so you work only 2dc beside it to complete a 3-dc corner cluster. Crocheters who add a full 3dc end up with four-stitch clusters that make squares ruffle; those who ignore the ch3 entirely get two-stitch corners that make squares pull inward. Count each cluster as three, including the chain, and always join into the top chain of that ch3",
          "raw_text": "Every round here begins with ch3 counted as the first double crochet, so you work only 2dc beside it to complete a 3-dc corner cluster. Crocheters who add a full 3dc end up with four-stitch clusters that make squares ruffle; those who ignore the ch3 entirely get two-stitch corners that make squares pull inward. Count each cluster as three, including the chain, and always join into the top chain of that ch3",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "mistake",
          "code": "mistake-4",
          "label": "Working round three's middle clusters",
          "value": "round three onward, the side clusters go into the gap between two 3-dc groups of the previous round — not into the tops of the stitches themselves. Working into stitches makes the fabric tight and puckered and throws off your counts at the corners. Tilt the square and look for the open space between clusters; your hook should slide in without splitting any yarn",
          "raw_text": "round three onward, the side clusters go into the gap between two 3-dc groups of the previous round — not into the tops of the stitches themselves. Working into stitches makes the fabric tight and puckered and throws off your counts at the corners. Tilt the square and look for the open space between clusters; your hook should slide in without splitting any yarn",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "mistake",
          "code": "mistake-5",
          "label": "Trusting your tension to stay identical",
          "value": "Squares made on different days, in different moods, or with different colors of the same yarn line often come out slightly different sizes — and mismatched squares turn into wavy, puckered seams during assembly. Measure each finished square against your first one, and wet- or steam-block the whole set to a single measurement before you join anything",
          "raw_text": "Squares made on different days, in different moods, or with different colors of the same yarn line often come out slightly different sizes — and mismatched squares turn into wavy, puckered seams during assembly. Measure each finished square against your first one, and wet- or steam-block the whole set to a single measurement before you join anything",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 6,
      "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": "You can use ANY other yarn with ANY other color, but if you like my style and want to replicate one, here are the yarns I used:",
              "raw_text": "You can use ANY other yarn with ANY other color, but if you like my style and want to replicate one, here are the yarns I used:"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "The yarn I chose is the DK weight yarn. This type of yarn offers all the warmth and benefits of worsted-weight yarns, but without the bulk, making it ideal for warm sweaters, scarves, hats, and mittens.",
              "raw_text": "The yarn I chose is the  DK weight yarn . This type of yarn offers all the warmth and benefits of worsted-weight yarns, but without the bulk, making it ideal for warm sweaters, scarves, hats, and mittens."
            }
          ]
        },
        {
          "order": 2,
          "group_code": "group-2",
          "group_name": "",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-2-1",
              "label": "",
              "value": "Note: Each skein = 50g.",
              "raw_text": "*Note: Each skein = 50g.*"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-2-2",
              "label": "",
              "value": "These are approximate figures. To ensure that you can complete the sweater successfully, please prepare a little more yarn than these figures indicate.",
              "raw_text": "These are approximate figures. To ensure that you can complete the sweater successfully, please prepare a little more yarn than these figures indicate."
            }
          ]
        },
        {
          "order": 3,
          "group_code": "orange-red-yarn",
          "group_name": "Orange-red Yarn",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-3-1",
              "label": "",
              "value": "5 skeins (250g)",
              "raw_text": "5 skeins (250g)"
            }
          ]
        },
        {
          "order": 4,
          "group_code": "coral-color-yarn",
          "group_name": "Coral color Yarn",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-4-1",
              "label": "",
              "value": "3 skeins (150g)",
              "raw_text": "3 skeins (150g)"
            }
          ]
        },
        {
          "order": 5,
          "group_code": "bright-yellow-beige-yarn",
          "group_name": "Bright yellow / Beige Yarn",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-4-2",
              "label": "",
              "value": "2 skeins each (100g each)",
              "raw_text": "Bright yellow / Beige Yarn: 2 skeins each (100g each )"
            }
          ]
        },
        {
          "order": 6,
          "group_code": "accent-colors-yarn",
          "group_name": "White / Light mint / Dark teal / Brown / Mustard / Steel blue / Light brown",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-4-3",
              "label": "",
              "value": "1 skein each (50g each)",
              "raw_text": "White / Light mint / Dark teal / Brown/ Mustard / Steel blue / Light brown: 1 skein each (50g each )"
            }
          ]
        },
        {
          "order": 7,
          "group_code": "crochet-hook",
          "group_name": "Crochet Hook",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-7-1",
              "label": "",
              "value": "5.00mm hook — creates a loose and relaxed fit for the finished cardigan, and paired with DK weight yarn suits cozy autumn and winter cardigans perfectly.",
              "raw_text": "I used a  5.00mm hook , which creates a loose and relaxed fit for the finished cardigan. Paired with DK weight yarn, this choice aligns perfectly with the cozy characteristics of autumn and winter cardigans."
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 7,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations",
      "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-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": 3,
          "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": 4,
          "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": 5,
          "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": 6,
          "row_type": "abbrev",
          "code": "abbrev-sl-st",
          "label": "Sl St",
          "value": "slip stitch for joining to a different round",
          "raw_text": "Sl St = 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": "Sl St",
          "meaning": "slip stitch for joining to a different round"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-sp",
          "label": "sp",
          "value": "space",
          "raw_text": "sp = space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sp",
          "meaning": "space"
        },
        {
          "order": 8,
          "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": 9,
          "row_type": "abbrev",
          "code": "abbrev-dec",
          "label": "dec",
          "value": "decrease",
          "raw_text": "dec = decrease",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dec",
          "meaning": "decrease"
        },
        {
          "order": 10,
          "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": 11,
          "row_type": "abbrev",
          "code": "abbrev-bpdc",
          "label": "BPdc",
          "value": "back post double crochet",
          "raw_text": "BPdc = back post double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "BPdc",
          "meaning": "back post double crochet"
        },
        {
          "order": 12,
          "row_type": "abbrev",
          "code": "abbrev-fpdc",
          "label": "FPdc",
          "value": "front post double crochet",
          "raw_text": "FPdc = front post double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "FPdc",
          "meaning": "front post double crochet"
        },
        {
          "order": 13,
          "row_type": "abbrev",
          "code": "abbrev-yo",
          "label": "yo",
          "value": "yarn over",
          "raw_text": "yo = yarn over",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "yo",
          "meaning": "yarn over"
        }
      ]
    },
    {
      "order": 8,
      "card_type": "part",
      "code": "granny-square-a-total-of-27-pi",
      "title": "Granny Square (a total of 27 pieces — create different looks by changing color combinations)",
      "raw_heading": "Granny Square( a total of 27 pieces, create different looks by changing color combination)",
      "quantity": 27,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "granny-square-a-total-of-27-pi-info-11",
          "label": "Info",
          "value": "This is a very classic granny square pattern for crochet enthusiasts of all levels, as it only requires double crochet, chain stitches, and slip stitches. You can easily adjust the size of your square by freely increasing or decreasing the number of rounds, as each round is crocheted in the same way. I use ch1+hdc to join in the end when I do not change color. This lies flat, creates a nearly invisible seam, and works up quickly.",
          "raw_text": "This is a very classic granny square pattern for crochet enthusiasts of all levels, as it only requires double crochet, chain stitches, and slip stitches. You can easily adjust the size of your square by freely increasing or decreasing the number of rounds, as each round is crocheted in the same way. I use ch1+hdc to join in the end when I do not change color. This lies flat, creates a nearly invisible seam, and works up quickly.",
          "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": "granny-square-a-total-of-27-pi-round-1",
          "label": "Round 1",
          "value": "Magic loop, ch3(count as dc), 2dc+ch3 in the loop, [3dc+ch3 in the loop] repeat 3 times, pull the tail tightly, sl st to the top of first ch3, fasten off.",
          "raw_text": "Round 1. Magic loop, ch3(count as dc), 2dc+ch3 in the loop, [3dc+ch3 in the loop] repeat 3 times, pull the tail tightly, sl st to the top of first ch3, fasten off.",
          "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": "granny-square-a-total-of-27-pi-round-2",
          "label": "Round 2",
          "value": "Add new color yarn in any corner, ch3(count as dc), 2dc in the same corner, 3dc+ch3 in the next corner; [3dc in the same corner, 3dc+ch3 in the next corner] repeat 3 times, omit the final ch2 and work only ch1, then join with a hdc into the top of the starting ch3.",
          "raw_text": "Add new color yarn in any corner, ch3(count as dc), 2dc in the same corner, 3dc+ch3 in the next corner; [3dc in the same corner, 3dc+ch3 in the next corner] repeat 3 times,  omit the final ch2 and work only ch1 , then  join with a hdc  into the top of the starting ch3. This hdc replaces a sl st, securing the round while keeping your hook at the corner for the next round.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "granny-square-a-total-of-27-pi-info-1",
          "label": "Info",
          "value": "This hdc replaces a sl st, securing the round while keeping your hook at the corner for the next round.",
          "raw_text": "This hdc replaces a sl st, securing the round while keeping your hook at the corner for the next round.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "granny-square-a-total-of-27-pi-round-3",
          "label": "Round 3",
          "value": "ch3 as a standing st(count as dc), 2dc in the same corner, 3dc in next gap between two 3-dc groups, 3dc+ch3 in the next corner; [3dc in the same corner, 3dc in next gap, 3dc+ch3 in the next corner] repeat 3 times, sl st to the top of the first ch3, fasten off.",
          "raw_text": "Round 3. ch3 as a standing st(count as dc), 2dc in the same corner, 3dc in next gap between two 3-dc groups, 3dc+ch3 in the next corner; [3dc in the same corner, 3dc in next gap, 3dc+ch3 in the next corner] repeat 3 times, sl st to the top of the first ch3, fasten off.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "round",
          "code": "granny-square-a-total-of-27-pi-round-4-7",
          "label": "Round 4-7",
          "value": "For each of the remaining 4 rounds, work 3dc+ch3+3dc in each corner sp, 3dc in each gap between two 3-dc groups. At the beginning of each round, make ch3 as a standing st(count as dc), while at the end, sl st to the top of the first ch3.",
          "raw_text": "Round 4-7. For each of the remaining 4 rounds, work 3dc+ch3+3dc in each corner sp, 3dc in each gap between two 3-dc groups. At the beginning of each round, make ch3 as a standing st(count as dc), while at the end, sl st to the top of the first ch3.",
          "round_start": 4,
          "round_end": 7,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "granny-square-a-total-of-27-pi-info-2",
          "label": "Info",
          "value": "When not changing colors, use the ch1 + hdc join method described above.",
          "raw_text": "When not changing colors, use the  ch1 + hdc join method  described above.",
          "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": "granny-square-a-total-of-27-pi-info-12",
          "label": "Info",
          "value": "I stopped at Round 7 for a size for average body type. Again, you can make these squares however big you like — just decrease or increase the number of rounds of each square.",
          "raw_text": "I stopped at  Round 7  for a size for average body type. Again, you can make these squares however big you like. As I mentioned above, just  decrease or increase  the number of rounds of each square.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "info",
          "code": "granny-square-a-total-of-27-pi-info-13",
          "label": "Info",
          "value": "All 27 squares use this same basic granny square — you can create completely different looks just by changing colors in a certain round or gap. Try switching yarns after a specific round or within certain spaces. For a simple look, use a new color in each round, or change colors every two rounds.",
          "raw_text": "They are all made with the basic granny square.  You can create completely different looks just by  changing colors  in a certain round or gap. Try switching yarns after a specific round or within certain spaces. For a simple look, use a new color in each round, or change colors every two rounds.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "part",
      "code": "part-2",
      "title": "Edge the Bottom Side",
      "raw_heading": "Edge the Bottom Side",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "part-2-round-1",
          "label": "Row 1",
          "value": "Attach yarn in bottom corner. Make an invisible standing st+dc. *[FPdc, BPdc] rep to next two adjacent corners. 1dc in first corner. dc2tog over both corners. dc in second corner*. Rep from * to the last corner. 2dc in the final corner.",
          "raw_text": "Row 1. Attach yarn in bottom corner. Make an invisible standing st+dc.  * [FPdc, BPdc] rep to next two adjacent corners. 1dc in first corner. dc2tog over both corners. dc in second corner * . Rep from * to the last corner. 2dc in the final corner.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "part-2-round-2-4",
          "label": "Row 2-4",
          "value": "Turn at the beginning, make an invisible standing st(count as dc), FPdc around each BPdc, BPdc around each FPdc, work across the round, and work 1dc in the final st.",
          "raw_text": "Row 2-4.  Turn at the beginning, make an invisible standing st(count as dc), FPdc around each BPdc, BPdc around each FPdc, work across the round, and work 1dc in the final st.",
          "round_start": 2,
          "round_end": 4,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "part-2-info-1",
          "label": "Info",
          "value": "Note: Do not skip the decreasing and ordinary dc.",
          "raw_text": "Note: Do not skip the decreasing and ordinary dc .",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "card_type": "part",
      "code": "part-3",
      "title": "Edge the Front Opening",
      "raw_heading": "Edge the Front Opening",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "part-3-round-1",
          "label": "Row 1",
          "value": "Edge from left to right, new yarn in side st, make invisible standing st, repeat [dc, FPdc] to reach next corner of square, dc in this corner; *repeat (FPdc, BPdc), when reach the seam of two granny squares, dc in first corner, dc dec over the two corners, dc in second corner*;",
          "raw_text": "Row 1. Edge from left to right, new yarn in side st, make invisible standing st, repeat [dc, FPdc] to reach next corner of square, dc in this corner;  * repeat (FPdc, BPdc), when reach the seam of two granny squares, dc in first corner, dc dec over the two corners, dc in second corner * ;",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "instruction",
          "code": "part-3-info-1",
          "label": "Steps",
          "value": "Repeat from * to reach the shoulder where three squares connect: Work a dc3tog across three squares: [1st incomplete dc] in first square’s corner, [2nd incomplete dc] in the BL of the middle st of the center square’s corner, [3rd incomplete dc] in the third square’s corner. Then repeat [FPdc, BPdc].",
          "raw_text": "Repeat from * to reach the shoulder where three squares connect: Work a dc3tog across three squares:[1st incomplete dc] in first square’s corner,[2nd incomplete dc] in the BL of the middle st of the center square’s corner,[3rd incomplete dc] in the third square’s corner. Then repeat [FPdc, BPdc].",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "instruction",
          "code": "part-3-info-2",
          "label": "Steps",
          "value": "Continue edge in this way, till you reach the last corner of the last square, dc in this corner, repeat [FPdc, dc], dc in the last st.",
          "raw_text": "Continue edge in this way, till you reach the last corner of the last square, dc in this corner, repeat [FPdc, dc], dc in the last st.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "part-3-round-2-4",
          "label": "Row 2-4",
          "value": "Turn, begin with an invisible standing st, FPdc around each BPdc, BPdc around each FPdc. Work up to the last st, work dc in the final st.",
          "raw_text": "Row 2-4.  Turn, begin with an invisible standing st, FPdc around each BPdc, BPdc around each FPdc. Work up to the last st, work dc in the final st.",
          "round_start": 2,
          "round_end": 4,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 11,
      "card_type": "part",
      "code": "part-4",
      "title": "Wrist Cuff: Option 1 – Straight Cuff",
      "raw_heading": "Wrist Cuff: Option 1 – Straight Cuff",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "part-4-round-1",
          "label": "Round 1",
          "value": "Add new yarn in right corner of any two adjacent corners, make an invisible standing st(count as dc), dc2tog over the two corners, dc in the 2nd corner; Repeat [FPdc, BPdc] for stitches, [dc, dc2tog, dc] for each of the two adjacent corners, work around, sl st to the first invisible standing st.",
          "raw_text": "Round 1. Add new yarn in right corner of any two adjacent corners, make an invisible standing st(count as dc), dc2tog over the two corners, dc in the 2nd corner; Repeat [FPdc, BPdc] for stitches, [dc, dc2tog, dc] for each of the two adjacent corners, work around, sl st to the first invisible standing st.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "part-4-round-2-5",
          "label": "Round 2-5",
          "value": "Begin with an invisible standing st, FPdc around each BPdc, BPdc around each FPdc (Regular dc and tog stitches also participate in this pattern), sl st to the first st.",
          "raw_text": "Round 2-5. Begin with an invisible standing st, FPdc around each BPdc, BPdc around each FPdc (Regular dc and tog stitches also participate in this pattern), sl st to the first st.",
          "round_start": 2,
          "round_end": 5,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 12,
      "card_type": "part",
      "code": "part-5",
      "title": "Wrist Cuff: Option 2 – Tapered Cuff",
      "raw_heading": "Wrist Cuff: Option 2- Tapered Cuff",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "part-5-info-1",
          "label": "Round 1",
          "value": "Repeat Round 1 of the previous straight cuff.",
          "raw_text": "Round 1. Repeat  Round 1  of the previous straight cuff.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "part-5-round-2",
          "label": "Round 2",
          "value": "ch2 as a standing st, FPdc around the post of the current and next sts to finish a FPdc2tog; Repeat [BPdc2tog, FPdc2tog] around, join to the first st with a sl st.",
          "raw_text": "Round 2. ch2 as a standing st, FPdc around the post of the  current and next sts  to finish a  FPdc2tog ; Repeat [ BPdc2tog ,  FPdc2tog ] around, join to the first st with a sl st.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "part-5-round-3",
          "label": "Round 3",
          "value": "Work FPdc around each BPdc2tog, BPdc around each FPdc2tog. Make ch2 as a standing st at the beginning, and sl st to the first true st at the end.",
          "raw_text": "Round 3. Work FPdc around each BPdc2tog, BPdc around each FPdc2tog. Make ch2 as a standing st at the beginning, and sl st to the first true st at the end.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "part-5-round-4-5",
          "label": "Round 4-5",
          "value": "Work FPdc around each BPdc, BPdc around each FPdc. At the beginning of each round, make ch3 to start, while at the end, sl st to the first true st.",
          "raw_text": "Round 4-5. Work FPdc around each BPdc, BPdc around each FPdc. At the beginning of each round, make ch3 to start, while at the end, sl st to the first true st.",
          "round_start": 4,
          "round_end": 5,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 13,
      "card_type": "assembly",
      "code": "assembly",
      "title": "Assembly Instructions",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "instruction",
          "code": "assembly-step-1",
          "label": "Step 1",
          "value": "This cardigan uses 27 granny squares total: the back panel features 9 squares (3×3 arrangement), each front panel uses 3 squares, and both sleeves require 6 squares each. The front and back panels and two sleeves connect along a seam at the neckline opening.",
          "raw_text": "This cardigan uses  27 granny squares total : the back panel features 9 squares (3×3 arrangement), each front panel uses 3 squares, and both sleeves require 6 squares each. The red line marks the seam where the front and back panels and two sleeves connect at the neckline opening.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "instruction",
          "code": "assembly-step-2",
          "label": "Step 2",
          "value": "Follow the layout pattern to join these squares. (Note that for the two squares at the bottom of each sleeve near the front opening, only join half of the edge to the front panels. After all other joins are complete, fold the piece in half and seam the remaining half edges of these squares to the back panel.)",
          "raw_text": "Follow the layout pattern to join these squares.  (Note that for the two squares at the bottom of each sleeve near the front opening, only join half of the edge to the front panels. After all other joins are complete, fold the piece in half and seam the remaining half edges of these squares to the back panel.)",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "instruction",
          "code": "assembly-step-3",
          "label": "Step 3",
          "value": "I use the slip stitch method to join, working only through the back loops of two corresponding stitches from both squares (one from each).",
          "raw_text": "I use the  slip stitch method  to join, working  only through the back loops  of two corresponding stitches from both squares(one from each).",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "instruction",
          "code": "assembly-step-4",
          "label": "Step 4",
          "value": "Work ch1 to skip over the raised seam from the joining of another direction.",
          "raw_text": "Work  ch1  to skip over the  raised seam  from the joining of another direction.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "instruction",
          "code": "assembly-step-5",
          "label": "Step 5",
          "value": "Another method is to use a darning needle to sew and connect the squares one by one.",
          "raw_text": "Another method  is to use a darning needle to sew and connect the squares one by one.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "instruction",
          "code": "assembly-step-7",
          "label": "Step 6",
          "value": "Start from the middle chain of any ch-3 corner, insert your hook into the back loops of the two chains, yo, pull up a loop.",
          "raw_text": "Step 1 : Start from the  middle chain of any ch-3 corner , insert your hook into the  back loops  of the two chains, yo, pull up a loop.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "instruction",
          "code": "assembly-step-8",
          "label": "Step 7",
          "value": "Insert your hook into the back loop of the next two corresponding stitches on each square.",
          "raw_text": "Step 2 : Insert your hook into the back loop of the next two corresponding stitches on each square.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "instruction",
          "code": "assembly-step-9",
          "label": "Step 8",
          "value": "Complete a sl st.",
          "raw_text": "Step 3 : Complete a  sl st.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "instruction",
          "code": "assembly-step-10",
          "label": "Step 9",
          "value": "Work sl st through the back loop of the next two corresponding stitches.",
          "raw_text": "Step 4 : Work sl st through the back loop of the next two corresponding stitches.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "instruction",
          "code": "assembly-step-11",
          "label": "Step 10",
          "value": "Continue join with slip stitches through the back loop of two corresponding stitches until you reach the middle chain of the next corner. Then begin join the next two squares. Remember, always start and end joins at the middle chain of each corner.",
          "raw_text": "Continue join with slip stitches through the back loop of two corresponding stitches until you reach the middle chain of the next corner. Then begin join the next two squares. Remember, always start and end joins at the middle chain of each corner.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "instruction",
          "code": "assembly-step-12",
          "label": "Step 11",
          "value": "When transitioning to a new direction, such as from horizontal to vertical, simply continue in the same manner. But when you reach the raised seam from the previous join of another direction, make ch1 to skip over it, and continue with your joining. This method creates a flat and neat connection.",
          "raw_text": "When transitioning to a new direction, such as from horizontal to vertical, simply continue in the same manner. But when you reach the  raised seam  from the previous join of another direction, make  ch1 to skip over it , and continue with your joining. This method creates a flat and neat connection.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "instruction",
          "code": "assembly-step-13",
          "label": "Step 12",
          "value": "Once all the squares are securely connected, fold the entire piece in half, sew the sleeves, and then connect the front and back panels.",
          "raw_text": "Once all the squares are securely connected, fold the  entire piece in half,  sew the sleeves, and then  connect the front and back panels .",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "instruction",
          "code": "assembly-step-14",
          "label": "Step 13",
          "value": "Or you can sew the two sleeves first, then attach them to both sides of the cardigan.",
          "raw_text": "Or you can sew the two sleeves first, then attach them to both sides of the cardigan.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 14,
      "card_type": "important_notes",
      "code": "important-notes",
      "title": "Important Notes",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 2,
          "row_type": "info",
          "code": "note-2",
          "label": "Note",
          "value": "💡 Crochet one complete test square through Round 7 and measure it before starting the batch. Gauge: a single granny square measures 7.48 × 7.48 inches in DK yarn with the 5mm hook — far better to discover a sizing issue after one square than after twenty-seven",
          "raw_text": "💡 Crochet one complete test square through Round 7 and measure it before starting the batch. Gauge: a single granny square measures 7.48 × 7.48 inches in DK yarn with the 5mm hook — far better to discover a sizing issue after one square than after twenty-seven",
          "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": "note-3",
          "label": "Note",
          "value": "💡 Lay all 27 squares out on a bed or floor and photograph the arrangement before assembly. Keep the red background constant but shuffle squares until the yellow, white, and light blue accent squares are evenly scattered — clusters of similar squares in one spot are the number-one reason patchwork garments look unbalanced",
          "raw_text": "💡 Lay all 27 squares out on a bed or floor and photograph the arrangement before assembly. Keep the red background constant but shuffle squares until the yellow, white, and light blue accent squares are evenly scattered — clusters of similar squares in one spot are the number-one reason patchwork garments look unbalanced",
          "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": "note-4",
          "label": "Note",
          "value": "💡 Tame the eleven colors with a simple system: keep each shade in its own zip bag or bowl, and wind small bobbins of the accent colors (you only need one 50g skein of seven of them) so you're not wrestling seven full skeins for a few rounds each",
          "raw_text": "💡 Tame the eleven colors with a simple system: keep each shade in its own zip bag or bowl, and wind small bobbins of the accent colors (you only need one 50g skein of seven of them) so you're not wrestling seven full skeins for a few rounds each",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "note-5",
          "label": "Note",
          "value": "💡 Buy your background orange-red first and check dye lots — you need five skeins of it, and a mid-cardigan dye-lot change in the most prominent color will show. The single-skein accent colors are far more forgiving since they never sit side by side",
          "raw_text": "💡 Buy your background orange-red first and check dye lots — you need five skeins of it, and a mid-cardigan dye-lot change in the most prominent color will show. The single-skein accent colors are far more forgiving since they never sit side by side",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "info",
          "code": "note-6",
          "label": "Note",
          "value": "💡 During assembly, place stitch markers in the corner ch-3 spaces of adjoining squares and pin edges together every few clusters before seaming. Granny square edges stretch, and markers keep corners perfectly aligned so the edging and cuffs attach where they should",
          "raw_text": "💡 During assembly, place stitch markers in the corner ch-3 spaces of adjoining squares and pin edges together every few clusters before seaming. Granny square edges stretch, and markers keep corners perfectly aligned so the edging and cuffs attach where they should",
          "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": "note-7",
          "label": "Note",
          "value": "💡 The sample is a medium (M), designed to fit individuals approximately 1.6–1.7 m (5’3″–5’7″) tall and weighing 50–65 kg (110–143 lbs). To adjust the size, simply increase or decrease the number of rounds in each granny square — the stitch pattern of every round is the same, so the stitch count progression stays uniform. If you prefer a longer cardigan, add granny squares to the bottom of both the front and back panels",
          "raw_text": "The sample is a medium (M) size , designed to fit a range of body types. It is ideal for individuals approximately 1.6–1.7 m (5’3″–5’7″) tall and weighing 50–65 kg (110–143 lbs). However, if you wish to adjust the size, it is quite easy. Simply increase or decrease the number of rounds in each single granny square , as the stitch pattern for each round remains consistent. BTW, if you prefer a longer cardigan, add granny squares to the bottom of both the front and back panels",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 15,
      "card_type": "faq",
      "code": "faq",
      "title": "FAQ",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "faq",
          "code": "faq-1",
          "label": "How much yarn does this granny square cardigan use in total?",
          "value": "Plan for about 950g of DK weight yarn, or nineteen 50g skeins: five of the orange-red background, three of coral, two each of bright yellow and beige, and one each of white, light mint, dark teal, brown, mustard, steel blue, and light brown. These are approximate figures, so prepare a little extra — especially of the orange-red in the same dye lot, since it appears in every square",
          "raw_text": "Plan for about 950g of DK weight yarn, or nineteen 50g skeins: five of the orange-red background, three of coral, two each of bright yellow and beige, and one each of white, light mint, dark teal, brown, mustard, steel blue, and light brown. These are approximate figures, so prepare a little extra — especially of the orange-red in the same dye lot, since it appears in every square",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How much yarn does this granny square cardigan use in total?",
          "answer": "Plan for about 950g of DK weight yarn, or nineteen 50g skeins: five of the orange-red background, three of coral, two each of bright yellow and beige, and one each of white, light mint, dark teal, brown, mustard, steel blue, and light brown. These are approximate figures, so prepare a little extra — especially of the orange-red in the same dye lot, since it appears in every square",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "Can I adjust the size of this cardigan?",
          "value": "Yes — and it's easy, because the stitch pattern of every round is identical. Increase or decrease the number of rounds in each granny square to change the overall size; the sample stops at Round 7 for a medium (M) that fits roughly 1.6–1.7 m (5’3″–5’7″) and 50–65 kg (110–143 lbs). If you prefer a longer cardigan, add granny squares to the bottom of both the front and back panels. Always measure one finished square first and multiply across the layout so you know your finished dimensions before making all 27",
          "raw_text": "Yes — and it's easy, because the stitch pattern of every round is identical. Increase or decrease the number of rounds in each granny square to change the overall size; the sample stops at Round 7 for a medium (M) that fits roughly 1.6–1.7 m (5’3″–5’7″) and 50–65 kg (110–143 lbs). If you prefer a longer cardigan, add granny squares to the bottom of both the front and back panels. Always measure one finished square first and multiply across the layout so you know your finished dimensions before making all 27",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I adjust the size of this cardigan?",
          "answer": "Yes — and it's easy, because the stitch pattern of every round is identical. Increase or decrease the number of rounds in each granny square to change the overall size; the sample stops at Round 7 for a medium (M) that fits roughly 1.6–1.7 m (5’3″–5’7″) and 50–65 kg (110–143 lbs). If you prefer a longer cardigan, add granny squares to the bottom of both the front and back panels. Always measure one finished square first and multiply across the layout so you know your finished dimensions before making all 27",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Do I really need all eleven colors?",
          "value": "Not at all — the color count is a style choice, not a structural one. A three-color version with the red background plus two accents keeps the patchwork charm with far less yarn juggling, and a single-color version turns it into an elegant textured cardigan. Just keep the total yardage around 950g of DK",
          "raw_text": "Not at all — the color count is a style choice, not a structural one. A three-color version with the red background plus two accents keeps the patchwork charm with far less yarn juggling, and a single-color version turns it into an elegant textured cardigan. Just keep the total yardage around 950g of DK",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Do I really need all eleven colors?",
          "answer": "Not at all — the color count is a style choice, not a structural one. A three-color version with the red background plus two accents keeps the patchwork charm with far less yarn juggling, and a single-color version turns it into an elegant textured cardigan. Just keep the total yardage around 950g of DK",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Is this a good first garment project?",
          "value": "It's one of the friendliest garments you can start with, because there's no complicated shaping — just 27 granny squares that repeat the same round, four small connecting parts, and a clear set of assembly steps. If you're comfortable with the magic loop, 3-dc clusters, and joining into chain spaces, you're ready for it",
          "raw_text": "It's one of the friendliest garments you can start with, because there's no complicated shaping — just 27 granny squares that repeat the same round, four small connecting parts, and a clear set of assembly steps. If you're comfortable with the magic loop, 3-dc clusters, and joining into chain spaces, you're ready for it",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Is this a good first garment project?",
          "answer": "It's one of the friendliest garments you can start with, because there's no complicated shaping — just 27 granny squares that repeat the same round, four small connecting parts, and a clear set of assembly steps. If you're comfortable with the magic loop, 3-dc clusters, and joining into chain spaces, you're ready for it",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Should I make this in cotton or acrylic yarn?",
          "value": "Both work beautifully — it depends on the season you're crocheting for. A DK-weight cotton gives a breathable, airy fabric ideal for spring days and cool summer evenings; use a hook one size smaller for a crisper, more refined fabric, or the original size (or larger) for a softer, faster-working feel. Wool or acrylic in DK makes the cozier autumn-and-winter version shown here. Whichever you choose, check your square size against the 7.48 × 7.48 inch gauge first",
          "raw_text": "Both work beautifully — it depends on the season you're crocheting for. A DK-weight cotton gives a breathable, airy fabric ideal for spring days and cool summer evenings; use a hook one size smaller for a crisper, more refined fabric, or the original size (or larger) for a softer, faster-working feel. Wool or acrylic in DK makes the cozier autumn-and-winter version shown here. Whichever you choose, check your square size against the 7.48 × 7.48 inch gauge first",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Should I make this in cotton or acrylic yarn?",
          "answer": "Both work beautifully — it depends on the season you're crocheting for. A DK-weight cotton gives a breathable, airy fabric ideal for spring days and cool summer evenings; use a hook one size smaller for a crisper, more refined fabric, or the original size (or larger) for a softer, faster-working feel. Wool or acrylic in DK makes the cozier autumn-and-winter version shown here. Whichever you choose, check your square size against the 7.48 × 7.48 inch gauge first",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/how-to-crochet-a-granny-square-cardigan-hero.webp",
    "data/images/how-to-crochet-a-granny-square-cardigan-step-2.webp",
    "data/images/how-to-crochet-a-granny-square-cardigan-step-3.webp",
    "data/images/how-to-crochet-a-granny-square-cardigan-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/how-to-crochet-a-granny-square-cardigan-hero.webp",
      "alt": "How to Crochet a Granny Square Cardigan — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/how-to-crochet-a-granny-square-cardigan-hero.webp",
      "alt": "How to Crochet a Granny Square Cardigan — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/how-to-crochet-a-granny-square-cardigan-step-2.webp",
      "alt": "How to Crochet a Granny Square Cardigan — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/how-to-crochet-a-granny-square-cardigan-step-3.webp",
      "alt": "How to Crochet a Granny Square Cardigan — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/how-to-crochet-a-granny-square-cardigan-step-4.webp",
      "alt": "How to Crochet a Granny Square Cardigan — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 4
}