{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "unique-solid-granny-square",
  "title": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block",
  "meta_description": "Crochet the Unique Solid Granny Square — a beginner 4-inch block with crisp corners, no gappy holes, and endless single-color palette ideas to explore",
  "published_at": "2026-07-13",
  "updated_at": "2026-07-13",
  "author": "Ruby",
  "thumbnail_url": "data/images/unique-solid-granny-square-hero.webp",
  "meta": {
    "title": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block",
    "pattern_name": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block",
    "difficulty": "Beginner",
    "time_needed": "30-60 Minutes",
    "rating": 4.8,
    "made_count": "3.4K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Beginner",
      "yarn_weight": "DK",
      "tags": [
        "granny square",
        "solid granny square",
        "free crochet pattern",
        "crochet square",
        "beginner crochet",
        "DK yarn",
        "blanket square",
        "crochet motif",
        "single color",
        "afghan square",
        "granny square blanket",
        "stash buster"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Beginner Friendly",
          "value": "A perfect first square if you can chain and double crochet",
          "raw_text": "A perfect first square if you can chain and double crochet",
          "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": "Quick Make",
          "value": "About 30-60 minutes for one cozy 4-inch square",
          "raw_text": "About 30-60 minutes for one cozy 4-inch 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": "Endlessly Versatile",
          "value": "Stack, join, and stash-bust into blankets, coasters, and bags",
          "raw_text": "Stack, join, and stash-bust into blankets, coasters, and bags",
          "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": "The Unique Solid Granny Square turns one skein of DK yarn into a dense, gap-free 4-inch block that feels more like fabric than lace. Worked flat over seven tidy rounds, it swaps the airy holes of a traditional granny for a smooth, solid surface with small eyelet details that show off stitch definition beautifully. Best of all, you only fasten off once at the very end, so there's less weaving in ends and more enjoying your creation. It's perfect for anyone who loves the classic square shape but wants a sturdier motif for blankets, potholders, or bags — and it's an ideal confidence-builder for newer crocheters ready to move past the basics",
          "raw_text": "The Unique Solid Granny Square turns one skein of DK yarn into a dense, gap-free 4-inch block that feels more like fabric than lace. Worked flat over seven tidy rounds, it swaps the airy holes of a traditional granny for a smooth, solid surface with small eyelet details that show off stitch definition beautifully. Best of all, you only fasten off once at the very end, so there's less weaving in ends and more enjoying your creation. It's perfect for anyone who loves the classic square shape but wants a sturdier motif for blankets, potholders, or bags — and it's an ideal confidence-builder for newer crocheters ready to move past the basics",
          "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": "You'll rely on just a handful of friendly techniques here: a neat center start, double crochet worked into every stitch, and clean corner increases that keep all four sides straight and square. There are no color changes to juggle and no fussy special stitches, so it sits comfortably at an advanced-beginner level — if you can chain, double crochet, and count to three, you're ready. Most crocheters finish a single square in about 30 to 60 minutes, making it a genuinely satisfying one-sitting project",
          "raw_text": "You'll rely on just a handful of friendly techniques here: a neat center start, double crochet worked into every stitch, and clean corner increases that keep all four sides straight and square. There are no color changes to juggle and no fussy special stitches, so it sits comfortably at an advanced-beginner level — if you can chain, double crochet, and count to three, you're ready. Most crocheters finish a single square in about 30 to 60 minutes, making it a genuinely satisfying one-sitting project",
          "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 4 inches by 4 inches in DK weight, though it will grow or shrink with your hook and yarn choice. The solid texture gives it a plush, substantial hand that drapes softly yet holds its shape, so edges stay crisp when you seam squares together. Stitched in a single color, it looks polished and modern rather than busy. Make one as a coaster, a dozen for a cushion cover, or a hundred for an heirloom blanket that any recipient will treasure",
          "raw_text": "The finished square measures roughly 4 inches by 4 inches in DK weight, though it will grow or shrink with your hook and yarn choice. The solid texture gives it a plush, substantial hand that drapes softly yet holds its shape, so edges stay crisp when you seam squares together. Stitched in a single color, it looks polished and modern rather than busy. Make one as a coaster, a dozen for a cushion cover, or a hundred for an heirloom blanket that any recipient will treasure",
          "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 this little square because it proves how much beauty lives in simplicity. There's something deeply calming about working round after round of double crochet, watching that solid, gap-free surface build up under my hook without a single hole to distract the eye. I love that the corner increases do all the shaping for me — pop your stitches into that corner space, and the square practically squares itself. By round seven, the four sides line up so cleanly that seaming later becomes a joy instead of a chore. What really wins me over is how forgiving it is. Because it's a single color with no fiddly color changes, I can crochet it while chatting or half-watching a show and still land a tidy motif. It's the kind of pattern I reach for when I want a quick win, a stash-buster, or a meditative make. Whether it's my first square of the day or my fiftieth for a blanket, this one never stops feeling satisfying",
          "raw_text": "I have a soft spot for this little square because it proves how much beauty lives in simplicity. There's something deeply calming about working round after round of double crochet, watching that solid, gap-free surface build up under my hook without a single hole to distract the eye. I love that the corner increases do all the shaping for me — pop your stitches into that corner space, and the square practically squares itself. By round seven, the four sides line up so cleanly that seaming later becomes a joy instead of a chore. What really wins me over is how forgiving it is. Because it's a single color with no fiddly color changes, I can crochet it while chatting or half-watching a show and still land a tidy motif. It's the kind of pattern I reach for when I want a quick win, a stash-buster, or a meditative make. Whether it's my first square of the day or my fiftieth for a blanket, this one never stops feeling satisfying",
          "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": "Making the corners in the wrong spot",
          "value": "Always place your corner group (two stitches, chain-space, two stitches) into the actual corner gap of the previous round, not into a regular stitch. Use a stitch marker in each of the four corner spaces on early rounds until the rhythm becomes automatic",
          "raw_text": "Always place your corner group (two stitches, chain-space, two stitches) into the actual corner gap of the previous round, not into a regular stitch. Use a stitch marker in each of the four corner spaces on early rounds until the rhythm becomes automatic",
          "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": "Adding or skipping stitches along the",
          "value": "Work exactly one double crochet into every stitch across each side, and pause after each round to count. Every side should have the same number of stitches; if two sides disagree, you've missed or doubled a stitch and should rip back to fix it",
          "raw_text": "Work exactly one double crochet into every stitch across each side, and pause after each round to count. Every side should have the same number of stitches; if two sides disagree, you've missed or doubled a stitch and should rip back to fix it",
          "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": "Ignoring the beginning chain-3 that",
          "value": "Treat the starting chain-3 as your first double crochet and skip the stitch directly beneath it. At the end of the round, join into the top of that chain-3, not into a separate stitch, to keep your count honest",
          "raw_text": "Treat the starting chain-3 as your first double crochet and skip the stitch directly beneath it. At the end of the round, join into the top of that chain-3, not into a separate stitch, to keep your count honest",
          "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": "Crocheting so tightly that the fabric",
          "value": "Relax your yarn hold and let each double crochet reach full height. If it still curls, go up a hook size; DK yarn is happiest around a 3.5-4mm hook for a firm-but-flexible solid square",
          "raw_text": "Relax your yarn hold and let each double crochet reach full height. If it still curls, go up a hook size; DK yarn is happiest around a 3.5-4mm hook for a firm-but-flexible solid square",
          "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": "Letting little gaps sneak in between",
          "value": "Insert your hook fully under both top loops of each stitch and keep your yarn-overs snug. If you spot a hole forming mid-round, it usually means you worked into a chain space instead of the stitch beside it",
          "raw_text": "Insert your hook fully under both top loops of each stitch and keep your yarn-overs snug. If you spot a hole forming mid-round, it usually means you worked into a chain space instead of the stitch beside it",
          "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": "Losing track of where each round",
          "value": "Drop a contrasting scrap of yarn or a locking marker into the first stitch of every round. Joining consistently in the same corner keeps the seam tidy and easy to hide when you block or seam later",
          "raw_text": "Drop a contrasting scrap of yarn or a locking marker into the first stitch of every round. Joining consistently in the same corner keeps the seam tidy and easy to hide when you block or seam later",
          "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- 1 color, the sample is made with DK sports",
              "raw_text": "Yarn of your choice- 1 color, the sample is made with DK sports"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook",
              "raw_text": "Crochet 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-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-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": 5,
          "row_type": "abbrev",
          "code": "abbrev-rep",
          "label": "rep",
          "value": "repeat",
          "raw_text": "rep = repeat",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "rep",
          "meaning": "repeat"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-st",
          "label": "st",
          "value": "stitch",
          "raw_text": "st = stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st",
          "meaning": "stitch"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-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": 8,
          "row_type": "abbrev",
          "code": "abbrev-slst",
          "label": "slst",
          "value": "slip stitch for joining for different round.",
          "raw_text": "slst = slip stitch for joining for different round.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "slst",
          "meaning": "slip stitch for joining for different round."
        }
      ]
    },
    {
      "order": 8,
      "card_type": "part",
      "code": "main-pattern",
      "title": "Main Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "main-pattern-round-1",
          "label": "Round 1",
          "value": "knot, ch4, slst to first ch.",
          "raw_text": "Round 1 knot, ch4, slst to first ch.",
          "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": "main-pattern-info-1",
          "label": "Steps",
          "value": "Start with a knot; make ch4; insert your hook into first ch; slst to first ch to form a circle. Round 1 finished.",
          "raw_text": "Start with a knot make ch4 insert your hook into first ch slst to first ch to form a circle. Round 1 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "main-pattern-round-2",
          "label": "Round 2",
          "value": "ch3(count as dc), 2dc, ch2, [3dc, ch2] rep 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner).",
          "raw_text": "Round 2 ch3(count as dc), 2dc, ch2, [3dc, ch2] rep 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner).",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "instruction",
          "code": "main-pattern-info-2",
          "label": "Steps",
          "value": "make ch3 as standing st(count as dc); 2dc, ch2; [3dc, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner). Round 2 finished.",
          "raw_text": "make ch3 as standing st(count as dc) 2dc, ch2 [3dc, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) . Round 2 finished.",
          "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-3",
          "label": "Round 3",
          "value": "ch3(count as dc), dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2, [2dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2] rep 3 times,  (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) .",
          "raw_text": "Round 3 ch3(count as dc), dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2, [2dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2] rep 3 times,  (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) .",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "instruction",
          "code": "main-pattern-info-5",
          "label": "Steps",
          "value": "Make ch3 as standing st (count as dc); dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2; [2dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner). Round 3 finished.",
          "raw_text": "Make ch3 as standing st (count as dc) dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2 [2dc in same ch-sp, dc blo, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) . Round 3 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": "round",
          "code": "main-pattern-round-4",
          "label": "Round 4",
          "value": "ch3(count as dc), dc in same ch-sp, dc, 3 blo dc, dc, 2dc+ch2 in corner. [2dc in same corner, dc, 3 blo dc, dc, 2dc+ch2 in corner]rep 3 times (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner)",
          "raw_text": "Round 4 ch3(count as dc), dc in same ch-sp, dc, 3 blo dc, dc, 2dc+ch2 in corner. [2dc in same corner, dc, 3 blo dc, dc, 2dc+ch2 in corner]rep 3 times (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "instruction",
          "code": "main-pattern-info-7",
          "label": "Steps",
          "value": "Make ch3 as standing st(count as dc); dc in same ch-sp, dc, 3dc blo, dc, 2dc in next ch-sp, ch2; [2dc in same ch-sp, dc, 3dc blo, dc, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner). Round 4 finished.",
          "raw_text": "Make ch3 as standing st(count as dc) dc in same ch-sp, dc, 3dc blo, dc, 2dc in next ch-sp, ch2 [2dc in same ch-sp, dc, 3dc blo, dc, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) . 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,
          "row_type": "round",
          "code": "main-pattern-round-5",
          "label": "Round 5",
          "value": "ch3 (count as dc), dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2, [2dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2] rep 3 times,  (Note: In final rep, replace ch2 with ch+sc) .",
          "raw_text": "Round 5 ch3 (count as dc), dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2, [2dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2] rep 3 times,  (Note: In final rep, replace ch2 with ch+sc) .",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "instruction",
          "code": "main-pattern-info-11",
          "label": "Steps",
          "value": "Make ch3 as standing st(count as dc); dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2; [2dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner). Round 5 finished.",
          "raw_text": "Make ch3 as standing st(count as dc) dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2 [2dc in same ch-sp, 2dc, 3dc blo, 3dc, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) . Round 5 finished.",
          "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-6",
          "label": "Round 6",
          "value": "ch3(count as dc), dc in same ch-sp, 5dc, 3dc blo , 5dc, 2dc in next ch-sp, ch2, [2dc in same ch-sp, 5dc, 3dc blo, 5dc, 2dc in next ch-sp, ch2] rep 3 times,  (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) .",
          "raw_text": "Round 6 ch3(count as dc), dc in same ch-sp, 5dc, 3dc blo , 5dc, 2dc in next ch-sp, ch2, [2dc in same ch-sp, 5dc, 3dc blo, 5dc, 2dc in next ch-sp, ch2] rep 3 times,  (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) .",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "instruction",
          "code": "main-pattern-info-13",
          "label": "Steps",
          "value": "Make ch3 as standing st(count as dc); dc in same ch-sp, 5dc, 3dc blo, 5dc, 2dc in next ch-sp, ch2; [2dc in same ch-sp, 5dc, 3dc blo, 5dc, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner). Round 6 finished.",
          "raw_text": "Make ch3 as standing st(count as dc) dc in same ch-sp, 5dc, 3dc blo, 5dc, 2dc in next ch-sp, ch2 [2dc in same ch-sp, 5dc, 3dc blo, 5dc, 2dc in next ch-sp, ch2] repeat 3 times, (Note: In final rep, replace ch2 with ch+sc, so we can keep the hook on the corner) . Round 6 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "round",
          "code": "main-pattern-round-7",
          "label": "Round 7",
          "value": "ch1 as standing, [19sc, ch2 in corner] rep 4 times, sl st to first sc.  Work sc on each st and ch2 in corner.",
          "raw_text": "Round 7 ch1 as standing, [19sc, ch2 in corner] rep 4 times, sl st to first sc.  Work sc on each st and ch2 in corner.",
          "round_start": 7,
          "round_end": 7,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "instruction",
          "code": "main-pattern-info-15",
          "label": "Steps",
          "value": "Make ch1 as standing st; 19sc, ch2, now we finished one side; repeat last step 3 times, sl st to first sc and weave in ends.",
          "raw_text": "Make ch1 as standing st 19sc, ch2, now we finished one side. repeat last step 3 times, sl st to first sc and weave in ends.",
          "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-gauge",
          "label": "Gauge",
          "value": "📏 Gauge: The completed granny square measures approximately 4 inches by 4 inches. Check yours against this after a couple of rounds and adjust your hook size if it runs large or small",
          "raw_text": "Gauge: The completed granny square measuring approximately 4 inches by 4 inches",
          "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-1",
          "label": "Note",
          "value": "💡 A 3.5-4mm hook is the sweet spot for DK yarn on this square. If your first two rounds cup or dome, size up; if they ruffle, size down before committing to all seven rounds",
          "raw_text": "💡 A 3.5-4mm hook is the sweet spot for DK yarn on this square. If your first two rounds cup or dome, size up; if they ruffle, size down before committing to all seven rounds",
          "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-2",
          "label": "Note",
          "value": "💡 Count your stitches at the end of every round, especially rounds 4 through 7. Solid squares are unforgiving of a single missed stitch, and catching it early saves a full frog session later",
          "raw_text": "💡 Count your stitches at the end of every round, especially rounds 4 through 7. Solid squares are unforgiving of a single missed stitch, and catching it early saves a full frog session later",
          "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-3",
          "label": "Note",
          "value": "💡 Keep four locking stitch markers in the corner spaces as you go. They make the corner increases foolproof and guarantee true right angles by the final round",
          "raw_text": "💡 Keep four locking stitch markers in the corner spaces as you go. They make the corner increases foolproof and guarantee true right angles by the final 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": "info",
          "code": "note-4",
          "label": "Note",
          "value": "💡 Leave a long tail — at least 12 inches — when you fasten off. If you plan to join squares into a blanket, that tail becomes your seaming yarn and saves you weaving in twice",
          "raw_text": "💡 Leave a long tail — at least 12 inches — when you fasten off. If you plan to join squares into a blanket, that tail becomes your seaming yarn and saves you weaving in twice",
          "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-5",
          "label": "Note",
          "value": "💡 Block your finished square with a light steam or a wet-and-pin before joining. Blocking evens out the tension, sharpens the corners, and locks in that crisp 4-inch measurement",
          "raw_text": "💡 Block your finished square with a light steam or a wet-and-pin before joining. Blocking evens out the tension, sharpens the corners, and locks in that crisp 4-inch measurement",
          "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-6",
          "label": "Note",
          "value": "💡 If you're making many squares, cut all your starting tails to the same length and weave ends in as you finish each one. Batching the boring part keeps a big blanket project fun and manageable",
          "raw_text": "💡 If you're making many squares, cut all your starting tails to the same length and weave ends in as you finish each one. Batching the boring part keeps a big blanket project fun and manageable",
          "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 big is one finished square and can I change the size?",
          "value": "In DK yarn with a 3.5-4mm hook, a full seven-round square measures about 4 inches by 4 inches. To go bigger or smaller, simply stop early or keep adding rounds — each round changes the size by roughly one inch per side",
          "raw_text": "In DK yarn with a 3.5-4mm hook, a full seven-round square measures about 4 inches by 4 inches. To go bigger or smaller, simply stop early or keep adding rounds — each round changes the size by roughly one inch per side",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How big is one finished square and can I change the size?",
          "answer": "In DK yarn with a 3.5-4mm hook, a full seven-round square measures about 4 inches by 4 inches. To go bigger or smaller, simply stop early or keep adding rounds — each round changes the size by roughly one inch per side",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "What does 'solid' granny square actually mean?",
          "value": "It means there are no open holes or chain-space gaps like a traditional granny square. You work double crochet into every stitch, so the finished block has a smooth, dense, fabric-like surface that's sturdier and great for seaming",
          "raw_text": "It means there are no open holes or chain-space gaps like a traditional granny square. You work double crochet into every stitch, so the finished block has a smooth, dense, fabric-like surface that's sturdier and great for seaming",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What does 'solid' granny square actually mean?",
          "answer": "It means there are no open holes or chain-space gaps like a traditional granny square. You work double crochet into every stitch, so the finished block has a smooth, dense, fabric-like surface that's sturdier and great for seaming",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "How much yarn do I need for one square?",
          "value": "A single 4-inch DK square uses only a small amount, roughly 10-15 yards, so it's an excellent scrap and stash-buster project. For a blanket, plan your total by multiplying that estimate by the number of squares you want",
          "raw_text": "A single 4-inch DK square uses only a small amount, roughly 10-15 yards, so it's an excellent scrap and stash-buster project. For a blanket, plan your total by multiplying that estimate by the number of squares you want",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How much yarn do I need for one square?",
          "answer": "A single 4-inch DK square uses only a small amount, roughly 10-15 yards, so it's an excellent scrap and stash-buster project. For a blanket, plan your total by multiplying that estimate by the number of squares you want",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Can I join these squares into a blanket?",
          "value": "Absolutely — that's one of the best uses for this pattern. Because the edges are solid and even, they seam neatly using whip stitch, slip stitch, or a join-as-you-go method. Block each square first for the cleanest, most professional results",
          "raw_text": "Absolutely — that's one of the best uses for this pattern. Because the edges are solid and even, they seam neatly using whip stitch, slip stitch, or a join-as-you-go method. Block each square first for the cleanest, most professional results",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I join these squares into a blanket?",
          "answer": "Absolutely — that's one of the best uses for this pattern. Because the edges are solid and even, they seam neatly using whip stitch, slip stitch, or a join-as-you-go method. Block each square first for the cleanest, most professional results",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Is this pattern suitable for a beginner?",
          "value": "Yes. If you're comfortable with chain stitches and double crochet, you can make this square. The only new-ish skill is placing corner increases, and once you've done a round or two it becomes completely intuitive",
          "raw_text": "Yes. If you're comfortable with chain stitches and double crochet, you can make this square. The only new-ish skill is placing corner increases, and once you've done a round or two it becomes completely intuitive",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Is this pattern suitable for a beginner?",
          "answer": "Yes. If you're comfortable with chain stitches and double crochet, you can make this square. The only new-ish skill is placing corner increases, and once you've done a round or two it becomes completely intuitive",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/unique-solid-granny-square-hero.webp",
    "data/images/unique-solid-granny-square-step-2.webp",
    "data/images/unique-solid-granny-square-step-3.webp",
    "data/images/unique-solid-granny-square-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/unique-solid-granny-square-hero.webp",
      "alt": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/unique-solid-granny-square-hero.webp",
      "alt": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/unique-solid-granny-square-step-2.webp",
      "alt": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/unique-solid-granny-square-step-3.webp",
      "alt": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/unique-solid-granny-square-step-4.webp",
      "alt": "Unique Solid Granny Square: A Gap-Free 4-Inch Crochet Block — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 2
}