{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "butterfly-granny-square-free-crochet-pattern",
  "title": "Butterfly Granny Square – Free Crochet Pattern",
  "meta_description": "Crochet an adorable butterfly granny square in just 4 rounds with 2 colors. Free pattern perfect for nature-themed blankets and quick stash-busting",
  "published_at": "2026-07-22",
  "updated_at": "2026-07-22",
  "author": "Ruby",
  "thumbnail_url": "data/images/butterfly-granny-square-free-crochet-pattern-hero.webp",
  "meta": {
    "title": "Butterfly Granny Square – Free Crochet Pattern",
    "pattern_name": "Butterfly Granny Square – Free Crochet Pattern",
    "difficulty": "Easy",
    "time_needed": "About 1 Hour",
    "rating": 4.8,
    "made_count": "1.4K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Easy",
      "yarn_weight": "DK",
      "tags": [
        "butterfly granny square",
        "granny square pattern",
        "free crochet pattern",
        "crochet butterfly",
        "nature crochet",
        "baby blanket squares",
        "scrap yarn project",
        "two color crochet",
        "crochet motif",
        "spring crochet",
        "insect granny squares",
        "quick crochet project"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Butterfly Granny Square – Free Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Easy Skill Level",
          "value": "Basic stitches, chain spaces, and one simple color change",
          "raw_text": "Basic stitches, chain spaces, and one simple color change",
          "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": "Under an Hour",
          "value": "Just 4 quick rounds from center ring to finished square",
          "raw_text": "Just 4 quick rounds from center ring to finished square",
          "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": "Nature-Lover's Charm",
          "value": "A whimsical butterfly motif for blankets, bags, and spring makes",
          "raw_text": "A whimsical butterfly motif for blankets, bags, and spring makes",
          "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 butterfly granny square turns a simple two-color square into a little piece of garden magic. Over just four rounds, a sweet butterfly with open, mirrored wings takes shape in the center, framed by a classic granny-style border. It's a wonderful motif for anyone who loves nature-inspired crochet — perfect for children's blankets, spring cushion covers, or as a companion piece to bee and ladybug squares in an insect-themed sampler. Because it only needs two colors and small amounts of yarn, it's also a lovely way to use up leftover DK from bigger projects",
          "raw_text": "This butterfly granny square turns a simple two-color square into a little piece of garden magic. Over just four rounds, a sweet butterfly with open, mirrored wings takes shape in the center, framed by a classic granny-style border. It's a wonderful motif for anyone who loves nature-inspired crochet — perfect for children's blankets, spring cushion covers, or as a companion piece to bee and ladybug squares in an insect-themed sampler. Because it only needs two colors and small amounts of yarn, it's also a lovely way to use up leftover DK from bigger projects",
          "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 square measures roughly 2.95 x 2.95 inches when worked in DK or sport-weight yarn, so it's petite, portable, and quick to multiply. The butterfly sits slightly raised against the flat background, giving the square a lovely tactile quality that little fingers can't resist tracing. Stitch a whole flock into a baby blanket, sew a single square onto a tote or cardigan pocket, or frame one in a tiny embroidery hoop for a handmade gift that costs pennies to make but looks completely charming",
          "raw_text": "The finished square measures roughly 2.95 x 2.95 inches when worked in DK or sport-weight yarn, so it's petite, portable, and quick to multiply. The butterfly sits slightly raised against the flat background, giving the square a lovely tactile quality that little fingers can't resist tracing. Stitch a whole flock into a baby blanket, sew a single square onto a tote or cardigan pocket, or frame one in a tiny embroidery hoop for a handmade gift that costs pennies to make but looks completely charming",
          "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 have a soft spot for motif squares that look far more complicated than they actually are, and this butterfly is exactly that. The whole butterfly appears in the first couple of rounds — you watch the wings bloom out of the center ring in mirrored pairs, and there's something genuinely delightful about the moment the shape suddenly reads as 'butterfly.' Then the background color comes in and does all the tidying up, filling in around the wings and squaring off the corners so the motif floats neatly in the middle of a proper granny square. What I find most satisfying is the contrast: the wings have a slightly raised, dimensional look, while the border sits smooth and flat, so the butterfly really pops off the fabric. I also love that it takes just two colors and barely any yarn — I've been making mine entirely from the odds and ends in my scrap basket. And because each square is under three inches, you get that 'I finished something!' feeling in under an hour. Fair warning: it is very hard to make just one",
          "raw_text": "I have a soft spot for motif squares that look far more complicated than they actually are, and this butterfly is exactly that. The whole butterfly appears in the first couple of rounds — you watch the wings bloom out of the center ring in mirrored pairs, and there's something genuinely delightful about the moment the shape suddenly reads as 'butterfly.' Then the background color comes in and does all the tidying up, filling in around the wings and squaring off the corners so the motif floats neatly in the middle of a proper granny square. What I find most satisfying is the contrast: the wings have a slightly raised, dimensional look, while the border sits smooth and flat, so the butterfly really pops off the fabric. I also love that it takes just two colors and barely any yarn — I've been making mine entirely from the odds and ends in my scrap basket. And because each square is under three inches, you get that 'I finished something!' feeling in under an hour. Fair warning: it is very hard to make just one",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 4,
      "card_type": "switch_things_up",
      "code": "switch-things-up",
      "title": "Switch Things Up",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "switch-1",
          "label": "",
          "value": "The two-color recipe makes this square endlessly customizable. For a classic garden feel, try soft lilac wings on a cream background, or buttery yellow on sage green. If you want drama, coral or hot pink wings on navy make the butterfly absolutely glow. My favorite trick for blankets: keep one consistent background color across every square and give each butterfly different wings — raid your scrap basket and you'll end up with a whole meadow of one-of-a-kind butterflies that still reads as a cohesive set. Yarn choice changes the personality completely. A crisp mercerized cotton like Scheepjes Catona gives beautifully sharp stitch definition on the wings, while a soft acrylic like Stylecraft Special DK or Paintbox Simply DK keeps a blanket cozy and washable. Want bigger squares without changing the pattern? Simply size up: the same four rounds in worsted weight with a 4.0mm hook grow the square to roughly 4 inches, perfect for a faster throw. Or keep your DK yarn and add one extra border round — 3-dc groups along each side with (3 dc, ch 2, 3 dc) in every corner — to give the butterfly more breathing room. For seasonal sets, work spring squares in pastels, summer ones in bright turquoise and white, and autumn versions with rust or mustard wings on deep teal. And since you'll already have your darning needle out for the ends, consider embroidering a slim body line and two tiny antennae down the center of the butterfly — it takes two minutes and makes the motif absolutely unmistakable",
          "raw_text": "The two-color recipe makes this square endlessly customizable. For a classic garden feel, try soft lilac wings on a cream background, or buttery yellow on sage green. If you want drama, coral or hot pink wings on navy make the butterfly absolutely glow. My favorite trick for blankets: keep one consistent background color across every square and give each butterfly different wings — raid your scrap basket and you'll end up with a whole meadow of one-of-a-kind butterflies that still reads as a cohesive set. Yarn choice changes the personality completely. A crisp mercerized cotton like Scheepjes Catona gives beautifully sharp stitch definition on the wings, while a soft acrylic like Stylecraft Special DK or Paintbox Simply DK keeps a blanket cozy and washable. Want bigger squares without changing the pattern? Simply size up: the same four rounds in worsted weight with a 4.0mm hook grow the square to roughly 4 inches, perfect for a faster throw. Or keep your DK yarn and add one extra border round — 3-dc groups along each side with (3 dc, ch 2, 3 dc) in every corner — to give the butterfly more breathing room. For seasonal sets, work spring squares in pastels, summer ones in bright turquoise and white, and autumn versions with rust or mustard wings on deep teal. And since you'll already have your darning needle out for the ends, consider embroidering a slim body line and two tiny antennae down the center of the butterfly — it takes two minutes and makes the motif absolutely unmistakable",
          "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 center ring too loose before working the wings",
          "value": "The butterfly's wings all anchor into the starting ring, so a loose center leaves an obvious hole right at the butterfly's body. Snug the ring closed after the first round while you can still reach the tail easily, then lock it in place when you weave that tail through the back of the center stitches",
          "raw_text": "The butterfly's wings all anchor into the starting ring, so a loose center leaves an obvious hole right at the butterfly's body. Snug the ring closed after the first round while you can still reach the tail easily, then lock it in place when you weave that tail through the back of the center stitches",
          "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": "Miscounting the chain spaces between wing sections",
          "value": "The wings are built in mirrored pairs, and one missed or extra chain makes the butterfly noticeably lopsided. Pause at the end of each butterfly round and check that the left and right sides match exactly — if they don't, it's far quicker to frog one round now than to discover it when you square off",
          "raw_text": "The wings are built in mirrored pairs, and one missed or extra chain makes the butterfly noticeably lopsided. Pause at the end of each butterfly round and check that the left and right sides match exactly — if they don't, it's far quicker to frog one round now than to discover it when you square off",
          "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": "Placing the corners unevenly on the squaring-off round",
          "value": "The round that turns the circular butterfly into a square depends on the four corner groups landing evenly around the motif. Before you start it, drop a stitch marker in each spot where a corner will sit — the four markers should form an X across the square — so the butterfly ends up centered instead of drifting toward one edge",
          "raw_text": "The round that turns the circular butterfly into a square depends on the four corner groups landing evenly around the motif. Before you start it, drop a stitch marker in each spot where a corner will sit — the four markers should form an X across the square — so the butterfly ends up centered instead of drifting toward one edge",
          "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": "Crocheting too loosely with the small 2.50mm hook",
          "value": "DK yarn on a 2.50mm hook is intentionally snug so this tiny square holds its shape when joined into a blanket. If your chain spaces gape or the square feels floppy, tighten your tension or drop down a hook size — a firm little square now saves a wavy blanket later",
          "raw_text": "DK yarn on a 2.50mm hook is intentionally snug so this tiny square holds its shape when joined into a blanket. If your chain spaces gape or the square feels floppy, tighten your tension or drop down a hook size — a firm little square now saves a wavy blanket later",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "mistake",
          "code": "mistake-6",
          "label": "Skipping blocking because the square is small",
          "value": "Small motif squares are the worst curlers, and unblocked butterflies tend to cup around the raised wings. Pin each square out to a true 3-inch square and give it a light steam or wet block — the corners sharpen up, the wings flatten just enough, and joining becomes dramatically easier",
          "raw_text": "Small motif squares are the worst curlers, and unblocked butterflies tend to cup around the raised wings. Pin each square out to a true 3-inch square and give it a light steam or wet block — the corners sharpen up, the wings flatten just enough, and joining becomes dramatically easier",
          "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": "Yarn of your choice- 2 colors",
              "raw_text": "Yarn of your choice- 2 colors"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook- we are using a 2.50mm hook",
              "raw_text": "Crochet hook- we are using a 2.50mm 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": 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-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": 3,
          "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": 4,
          "row_type": "abbrev",
          "code": "abbrev-tr",
          "label": "tr",
          "value": "treble crochet",
          "raw_text": "tr = treble crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "tr",
          "meaning": "treble crochet"
        },
        {
          "order": 5,
          "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": 6,
          "row_type": "abbrev",
          "code": "abbrev-ch-sp",
          "label": "ch-sp",
          "value": "chain space",
          "raw_text": "ch-sp = chain space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch-sp",
          "meaning": "chain space"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-sl-st",
          "label": "Sl St",
          "value": "slip stitch for joining for different round.",
          "raw_text": "Sl St = slip stitch for joining for 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 for different round."
        },
        {
          "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-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": 10,
          "row_type": "abbrev",
          "code": "abbrev-pic",
          "label": "pic",
          "value": "picot stitch",
          "raw_text": "pic = picot stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "pic",
          "meaning": "picot stitch"
        },
        {
          "order": 11,
          "row_type": "abbrev",
          "code": "abbrev-dtr",
          "label": "dtr",
          "value": "double treble crochet",
          "raw_text": "dtr = double treble crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dtr",
          "meaning": "double treble crochet"
        },
        {
          "order": 12,
          "row_type": "abbrev",
          "code": "abbrev-trtr",
          "label": "trtr",
          "value": "triple treble crochet",
          "raw_text": "trtr = triple treble crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "trtr",
          "meaning": "triple treble crochet"
        },
        {
          "order": 13,
          "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": 14,
          "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": 15,
          "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": 8,
      "card_type": "part",
      "code": "main-pattern",
      "title": "Main Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "main-pattern-info-11",
          "label": "Info",
          "value": "This round creates the foundation.",
          "raw_text": "Round 1- the foundation",
          "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": "ch5,  BLO , sc in each ch from 4th to 1st ch.",
          "raw_text": "Round 1 ch5,  BLO , sc in each ch from 4th to 1st ch.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "instruction",
          "code": "main-pattern-info-1",
          "label": "Steps",
          "value": "Start with a knot. ch5. sc in BL of each ch from 4th ch back to 1st ch.",
          "raw_text": "Step by step: Start with a knot. ch5. sc in BL of each ch from 4th ch back to 1st ch.",
          "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": "main-pattern-info-2",
          "label": "Info",
          "value": "In this round, we will shape the body of the butterfly.",
          "raw_text": "In this round, we will shape the body of the butterfly.",
          "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": "main-pattern-round-2",
          "label": "Round 2",
          "value": "Wrong side, ch4, dtr inc, ch4, sl st to next st, ch4, dtr+2trtr, ch-3 pic, ch6, sl st to next st, ch6, ch-3 pic, 2trtr+dtr, ch4, sl st to next st, ch4, dtr inc, ch4, sl st to next st, fasten off.",
          "raw_text": "Round 2 Wrong side, ch4, dtr inc, ch4, sl st to next st, ch4, dtr+2trtr, ch-3 pic, ch6, sl st to next st, ch6, ch-3 pic, 2trtr+dtr, ch4, sl st to next st, ch4, dtr inc, ch4, sl st to next st, fasten off.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "instruction",
          "code": "main-pattern-info-3",
          "label": "Steps",
          "value": "Flip the workpiece to the wrong side, then work ch4. dtr inc in next st, ch4, sl st to the next st, ch4, dtr+2trtr, ch3, now insert the hook into the third loop of the first ch. Then, complete a sl st to finish a ch-3 pic. ch6, sl st to the next st, ch6, then work another ch3, insert the hook in the third loop of the first ch. Complete a sl st to finish a ch-3 pic. 2trtr+dtr, ch4, sl st to the next st, ch4, dtr inc, ch4, sl st to next st, fasten off. Round 2 finished.",
          "raw_text": "Step by step: Flip the workpiece to the wrong side, then work ch4. dtr inc in next st, ch4, sl st to the next st, ch4, dtr+2trtr, ch3, now insert the hook into the third loop of the first ch. Then, complete a sl st to finish a ch-3 pic. ch6, sl st to the next st, ch6, then work another ch3, insert the hook in the third loop of the first ch. Complete a sl st to finish a ch-3 pic. 2trtr+dtr, ch4, sl st to the next st, ch4, dtr inc, ch4, sl st to next st, fasten off. Round 2 finished.",
          "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-12",
          "label": "Info",
          "value": "In this round, we will add the first layer of the granny square.",
          "raw_text": "Round 3- Add the first layer of granny 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": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "BLO. New yarn in top of the 3rd ch4, ch2(count as hdc), 2sc, ch3, sk the pic, sc, hdc, dc, sk3, tr+ch1+tr, sk3, dc, hdc, sc, ch3, sk pic, 2sc, hdc, ch1, sk3, dtr, ch1, sk4, dc, hdc, dc+ch3+dc, hdc, dc, sk2, tr+ch1+tr, sk2, dc, hdc, dc+ch3+dc, hdc, dc, ch1, sk3, dtr, ch1, sl st to the top of the first ch2.",
          "raw_text": "Round 3 BLO. New yarn in top of the 3rd ch4, ch2(count as hdc), 2sc, ch3, sk the pic, sc, hdc, dc, sk3, tr+ch1+tr, sk3, dc, hdc, sc, ch3, sk pic, 2sc, hdc, ch1, sk3, dtr, ch1, sk4, dc, hdc, dc+ch3+dc, hdc, dc, sk2, tr+ch1+tr, sk2, dc, hdc, dc+ch3+dc, hdc, dc, ch1, sk3, dtr, ch1, sl st to the top of the first ch2.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "instruction",
          "code": "main-pattern-info-8",
          "label": "Steps",
          "value": "Back loop only for this round. Add new yarn in top of the third ch4. ch2 as a standing st (count as hdc). 2sc, ch3, sk the pic, sc, hdc, dc, sk3, tr+ch1+tr, sk3, dc, hdc, sc, ch3, sk pic, 2sc, hdc, ch1, sk3, dtr, ch1, sk4, dc, hdc, dc+ch3+dc, hdc, dc, sk2, tr+ch1+tr, sk2, dc, hdc, dc+ch3+dc, hdc, dc, ch1, sk3, dtr, ch1, sl st to the top of the first ch2. Round 3 finished.",
          "raw_text": "Step by step: Back loop only for this round. Add new yarn in top of the third ch4. ch2 as a standing st (count as hdc). 2sc, ch3, sk the pic, sc, hdc, dc, sk3, tr+ch1+tr, sk3, dc, hdc, sc, ch3, sk pic, 2sc, hdc, ch1, sk3, dtr, ch1, sk4, dc, hdc, dc+ch3+dc, hdc, dc, sk2, tr+ch1+tr, sk2, dc, hdc, dc+ch3+dc, hdc, dc, ch1, sk3, dtr, ch1, sl st to the top of the first ch2. Round 3 finished.",
          "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-13",
          "label": "Info",
          "value": "In this round, we will work another round of border.",
          "raw_text": "Round 4 – Another round of border",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "round",
          "code": "main-pattern-round-4",
          "label": "Round 4",
          "value": "ch3(count as dc), 2dc, 2dc+ch2+2dc in next corner, 6dc.[3dc, 2dc+ch2+2dc in corner, 6dc] repeat 3 times, sl st to the top of the first ch3, fasten off.",
          "raw_text": "Round 4 ch3(count as dc), 2dc, 2dc+ch2+2dc in next corner, 6dc.[3dc, 2dc+ch2+2dc in corner, 6dc] repeat 3 times, sl st to the top of the first ch3, fasten off.",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "instruction",
          "code": "main-pattern-info-9",
          "label": "Steps",
          "value": "ch3 as a standing st (count as dc). 2dc, 2dc+ch2+2dc in the next corner space, 6dc. [3dc, 2dc+ch2+2dc in corner space, 6dc] repeat 3 times, sl st to the top of the first ch3, fasten off. Round 4 finished.",
          "raw_text": "Step by step: ch3 as a standing st (count as dc). 2dc, 2dc+ch2+2dc in the next corner space, 6dc. [3dc, 2dc+ch2+2dc in corner space, 6dc] repeat 3 times, sl st to the top of the first ch3, fasten off. Round 4 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "important_notes",
      "code": "important-notes",
      "title": "Important Notes",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "note-1",
          "label": "Note",
          "value": "💡 Your hook choice controls the finished size: the sample measures about 2.95 x 2.95 inches in DK/sport yarn with a 3.00mm hook, while the listed 2.50mm hook gives a slightly smaller, denser square. Either works — just use the same hook for every square in a project so they all match",
          "raw_text": "💡 Your hook choice controls the finished size: the sample measures about 2.95 x 2.95 inches in DK/sport yarn with a 3.00mm hook, while the listed 2.50mm hook gives a slightly smaller, denser square. Either works — just use the same hook for every square in a project so they all match",
          "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": "note-2",
          "label": "Note",
          "value": "💡 Place stitch markers in the four corner spaces on the final round. When you later join squares or add a border, finding the true corners of such a small square without markers is surprisingly fiddly",
          "raw_text": "💡 Place stitch markers in the four corner spaces on the final round. When you later join squares or add a border, finding the true corners of such a small square without markers is surprisingly fiddly",
          "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": "💡 Leave a 6–8 inch tail when you fasten off the background color. That tail is exactly what you'll want on your darning needle for whip-stitching squares together without joining new yarn",
          "raw_text": "💡 Leave a 6–8 inch tail when you fasten off the background color. That tail is exactly what you'll want on your darning needle for whip-stitching squares together without joining new yarn",
          "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": "💡 Don't carry the wing color behind the background rounds — fasten it off after the butterfly is complete. With only two colors and four rounds, you'll have just a handful of ends, and the back of the square stays clean enough to use double-sided",
          "raw_text": "💡 Don't carry the wing color behind the background rounds — fasten it off after the butterfly is complete. With only two colors and four rounds, you'll have just a handful of ends, and the back of the square stays clean enough to use double-sided",
          "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": "💡 Count your stitches at the end of every round. With only four rounds total, a single missed stitch has nowhere to hide and will visibly tilt the butterfly or round off a corner",
          "raw_text": "💡 Count your stitches at the end of every round. With only four rounds total, a single missed stitch has nowhere to hide and will visibly tilt the butterfly or round off a corner",
          "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": "💡 Pick your fiber for the job: crisp cotton shows off the wing texture beautifully for appliqués and framed squares, while soft acrylic is the better choice for baby blankets that need frequent machine washing",
          "raw_text": "💡 Pick your fiber for the job: crisp cotton shows off the wing texture beautifully for appliqués and framed squares, while soft acrylic is the better choice for baby blankets that need frequent machine washing",
          "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 key tip for this square is to use a smaller hook than usual. A 3.00mm hook suits most granny squares, but for this one a 2.50mm or 2.00mm hook is recommended — the smaller hook will sharpen the shape of the butterfly",
          "raw_text": "💡 The key tip for this square is to use a smaller hook than usual. A 3.00mm hook suits most granny squares, but for this one a 2.50mm or 2.00mm hook is recommended — the smaller hook will sharpen the shape of the butterfly",
          "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": "note-8",
          "label": "Note",
          "value": "💡 To make the butterfly pop out from the background, always use high-contrast colors",
          "raw_text": "💡 To make the butterfly pop out from the background, always use high-contrast colors",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "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 one butterfly granny square use?",
          "value": "Very little — roughly 5 to 8 grams of each color in DK weight. This makes it a fantastic scrap-buster: a single 100g ball of background yarn will carry you through a dozen or more squares, with the wings coming entirely from leftovers",
          "raw_text": "Very little — roughly 5 to 8 grams of each color in DK weight. This makes it a fantastic scrap-buster: a single 100g ball of background yarn will carry you through a dozen or more squares, with the wings coming entirely from leftovers",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How much yarn does one butterfly granny square use?",
          "answer": "Very little — roughly 5 to 8 grams of each color in DK weight. This makes it a fantastic scrap-buster: a single 100g ball of background yarn will carry you through a dozen or more squares, with the wings coming entirely from leftovers",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "What size is the finished square?",
          "value": "About 2.95 x 2.95 inches worked in DK or sport-weight yarn with a 3.00mm hook. Using the 2.50mm hook listed in the materials gives a slightly smaller, firmer square, so pick one hook and stick with it across a whole project",
          "raw_text": "About 2.95 x 2.95 inches worked in DK or sport-weight yarn with a 3.00mm hook. Using the 2.50mm hook listed in the materials gives a slightly smaller, firmer square, so pick one hook and stick with it across a whole project",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What size is the finished square?",
          "answer": "About 2.95 x 2.95 inches worked in DK or sport-weight yarn with a 3.00mm hook. Using the 2.50mm hook listed in the materials gives a slightly smaller, firmer square, so pick one hook and stick with it across a whole project",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Can I make this in worsted-weight yarn instead?",
          "value": "Absolutely — work the same four rounds in worsted with a 4.0mm hook and the square grows to roughly 4 inches. It's a great option if you want a blanket to come together faster with fewer squares",
          "raw_text": "Absolutely — work the same four rounds in worsted with a 4.0mm hook and the square grows to roughly 4 inches. It's a great option if you want a blanket to come together faster with fewer squares",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I make this in worsted-weight yarn instead?",
          "answer": "Absolutely — work the same four rounds in worsted with a 4.0mm hook and the square grows to roughly 4 inches. It's a great option if you want a blanket to come together faster with fewer squares",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "How many squares do I need for a baby blanket?",
          "value": "just under 3 inches per square, a 30 x 36 inch baby blanket takes about 120 squares (10 across by 12 down). If that sounds like a lot, add an extra granny border round to each square to enlarge them and cut the count significantly",
          "raw_text": "just under 3 inches per square, a 30 x 36 inch baby blanket takes about 120 squares (10 across by 12 down). If that sounds like a lot, add an extra granny border round to each square to enlarge them and cut the count significantly",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How many squares do I need for a baby blanket?",
          "answer": "just under 3 inches per square, a 30 x 36 inch baby blanket takes about 120 squares (10 across by 12 down). If that sounds like a lot, add an extra granny border round to each square to enlarge them and cut the count significantly",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "What's the best way to join the finished squares?",
          "value": "Whip-stitching through the back loops with your darning needle and the background color gives the flattest, most invisible seam. If you prefer crocheting them together, a slip-stitch or single-crochet join in the background color also works beautifully and adds a subtle ridge",
          "raw_text": "Whip-stitching through the back loops with your darning needle and the background color gives the flattest, most invisible seam. If you prefer crocheting them together, a slip-stitch or single-crochet join in the background color also works beautifully and adds a subtle ridge",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What's the best way to join the finished squares?",
          "answer": "Whip-stitching through the back loops with your darning needle and the background color gives the flattest, most invisible seam. If you prefer crocheting them together, a slip-stitch or single-crochet join in the background color also works beautifully and adds a subtle ridge",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/butterfly-granny-square-free-crochet-pattern-hero.webp",
    "data/images/butterfly-granny-square-free-crochet-pattern-step-2.webp",
    "data/images/butterfly-granny-square-free-crochet-pattern-step-3.webp",
    "data/images/butterfly-granny-square-free-crochet-pattern-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/butterfly-granny-square-free-crochet-pattern-hero.webp",
      "alt": "Butterfly Granny Square – Free Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/butterfly-granny-square-free-crochet-pattern-hero.webp",
      "alt": "Butterfly Granny Square – Free Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/butterfly-granny-square-free-crochet-pattern-step-2.webp",
      "alt": "Butterfly Granny Square – Free Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/butterfly-granny-square-free-crochet-pattern-step-3.webp",
      "alt": "Butterfly Granny Square – Free Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/butterfly-granny-square-free-crochet-pattern-step-4.webp",
      "alt": "Butterfly Granny Square – Free Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 2
}