{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "shark-granny-square",
  "title": "Crochet Shark Granny Square: Free 5-Round Pattern",
  "meta_description": "Free shark granny square crochet pattern: 5 rounds, DK yarn, 3mm hook, finished 3.35 inches. Ocean motif for blankets and baby projects.",
  "published_at": "2026-08-07",
  "updated_at": "2026-08-07",
  "author": "Ruby",
  "thumbnail_url": "data/images/shark-granny-square-hero.webp",
  "meta": {
    "title": "Crochet Shark Granny Square: Free 5-Round Pattern",
    "pattern_name": "Crochet Shark Granny Square: Free 5-Round Pattern",
    "difficulty": "Intermediate",
    "time_needed": "1-2 Hours",
    "rating": 4.8,
    "made_count": "1.4K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Intermediate",
      "yarn_weight": "DK",
      "tags": [
        "shark granny square",
        "crochet granny square",
        "free pattern",
        "ocean crochet",
        "dk yarn",
        "half double crochet",
        "hdc increase",
        "blanket square",
        "sea creature crochet",
        "3mm hook",
        "intarsia granny square",
        "kids crochet"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Crochet Shark Granny Square: Free 5-Round Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Intermediate Level",
          "value": "Comfortable with hdc increases, turning work, and joining new colors mid-square",
          "raw_text": "Comfortable with hdc increases, turning work, and joining new colors mid-square",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "hero-info-2",
          "label": "Afternoon Project",
          "value": "1-2 hours per square once you have the shape rhythm down",
          "raw_text": "1-2 hours per square once you have the shape rhythm down",
          "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": "Ocean Motif",
          "value": "A grinning little shark for blankets, bags, and baby gifts",
          "raw_text": "A grinning little shark for blankets, bags, and baby gifts",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ],
      "image": {
        "url": "data/images/shark-granny-square-hero.webp"
      }
    },
    {
      "order": 2,
      "card_type": "about",
      "code": "about",
      "title": "About",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "about-info-1",
          "label": "",
          "value": "This pattern turns five colors of DK yarn into a cheeky little shark trapped inside a 3.35-inch granny square. Instead of the usual round-and-round rings, you build the shark in shaped wedges that grow out of one shared foundation loop — a body, a pale belly, and the fins and tail that make the whole thing unmistakably shark. It is perfect for anyone who loves ocean themes, makes blankets for kids, or has a pile of DK scraps begging to become something with a personality.",
          "raw_text": "This pattern turns five colors of DK yarn into a cheeky little shark trapped inside a 3.35-inch granny square. Instead of the usual round-and-round rings, you build the shark in shaped wedges that grow out of one shared foundation loop — a body, a pale belly, and the fins and tail that make the whole thing unmistakably shark. It is perfect for anyone who loves ocean themes, makes blankets for kids, or has a pile of DK scraps begging to become something with a personality.",
          "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": "The stitch list stays friendly: chains, single crochet, half double crochet, and a lot of hdc increases worked in pairs like (hdc-inc)×2 to fan the shape outward. What makes it intermediate is not the stitches but the construction — you turn your work after nearly every row, fasten off one wedge, then rejoin fresh yarn back at the foundation loop to start the next section. Once that clicks, a square takes about an hour, maybe ninety minutes for your first attempt.",
          "raw_text": "The stitch list stays friendly: chains, single crochet, half double crochet, and a lot of hdc increases worked in pairs like (hdc-inc)×2 to fan the shape outward. What makes it intermediate is not the stitches but the construction — you turn your work after nearly every row, fasten off one wedge, then rejoin fresh yarn back at the foundation loop to start the next section. Once that clicks, a square takes about an hour, maybe ninety minutes for your first attempt.",
          "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 3.35 inches by 3.35 inches on a 3.00mm hook, which is dense and firm rather than lacy — exactly what you want for a motif that gets joined into something bigger. The shark reads clearly from across a room, and the crisp hdc fabric means the square keeps its corners instead of slumping. Make one as a bookmark-sized gift tag, thirty for a nursery blanket, or a handful for a beach bag panel.",
          "raw_text": "The finished square measures roughly 3.35 inches by 3.35 inches on a 3.00mm hook, which is dense and firm rather than lacy — exactly what you want for a motif that gets joined into something bigger. The shark reads clearly from across a room, and the crisp hdc fabric means the square keeps its corners instead of slumping. Make one as a bookmark-sized gift tag, thirty for a nursery blanket, or a handful for a beach bag panel.",
          "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 fell for this square the moment the second wedge appeared. There is something so satisfying about that first tiny circle — knot, ch4, slip stitch into a loop, then six hdc crowding into it — and then watching it stop being a circle. You turn, you work (hdc-inc)×2 at each side with 2hdc holding the middle steady, and the fabric fans out into a shape with actual attitude. By the time you hit the sc row with its three increases on each side, you can already see the jaw. Then you fasten off, go all the way back to that same foundation loop with white yarn, and build the belly out of it — four hdc, turn, four increases — and suddenly there is a shark in your hands, not a blob. I love that the whole animal radiates from one center point. It means no seaming panels together, no counting rounds wrong and having to frog fourteen stitches, and no fiddly embroidery to fake the shape. Five colors, a 3mm hook, one darning needle for the ends, and you get a motif that makes people grin. I have a stack of them on my desk right now and I keep making more.",
          "raw_text": "I fell for this square the moment the second wedge appeared. There is something so satisfying about that first tiny circle — knot, ch4, slip stitch into a loop, then six hdc crowding into it — and then watching it stop being a circle. You turn, you work (hdc-inc)×2 at each side with 2hdc holding the middle steady, and the fabric fans out into a shape with actual attitude. By the time you hit the sc row with its three increases on each side, you can already see the jaw. Then you fasten off, go all the way back to that same foundation loop with white yarn, and build the belly out of it — four hdc, turn, four increases — and suddenly there is a shark in your hands, not a blob. I love that the whole animal radiates from one center point. It means no seaming panels together, no counting rounds wrong and having to frog fourteen stitches, and no fiddly embroidery to fake the shape. Five colors, a 3mm hook, one darning needle for the ends, and you get a motif that makes people grin. I have a stack of them on my desk right now and I keep making more.",
          "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 obvious first swap is the color story. The sample leans classic — grey body, white belly — but a slate-blue body with a cream belly reads more like a reef shark, and a soft dusty pink with off-white belly turns the whole thing into a friendly cartoon that works beautifully in a baby blanket. For a great white look, use a mid-grey for the body wedge and pure white for the belly, then keep your remaining three colors for the fins, tail, and eye. If you want drama, try charcoal body with a lemon-yellow eye — it pops hard against a navy joining round.\n\nSize is easy to move. Keep the exact same stitch sequence and just change your hook: a 3.50mm hook pushes the square toward 3.9-4 inches, and a 4.00mm with worsted-weight yarn lands closer to 4.5-5 inches, which is a much faster blanket. Going smaller, a 2.50mm hook with sport-weight yarn shrinks the square to roughly 2.8 inches — sweet for coasters or a garland. If you want a genuinely bigger square without changing yarn, add one more hdc row after the second increase row and bump each side's increase group from (hdc-inc)×2 to (hdc-inc)×3, then compensate with 4hdc in the middle instead of 2hdc.\n\nYarn substitutions: Paintbox Simply DK and Scheepjes Catona in 25g balls both give the crisp stitch definition this square needs, and cotton keeps the corners squarer than acrylic. For seasonal spins, work the body in deep teal for a winter-ocean panel, or in sandy tan for a nurse-shark version. And a whole school of sharks in five graduated blues, joined in rows, makes a stunning gradient throw.",
          "raw_text": "The obvious first swap is the color story. The sample leans classic — grey body, white belly — but a slate-blue body with a cream belly reads more like a reef shark, and a soft dusty pink with off-white belly turns the whole thing into a friendly cartoon that works beautifully in a baby blanket. For a great white look, use a mid-grey for the body wedge and pure white for the belly, then keep your remaining three colors for the fins, tail, and eye. If you want drama, try charcoal body with a lemon-yellow eye — it pops hard against a navy joining round.\n\nSize is easy to move. Keep the exact same stitch sequence and just change your hook: a 3.50mm hook pushes the square toward 3.9-4 inches, and a 4.00mm with worsted-weight yarn lands closer to 4.5-5 inches, which is a much faster blanket. Going smaller, a 2.50mm hook with sport-weight yarn shrinks the square to roughly 2.8 inches — sweet for coasters or a garland. If you want a genuinely bigger square without changing yarn, add one more hdc row after the second increase row and bump each side's increase group from (hdc-inc)×2 to (hdc-inc)×3, then compensate with 4hdc in the middle instead of 2hdc.\n\nYarn substitutions: Paintbox Simply DK and Scheepjes Catona in 25g balls both give the crisp stitch definition this square needs, and cotton keeps the corners squarer than acrylic. For seasonal spins, work the body in deep teal for a winter-ocean panel, or in sandy tan for a nurse-shark version. And a whole school of sharks in five graduated blues, joined in rows, makes a stunning gradient throw.",
          "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": "Working the foundation loop too tightly, so the six hdc will not fit",
          "value": "After the ch4 and slip stitch, the loop should be loose enough to slide your hook in and out freely. If the six hdc of the first row are fighting for space, undo the slip stitch and rechain a touch looser. You need room to come back to this same loop later with white yarn for the belly wedge, so a strangled loop causes problems twice.",
          "raw_text": "After the ch4 and slip stitch, the loop should be loose enough to slide your hook in and out freely. If the six hdc of the first row are fighting for space, undo the slip stitch and rechain a touch looser. You need room to come back to this same loop later with white yarn for the belly wedge, so a strangled loop causes problems twice.",
          "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": "Treating the ch2 standing stitch as a chain instead of a stitch",
          "value": "Every row here opens with 'ch2 as a standing st,' which means that ch2 counts as your first half double crochet. Do not work an extra hdc into the same spot, and do not skip a stitch at the base. If your row counts drift by exactly one every single row, this is almost always the reason.",
          "raw_text": "Every row here opens with 'ch2 as a standing st,' which means that ch2 counts as your first half double crochet. Do not work an extra hdc into the same spot, and do not skip a stitch at the base. If your row counts drift by exactly one every single row, this is almost always the reason.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "mistake",
          "code": "mistake-3",
          "label": "Forgetting to turn over between rows",
          "value": "The pattern says 'Turn Over' after nearly every row, and it matters — the shark shape depends on the wedges alternating direction. If you keep working in the same direction you will get a curling spiral rather than a flat fan. Say 'turn' out loud as you do it, or drop a stitch marker on the front of the work so you always know which face you are looking at.",
          "raw_text": "The pattern says 'Turn Over' after nearly every row, and it matters — the shark shape depends on the wedges alternating direction. If you keep working in the same direction you will get a curling spiral rather than a flat fan. Say 'turn' out loud as you do it, or drop a stitch marker on the front of the work so you always know which face you are looking at.",
          "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": "Misreading (hdc-inc)×2 as two hdc rather than two increases",
          "value": "(hdc-inc)×2 means work an increase twice — two hdc into each of the next two stitches, so four stitches total come out of two. Getting this wrong flattens the fan and the shark ends up narrow and pointed. Count your stitches at the end of the row: an increase row should always be noticeably wider than the one before it.",
          "raw_text": "(hdc-inc)×2 means work an increase twice — two hdc into each of the next two stitches, so four stitches total come out of two. Getting this wrong flattens the fan and the shark ends up narrow and pointed. Count your stitches at the end of the row: an increase row should always be noticeably wider than the one before it.",
          "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": "Cutting the yarn too short at each fasten off",
          "value": "This square fastens off several times and every tail needs weaving in with the darning needle. Leave at least 5-6 inches each time. Short tails pop back out through the dense hdc fabric after the first wash, and on a motif this small a loose tail is very visible against the contrasting belly color.",
          "raw_text": "This square fastens off several times and every tail needs weaving in with the darning needle. Leave at least 5-6 inches each time. Short tails pop back out through the dense hdc fabric after the first wash, and on a motif this small a loose tail is very visible against the contrasting belly color.",
          "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": "Joining the white belly yarn into the wrong part of the foundation loop",
          "value": "The belly wedge starts by joining white yarn to the foundation loop, not to the edge of the grey wedge you just finished. Rotate the piece and find the original ch4 ring at the center. If you attach to the outer edge instead, the belly grows off the side of the body and the shark shape never resolves.",
          "raw_text": "The belly wedge starts by joining white yarn to the foundation loop, not to the edge of the grey wedge you just finished. Rotate the piece and find the original ch4 ring at the center. If you attach to the outer edge instead, the belly grows off the side of the body and the shark shape never resolves.",
          "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 —5 colors, the sample is made with DK Sports. The finished granny square is about 3.35 inches by 3.35 inches.",
              "raw_text": "Yarn of your choice —5 colors, the sample is made with DK Sports. The finished granny square is about 3.35 inches by 3.35 inches."
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook- we are using a 3.00mm hook",
              "raw_text": "Crochet hook- we are using a 3.00mm 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-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": 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-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": 5,
          "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": 6,
          "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": 7,
          "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": 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-slst-/-sl-st",
          "label": "slst / sl st",
          "value": "slip stitch for joining different rounds",
          "raw_text": "slst / sl st = slip stitch for joining different rounds",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "slst / sl st",
          "meaning": "slip stitch for joining different rounds"
        },
        {
          "order": 10,
          "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": 11,
          "row_type": "abbrev",
          "code": "abbrev-sc2tog",
          "label": "sc2tog",
          "value": "single crochet 2 stitches together",
          "raw_text": "sc2tog = single crochet 2 stitches together",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sc2tog",
          "meaning": "single crochet 2 stitches together"
        },
        {
          "order": 12,
          "row_type": "abbrev",
          "code": "abbrev-tlo",
          "label": "TLO",
          "value": "third loop only",
          "raw_text": "TLO = third loop only",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "TLO",
          "meaning": "third loop only"
        }
      ]
    },
    {
      "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, sl st to the first ch to form a loop.",
          "raw_text": "Row 1 Knot, ch4, sl st to the first ch to form a loop.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "main-pattern-info-1",
          "label": "Row 2",
          "value": "ch2 as a standing st, 6hdc.",
          "raw_text": "Row 2 ch2 as a standing st, 6hdc.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "Turn Over . ch2 as a standing st, (hdc-inc)×2, 2hdc, (hdc-inc)×2.",
          "raw_text": "Row 3 Turn Over . ch2 as a standing st, (hdc-inc)×2, 2hdc, (hdc-inc)×2.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "main-pattern-round-4",
          "label": "Round 4",
          "value": "Turn Over . ch1, 1sc, (sc-inc)×3, 2sc, (sc-inc)×3, 1sc, fasten off.",
          "raw_text": "Row 4 Turn Over . ch1, 1sc, (sc-inc)×3, 2sc, (sc-inc)×3, 1sc, fasten off.",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "main-pattern-info-2",
          "label": "Row 5",
          "value": "Join white yarn to the foundation loop, ch2 as a standing st, 4hdc.",
          "raw_text": "Row 5 Join white yarn to the foundation loop, ch2 as a standing st, 4hdc.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "round",
          "code": "main-pattern-round-6",
          "label": "Round 6",
          "value": "Turn over. ch2 as a standing st, (hdc-inc)×4.",
          "raw_text": "Row 6 Turn over. ch2 as a standing st, (hdc-inc)×4.",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "round",
          "code": "main-pattern-round-7",
          "label": "Round 7",
          "value": "Turn Over . ch1, (sc-inc)×3, 2sc, (sc-inc)×3. With white yarn,  seam the edges  where the blue and white parts meet, then fasten off.",
          "raw_text": "Row 7 Turn Over . ch1, (sc-inc)×3, 2sc, (sc-inc)×3. With white yarn,  seam the edges  where the blue and white parts meet, then fasten off.",
          "round_start": 7,
          "round_end": 7,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "part",
      "code": "part-2",
      "title": "Part 2",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "part-2-info-1",
          "label": "Round 1",
          "value": "Start with a magic loop. ch3 as a standing st(count as 1dc). 3dc, ch3. *(4dc, ch3) * rep 3 times omitting final ch3, ch1, 1hdc connects back to your starting ch3.",
          "raw_text": "Round 1: Start with a magic loop. ch3 as a standing st(count as 1dc). 3dc, ch3. *(4dc, ch3) * rep 3 times omitting final ch3, ch1, 1hdc connects back to your starting ch3.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "part-2-round-2-3",
          "label": "Round 2-3",
          "value": "ch3(counts as dc), 1dc in this corner. (2dc+ch3+2dc) in remaining corners. 1dc in remaining sts. 2dc in the start corner. ch1, 1hdc connect back to the first ch3.",
          "raw_text": "Round 2-3: ch3(counts as dc), 1dc in this corner. (2dc+ch3+2dc) in remaining corners. 1dc in remaining sts. 2dc in the start corner. ch1, 1hdc connect back to the first ch3.",
          "round_start": 2,
          "round_end": 3,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "part-2-round-4",
          "label": "Round 4",
          "value": "ch3 as a standing st(count as 1dc), 1dc in this corner sp. (2dc+ch3+2dc) in remaining corners. 1dc in remaining sts. 2dc in the starting corner, ch3, sl st to the true dc after first ch3, fasten off.",
          "raw_text": "Round 4: ch3 as a standing st(count as 1dc), 1dc in this corner sp. (2dc+ch3+2dc) in remaining corners. 1dc in remaining sts. 2dc in the starting corner, ch3, sl st to the true dc after 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": 4,
          "row_type": "info",
          "code": "part-2-info-2",
          "label": "Info",
          "value": "Assemble Sew the shark piece to the center of the solid granny square.",
          "raw_text": "Assemble Sew the shark piece to the center of the solid granny square.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "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": "💡 The sample uses a 3.00mm hook with DK yarn, which is a full size or two tighter than the ball band suggests. That is intentional — the tight gauge is what keeps this 3.35-inch square firm and square-cornered instead of floppy. If your fabric feels loose enough to see through, drop to a 2.75mm.",
          "raw_text": "💡 The sample uses a 3.00mm hook with DK yarn, which is a full size or two tighter than the ball band suggests. That is intentional — the tight gauge is what keeps this 3.35-inch square firm and square-cornered instead of floppy. If your fabric feels loose enough to see through, drop to a 2.75mm.",
          "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": "💡 Wind all five colors into small separate balls or bobbins before you start. You return to the foundation loop more than once, and having a tidy 5-yard bobbin per color stops the tangle that happens when full skeins sit in your lap while you rotate the work.",
          "raw_text": "💡 Wind all five colors into small separate balls or bobbins before you start. You return to the foundation loop more than once, and having a tidy 5-yard bobbin per color stops the tangle that happens when full skeins sit in your lap while you rotate the work.",
          "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": "💡 Put a stitch marker in the ch2 standing stitch at the start of every row. Because the ch2 counts as a stitch, it is the single easiest place to lose your count, and a marker there means you can recount any row in ten seconds instead of unpicking.",
          "raw_text": "💡 Put a stitch marker in the ch2 standing stitch at the start of every row. Because the ch2 counts as a stitch, it is the single easiest place to lose your count, and a marker there means you can recount any row in ten seconds instead of unpicking.",
          "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": "💡 Weave in each tail as soon as you fasten off a wedge, not at the end. Once the neighboring wedges are worked, the dense hdc fabric makes it much harder to bury a tail cleanly, and half-finished ends have a habit of getting crocheted over accidentally.",
          "raw_text": "💡 Weave in each tail as soon as you fasten off a wedge, not at the end. Once the neighboring wedges are worked, the dense hdc fabric makes it much harder to bury a tail cleanly, and half-finished ends have a habit of getting crocheted over accidentally.",
          "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": "💡 Make your very first square as a practice piece and expect it to be slightly wonky. The construction — build a wedge, fasten off, rejoin at the center — is unusual, and square number two almost always comes out visibly neater. Keep the practice one; it makes a great keyring.",
          "raw_text": "💡 Make your very first square as a practice piece and expect it to be slightly wonky. The construction — build a wedge, fasten off, rejoin at the center — is unusual, and square number two almost always comes out visibly neater. Keep the practice one; it makes a great keyring.",
          "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": "💡 If you plan to join these into a blanket, block every square to exactly 3.35 inches before assembly. Pin them damp on a towel to matching dimensions. Shaped squares like this one vary more than plain granny rounds, and blocking is the difference between a flat blanket and a rippling one.",
          "raw_text": "💡 If you plan to join these into a blanket, block every square to exactly 3.35 inches before assembly. Pin them damp on a towel to matching dimensions. Shaped squares like this one vary more than plain granny rounds, and blocking is the difference between a flat blanket and a rippling one.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 11,
      "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 the finished shark granny square?",
          "value": "Worked in DK yarn on a 3.00mm hook, the square finishes at about 3.35 inches by 3.35 inches. Going up to a 4.00mm hook with worsted-weight yarn will push it closer to 4.5-5 inches if you want faster coverage for a blanket.",
          "raw_text": "Worked in DK yarn on a 3.00mm hook, the square finishes at about 3.35 inches by 3.35 inches. Going up to a 4.00mm hook with worsted-weight yarn will push it closer to 4.5-5 inches if you want faster coverage for a blanket.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How big is the finished shark granny square?",
          "answer": "Worked in DK yarn on a 3.00mm hook, the square finishes at about 3.35 inches by 3.35 inches. Going up to a 4.00mm hook with worsted-weight yarn will push it closer to 4.5-5 inches if you want faster coverage for a blanket.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "Do I really need five different colors?",
          "value": "Five is what the sample uses — body, belly, fins, tail, and eye detail — but you can absolutely simplify. Working the fins and tail in the same shade as the body still reads as a shark, and it cuts down on the number of times you fasten off and rejoin.",
          "raw_text": "Five is what the sample uses — body, belly, fins, tail, and eye detail — but you can absolutely simplify. Working the fins and tail in the same shade as the body still reads as a shark, and it cuts down on the number of times you fasten off and rejoin.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Do I really need five different colors?",
          "answer": "Five is what the sample uses — body, belly, fins, tail, and eye detail — but you can absolutely simplify. Working the fins and tail in the same shade as the body still reads as a shark, and it cuts down on the number of times you fasten off and rejoin.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Is this pattern suitable for a beginner?",
          "value": "The stitches themselves are beginner-level: chain, single crochet, half double crochet, and increases. The construction is what makes it intermediate, because you build separate wedges from one shared foundation loop and turn your work constantly. A confident beginner who has finished a plain granny square can manage it with patience.",
          "raw_text": "The stitches themselves are beginner-level: chain, single crochet, half double crochet, and increases. The construction is what makes it intermediate, because you build separate wedges from one shared foundation loop and turn your work constantly. A confident beginner who has finished a plain granny square can manage it with patience.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Is this pattern suitable for a beginner?",
          "answer": "The stitches themselves are beginner-level: chain, single crochet, half double crochet, and increases. The construction is what makes it intermediate, because you build separate wedges from one shared foundation loop and turn your work constantly. A confident beginner who has finished a plain granny square can manage it with patience.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "How many squares do I need for a baby blanket?",
          "value": "At 3.35 inches per square, a 30 by 36 inch baby blanket needs roughly 9 squares across by 11 down, so about 99 squares plus a border. Many crocheters alternate shark squares with plain solid squares to cut that number roughly in half and let each shark stand out more.",
          "raw_text": "At 3.35 inches per square, a 30 by 36 inch baby blanket needs roughly 9 squares across by 11 down, so about 99 squares plus a border. Many crocheters alternate shark squares with plain solid squares to cut that number roughly in half and let each shark stand out more.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How many squares do I need for a baby blanket?",
          "answer": "At 3.35 inches per square, a 30 by 36 inch baby blanket needs roughly 9 squares across by 11 down, so about 99 squares plus a border. Many crocheters alternate shark squares with plain solid squares to cut that number roughly in half and let each shark stand out more.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Why does my square curl instead of lying flat?",
          "value": "Curling almost always means a turn was missed or an increase group was worked as plain stitches. Check that you turned over after each row and that every (hdc-inc)×2 produced four stitches from two. A gentle steam block will settle any remaining ripple once the counts are right.",
          "raw_text": "Curling almost always means a turn was missed or an increase group was worked as plain stitches. Check that you turned over after each row and that every (hdc-inc)×2 produced four stitches from two. A gentle steam block will settle any remaining ripple once the counts are right.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Why does my square curl instead of lying flat?",
          "answer": "Curling almost always means a turn was missed or an increase group was worked as plain stitches. Check that you turned over after each row and that every (hdc-inc)×2 produced four stitches from two. A gentle steam block will settle any remaining ripple once the counts are right.",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/shark-granny-square-hero.webp",
    "data/images/shark-granny-square-step-2.webp",
    "data/images/shark-granny-square-step-3.webp",
    "data/images/shark-granny-square-step-4.webp",
    "data/images/shark-granny-square-step-5.webp",
    "data/images/shark-granny-square-step-6.webp",
    "data/images/shark-granny-square-step-7.webp",
    "data/images/shark-granny-square-step-8.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/shark-granny-square-hero.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/shark-granny-square-hero.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/shark-granny-square-step-2.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/shark-granny-square-step-3.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/shark-granny-square-step-4.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 4",
      "is_featured": false
    },
    {
      "url": "data/images/shark-granny-square-step-5.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 5",
      "is_featured": false
    },
    {
      "url": "data/images/shark-granny-square-step-6.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 6",
      "is_featured": false
    },
    {
      "url": "data/images/shark-granny-square-step-7.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 7",
      "is_featured": false
    },
    {
      "url": "data/images/shark-granny-square-step-8.webp",
      "alt": "Crochet Shark Granny Square: Free 5-Round Pattern — photo 8",
      "is_featured": false
    }
  ]
}