{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "ocean-swirl-circle-granny-square",
  "title": "Ocean Swirl Circle Granny Square — Free Crochet Pattern",
  "meta_description": "Crochet an ocean swirl circle granny square with this free two-color pattern — a hypnotic spiral motif perfect for blankets, bags and coasters",
  "published_at": "2026-07-20",
  "updated_at": "2026-07-20",
  "author": "Ruby",
  "thumbnail_url": "data/images/ocean-swirl-circle-granny-square-hero.webp",
  "meta": {
    "title": "Ocean Swirl Circle Granny Square — Free Crochet Pattern",
    "pattern_name": "Ocean Swirl Circle Granny Square — Free Crochet Pattern",
    "difficulty": "Easy",
    "time_needed": "1-2 Hours",
    "rating": 4.8,
    "made_count": "3.4K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Beginner-Friendly",
      "yarn_weight": "Worsted",
      "tags": [
        "granny square",
        "circle granny square",
        "free pattern",
        "ocean swirl",
        "spiral crochet",
        "crochet motif",
        "two-color crochet",
        "blanket square",
        "coaster pattern",
        "beginner crochet",
        "hdc pattern"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Ocean Swirl Circle Granny Square — Free Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Beginner-Friendly",
          "value": "Just chains, half doubles, and single crochet — nothing scary",
          "raw_text": "Just chains, half doubles, and single crochet — nothing scary",
          "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": "Evening Project",
          "value": "Finish one swirl in about 1-2 cozy hours",
          "raw_text": "Finish one swirl in about 1-2 cozy hours",
          "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-Inspired Motif",
          "value": "A hypnotic spiral for blankets, bags, and coastal décor",
          "raw_text": "A hypnotic spiral for blankets, bags, and coastal décor",
          "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": "There's something almost hypnotic about the Ocean Swirl Circle Granny Square. Instead of the boxy, angular motifs most crocheters know, this one spirals — a soft, rounded circle that curls outward like a ripple moving across the water. Worked in just two colors, the swirl effect appears almost magically as you build the rounds. It's perfect for anyone who loves granny squares but craves something a little more artistic, whether you're joining dozens into a throw or making a single showpiece coaster to brighten a side table",
          "raw_text": "There's something almost hypnotic about the Ocean Swirl Circle Granny Square. Instead of the boxy, angular motifs most crocheters know, this one spirals — a soft, rounded circle that curls outward like a ripple moving across the water. Worked in just two colors, the swirl effect appears almost magically as you build the rounds. It's perfect for anyone who loves granny squares but craves something a little more artistic, whether you're joining dozens into a throw or making a single showpiece coaster to brighten a side table",
          "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": "Don't let the mesmerizing swirl fool you — the stitch work itself is refreshingly simple. You'll form a starting ring with a chain-7 loop, pack it with half double crochets, and then create the signature spiral using a repeating single-crochet-plus-chain sequence around each stitch. There's a clever standing stitch to begin new rounds cleanly, which is a wonderful skill to add to your toolkit. If you're comfortable with basic stitches and ready for a gentle challenge, you can happily finish this motif in a single relaxed evening",
          "raw_text": "Don't let the mesmerizing swirl fool you — the stitch work itself is refreshingly simple. You'll form a starting ring with a chain-7 loop, pack it with half double crochets, and then create the signature spiral using a repeating single-crochet-plus-chain sequence around each stitch. There's a clever standing stitch to begin new rounds cleanly, which is a wonderful skill to add to your toolkit. If you're comfortable with basic stitches and ready for a gentle challenge, you can happily finish this motif in a single relaxed evening",
          "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 ocean swirl is a plump, textured circle measuring roughly 4.33 inches across, depending on your yarn and hook. Up close, the two colors chase each other around the center in a satisfying pinwheel, catching the light along the raised chain ridges. It feels wonderfully squishy and looks far more advanced than it actually is. Sew a few together for a bohemian throw, back one with felt for a sturdy coaster, or gift a little stack tied with twine — instantly charming, handmade décor that people always ask about",
          "raw_text": "The finished ocean swirl is a plump, textured circle measuring roughly 4.33 inches across, depending on your yarn and hook. Up close, the two colors chase each other around the center in a satisfying pinwheel, catching the light along the raised chain ridges. It feels wonderfully squishy and looks far more advanced than it actually is. Sew a few together for a bohemian throw, back one with felt for a sturdy coaster, or gift a little stack tied with twine — instantly charming, handmade décor that people always ask about",
          "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'll be honest — I've made a lot of granny squares in my life, but this one made me gasp the first time the swirl appeared. What I love most is that moment in round three when you start the single-crochet-plus-chain sequence and the spiral suddenly comes to life, curling around the center like a tiny whirlpool. It's endlessly satisfying to watch it grow. The chain-7 starting loop is generous and forgiving, so you never fight a too-tight center the way you sometimes do with a magic ring. And that standing stitch at the start of each round? Total game-changer — no more bulky chain seams interrupting the flow of the swirl. I also adore how this pattern makes two ordinary colors look intentional and designer-ish; even leftover scraps suddenly feel special. It's rhythmic, meditative crochet — the kind you can do while chatting or half-watching a show — yet it rewards you with a motif that looks like it took real skill. That combination of easy and impressive is exactly why I keep coming back to it",
          "raw_text": "I'll be honest — I've made a lot of granny squares in my life, but this one made me gasp the first time the swirl appeared. What I love most is that moment in round three when you start the single-crochet-plus-chain sequence and the spiral suddenly comes to life, curling around the center like a tiny whirlpool. It's endlessly satisfying to watch it grow. The chain-7 starting loop is generous and forgiving, so you never fight a too-tight center the way you sometimes do with a magic ring. And that standing stitch at the start of each round? Total game-changer — no more bulky chain seams interrupting the flow of the swirl. I also adore how this pattern makes two ordinary colors look intentional and designer-ish; even leftover scraps suddenly feel special. It's rhythmic, meditative crochet — the kind you can do while chatting or half-watching a show — yet it rewards you with a motif that looks like it took real skill. That combination of easy and impressive is exactly why I keep coming back to it",
          "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 beauty of a two-color swirl is how dramatically it transforms with different palettes. Lean into the ocean theme with a seafoam-green center melting into sandy-beige borders, or go moody with a navy-blue swirl surrounded by soft gray and white for a storm-cloud effect. Want something bolder? A black center with neon-pink edges gives you an instant pop-art vibe, while coral, peach, and cream reads like a beach sunset. Gradient yarns that shift from dark to light are magical here — the color shifts do the swirling for you. To size it up into a larger circle, keep repeating the single-crochet-plus-chain spiral, adding an extra increase round every so often to keep it lying flat. For coasters, stop a round or two early for a firmer, smaller disc. Craving a true square instead of a circle? Add four corner clusters of (3 dc, ch 2, 3 dc) on the final round to box it out for join-as-you-go blankets. Swap worsted for a soft cotton to make washable coasters and placemats, or go plush with a chunky yarn and a larger hook for an oversized pillow-front medallion. For seasonal flair, try burgundy and forest green for a winter coaster set, or pastel pink and mint for spring. One little motif, endless personalities",
          "raw_text": "The beauty of a two-color swirl is how dramatically it transforms with different palettes. Lean into the ocean theme with a seafoam-green center melting into sandy-beige borders, or go moody with a navy-blue swirl surrounded by soft gray and white for a storm-cloud effect. Want something bolder? A black center with neon-pink edges gives you an instant pop-art vibe, while coral, peach, and cream reads like a beach sunset. Gradient yarns that shift from dark to light are magical here — the color shifts do the swirling for you. To size it up into a larger circle, keep repeating the single-crochet-plus-chain spiral, adding an extra increase round every so often to keep it lying flat. For coasters, stop a round or two early for a firmer, smaller disc. Craving a true square instead of a circle? Add four corner clusters of (3 dc, ch 2, 3 dc) on the final round to box it out for join-as-you-go blankets. Swap worsted for a soft cotton to make washable coasters and placemats, or go plush with a chunky yarn and a larger hook for an oversized pillow-front medallion. For seasonal flair, try burgundy and forest green for a winter coaster set, or pastel pink and mint for spring. One little motif, endless personalities",
          "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": "Forgetting that the beginning ch2 counts as your first hdc",
          "value": "When the pattern says ch2 (count as hdc), that turning chain replaces a stitch. If you also work a separate hdc into the very same spot, you'll end up with one extra stitch and a lopsided ring. Always slip stitch into the top of that ch2 to close the round rather than into a real hdc",
          "raw_text": "When the pattern says ch2 (count as hdc), that turning chain replaces a stitch. If you also work a separate hdc into the very same spot, you'll end up with one extra stitch and a lopsided ring. Always slip stitch into the top of that ch2 to close the round rather than into a real hdc",
          "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": "Pulling the chain-7 starting loop too tight",
          "value": "The ch7 ring needs to stay open and roomy so all of your half double crochets fit comfortably around it. If your center puckers or the stitches bunch up, you've cinched the loop — gently tug the loose starting tail to reshape it, or go up half a hook size for the first round only",
          "raw_text": "The ch7 ring needs to stay open and roomy so all of your half double crochets fit comfortably around it. If your center puckers or the stitches bunch up, you've cinched the loop — gently tug the loose starting tail to reshape it, or go up half a hook size for the first round only",
          "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": "Losing count during the single-crochet-plus-chain spiral",
          "value": "The round-3 sequence — *sc+ch in next hdc* repeated around — is easy to miscount because the little chains blur together with the single crochets. Drop a stitch marker in your very first sc of the round so you know exactly where to slip stitch closed, and count the sc's rather than the chains",
          "raw_text": "The round-3 sequence — *sc+ch in next hdc* repeated around — is easy to miscount because the little chains blur together with the single crochets. Drop a stitch marker in your very first sc of the round so you know exactly where to slip stitch closed, and count the sc's rather than the chains",
          "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": "Skipping or doubling up the standing stitch",
          "value": "Each new round begins with a standing stitch instead of a traditional turning chain. Beginners often add a chain and then a standing stitch, which creates an unwanted gap. Make the standing stitch on its own — it IS your first stitch of the round, so there's no chain needed before it",
          "raw_text": "Each new round begins with a standing stitch instead of a traditional turning chain. Beginners often add a chain and then a standing stitch, which creates an unwanted gap. Make the standing stitch on its own — it IS your first stitch of the round, so there's no chain needed 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": "The motif ruffling at the edge or cupping in the middle",
          "value": "A swirl that waves and ruffles at the edges has too many stitches per round, while one that cups into a bowl has too few. Because this motif is worked flat, recount after each round and adjust your hook size. The spiral texture hides small tension wobbles, but bigger increase errors will show",
          "raw_text": "A swirl that waves and ruffles at the edges has too many stitches per round, while one that cups into a bowl has too few. Because this motif is worked flat, recount after each round and adjust your hook size. The spiral texture hides small tension wobbles, but bigger increase errors will show",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 6,
      "card_type": "materials",
      "code": "materials",
      "title": "Materials",
      "raw_heading": "",
      "quantity": 1,
      "groups": [
        {
          "order": 1,
          "group_code": "group-1",
          "group_name": "",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-1-1",
              "label": "",
              "value": "Yarn of your choice- 2 color",
              "raw_text": "Yarn of your choice- 2 color"
            },
            {
              "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-dc",
          "label": "dc",
          "value": "double crochet",
          "raw_text": "dc = double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc",
          "meaning": "double crochet"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-hdc",
          "label": "hdc",
          "value": "half double crochet",
          "raw_text": "hdc = half double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "hdc",
          "meaning": "half double crochet"
        },
        {
          "order": 4,
          "row_type": "abbrev",
          "code": "abbrev-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-sl-st",
          "label": "Sl St",
          "value": "slip stitch for joining to different round",
          "raw_text": "Sl St = slip stitch for joining to different round",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "Sl St",
          "meaning": "slip stitch for joining to different round"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-ch-sp",
          "label": "ch-sp",
          "value": "chain space",
          "raw_text": "ch-sp = chain space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch-sp",
          "meaning": "chain space"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-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": 8,
          "row_type": "abbrev",
          "code": "abbrev-inc",
          "label": "inc",
          "value": "increase",
          "raw_text": "inc = increase",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "inc",
          "meaning": "increase"
        },
        {
          "order": 9,
          "row_type": "abbrev",
          "code": "abbrev-bl",
          "label": "BL",
          "value": "back loop",
          "raw_text": "BL = back loop",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "BL",
          "meaning": "back loop"
        },
        {
          "order": 10,
          "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,
      "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": "ch7, sl st to the first ch to form a loop.",
          "raw_text": "Round 1 ch7, 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": "instruction",
          "code": "main-pattern-round-1-steps",
          "label": "Steps",
          "value": "Start with a knot, ch7. sl st to the first ch to form a loop.",
          "raw_text": "Start with a knot, ch7. sl st to the first ch to form a loop.",
          "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": "ch2(count as hdc), 17hdc in the loop, sl st to the top of ch2.",
          "raw_text": "Round 2 ch2(count as hdc), 17hdc in the loop, sl st to the top of ch2.",
          "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-round-2-steps",
          "label": "Steps",
          "value": "ch2 as a standing st(count as hdc). 17hdc in the loop, sl st to the top of the first ch2, round 2 finished.",
          "raw_text": "ch2 as a standing st(count as hdc). 17hdc in the loop, sl st to the top of the first ch2, 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": "ch, sc+ch in this hdc, *sc+ch in next hdc* rep17 times, sl st to the top of the first sc.",
          "raw_text": "Round 3 ch, sc+ch in this hdc, *sc+ch in next hdc* rep17 times, sl st to the top of the first sc.",
          "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-round-3-steps",
          "label": "Steps",
          "value": "ch as a standing st. sc+ch in the hdc. *sc+ch in next hdc* rep 17 times, sl st to the top of the first sc.",
          "raw_text": "ch as a standing st. sc+ch in the hdc. *sc+ch in next hdc* rep 17 times, sl st to the top of the first sc.",
          "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": "ch, sc+ch in this ch-sp, *sc+ch in next ch-sp*rep 17 times, sl st to the top of the first sc.",
          "raw_text": "Round 4 ch, sc+ch in this ch-sp, *sc+ch in next ch-sp*rep 17 times, sl st to the top of the first sc.",
          "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-round-4-steps",
          "label": "Steps",
          "value": "ch1 as a standing st, sc+ch in the next ch-sp. *sc+ch in next ch-sp* rep 17 times, sl st to the top of the first sc.",
          "raw_text": "ch1 as a standing st, sc+ch in the next ch-sp. *sc+ch in next ch-sp* rep 17 times, sl st to the top of the first sc.",
          "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": "*hdc inc(encase rounds 3-4)*rep 18 times, sl st to the top of the first hdc, fasten off, round 5 finished.",
          "raw_text": "Round 5 *hdc inc(encase rounds 3-4)*rep 18 times, sl st to the top of the first hdc, fasten off, round 5 finished.",
          "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-round-5-steps",
          "label": "Steps",
          "value": "hdc inc in the corresponding ch-sp of rounds 3, so we can encase rounds 3+4. *hdc inc in the next ch-sp from round 3(encase rounds 3-4)*rep 17 times, sl st to the top of the first hdc, fasten off, round 5 finished.",
          "raw_text": "hdc inc in the corresponding ch-sp of rounds 3, so we can encase rounds 3+4. *hdc inc in the next ch-sp from round 3(encase rounds 3-4)*rep 17 times, sl st to the top of the first hdc, fasten off, 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": "turn over. BLO for this round. Add white yarn in the bl of any hdc, ch3(count as dc), dc+ch2+2dc in the same loop, 2hdc, 4sc, 2hdc, *2dc+ch2+2dc, 2hdc, 4sc, 2hdc *rep 3 times, sl st to the top of the first ch3, round 6 finished.",
          "raw_text": "Round 6 turn over. BLO for this round. Add white yarn in the bl of any hdc, ch3(count as dc), dc+ch2+2dc in the same loop, 2hdc, 4sc, 2hdc, *2dc+ch2+2dc, 2hdc, 4sc, 2hdc *rep 3 times, sl st to the top of the first ch3, round 6 finished.",
          "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-round-6-steps",
          "label": "Steps",
          "value": "turn over. BLO for this round. Add white yarn in the bl of any hdc, ch3(count as dc). dc+ch2+2dc in the same loop, 2hdc, 4sc, 2hdc. *2dc+ch2+2dc, 2hdc, 4sc, 2hdc *rep 3 times, sl st to the top of the first ch3, round 6 finished.",
          "raw_text": "turn over. BLO for this round. Add white yarn in the bl of any hdc, ch3(count as dc). dc+ch2+2dc in the same loop, 2hdc, 4sc, 2hdc. *2dc+ch2+2dc, 2hdc, 4sc, 2hdc *rep 3 times, sl st to the top of the first ch3, 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-8",
          "label": "Round 7-8",
          "value": "dc in each st, 2dc+ch2+2dc in each corner. At the beginning of each round, ch3 as a standing st(count as dc), while at the end, sl st to the top of the first ch3.",
          "raw_text": "Round 7-8 dc in each st, 2dc+ch2+2dc in each corner. At the beginning of each round, ch3 as a standing st(count as dc), while at the end, sl st to the top of the first ch3.",
          "round_start": 7,
          "round_end": 8,
          "is_range": true,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "info",
          "code": "main-pattern-info-1",
          "label": "Info",
          "value": "Note: Complete Round 7, fasten off. Attach new color to start Round 8.",
          "raw_text": "Note: Complete Round 7, fasten off. Attach new color to start Round 8.",
          "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": "Note",
          "value": "📏 Finished size / gauge: the completed ocean swirl circle granny square measures approximately 4.33 × 4.33 inches",
          "raw_text": "📏 Finished size / gauge: the completed ocean swirl circle granny square measures approximately 4.33 × 4.33 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 4.0–5.0 mm (G/H) hook pairs beautifully with worsted-weight yarn for this motif; drop down a size if your swirl tends to ruffle, or go up a size if the center starts to cup",
          "raw_text": "💡 A 4.0–5.0 mm (G/H) hook pairs beautifully with worsted-weight yarn for this motif; drop down a size if your swirl tends to ruffle, or go up a size if the center starts to cup",
          "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": "💡 Place a locking stitch marker in the first stitch of each round. Because the swirl obscures where rounds begin and end, that little marker saves you from miscounting the single-crochet-plus-chain repeats",
          "raw_text": "💡 Place a locking stitch marker in the first stitch of each round. Because the swirl obscures where rounds begin and end, that little marker saves you from miscounting the single-crochet-plus-chain repeats",
          "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 your two colors on opposite sides of your lap or in separate yarn bowls so the strands don't tangle as you carry them between rounds",
          "raw_text": "💡 Keep your two colors on opposite sides of your lap or in separate yarn bowls so the strands don't tangle as you carry them between rounds",
          "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": "💡 Block the finished circle by pinning it flat and misting it with water — this opens up the chain ridges and makes the spiral really pop, which matters most when you're joining many motifs into a blanket",
          "raw_text": "💡 Block the finished circle by pinning it flat and misting it with water — this opens up the chain ridges and makes the spiral really pop, which matters most when you're joining many motifs into a blanket",
          "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": "💡 The ch2 at the start of a round counts as a stitch, but for the flattest possible edge you can substitute a standing hdc; the pattern itself shifts to a standing stitch, so follow that lead once you're comfortable",
          "raw_text": "💡 The ch2 at the start of a round counts as a stitch, but for the flattest possible edge you can substitute a standing hdc; the pattern itself shifts to a standing stitch, so follow that lead once you're comfortable",
          "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": "💡 Save this as your go-to scrap-buster — each motif uses only small amounts of two colors, making it perfect for using up leftover skeins without buying anything new",
          "raw_text": "💡 Save this as your go-to scrap-buster — each motif uses only small amounts of two colors, making it perfect for using up leftover skeins without buying anything new",
          "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": "Is this ocean swirl actually a circle or a square?",
          "value": "As written, the pattern creates a swirling circle motif rather than a boxy square. To turn it into a true square for blanket joining, simply add four corner clusters of (3 dc, ch 2, 3 dc) evenly around the final round to square off the edges",
          "raw_text": "As written, the pattern creates a swirling circle motif rather than a boxy square. To turn it into a true square for blanket joining, simply add four corner clusters of (3 dc, ch 2, 3 dc) evenly around the final round to square off the edges",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Is this ocean swirl actually a circle or a square?",
          "answer": "As written, the pattern creates a swirling circle motif rather than a boxy square. To turn it into a true square for blanket joining, simply add four corner clusters of (3 dc, ch 2, 3 dc) evenly around the final round to square off the edges",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "What does 'ch2 counts as hdc' actually mean?",
          "value": "It means those two starting chains stand in for your first half double crochet of the round, so you don't work a separate hdc in that same spot. When you reach the end of the round, you'll slip stitch into the top of that ch2 to close it neatly",
          "raw_text": "It means those two starting chains stand in for your first half double crochet of the round, so you don't work a separate hdc in that same spot. When you reach the end of the round, you'll slip stitch into the top of that ch2 to close it neatly",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What does 'ch2 counts as hdc' actually mean?",
          "answer": "It means those two starting chains stand in for your first half double crochet of the round, so you don't work a separate hdc in that same spot. When you reach the end of the round, you'll slip stitch into the top of that ch2 to close it neatly",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "How much yarn do I need for one motif?",
          "value": "Very little, which makes this a fantastic scrap-buster. A single ocean swirl only uses a few yards of each of your two colors, so leftover skeins and odds and ends are perfect for it",
          "raw_text": "Very little, which makes this a fantastic scrap-buster. A single ocean swirl only uses a few yards of each of your two colors, so leftover skeins and odds and ends are perfect for it",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How much yarn do I need for one motif?",
          "answer": "Very little, which makes this a fantastic scrap-buster. A single ocean swirl only uses a few yards of each of your two colors, so leftover skeins and odds and ends are perfect for it",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Can I make this bigger, like for a full blanket?",
          "value": "Absolutely. You can keep repeating the single-crochet-plus-chain spiral rounds, adding an increase round now and then to keep it lying flat, until you reach the size you want. Alternatively, make many small motifs and seam them together into a throw",
          "raw_text": "Absolutely. You can keep repeating the single-crochet-plus-chain spiral rounds, adding an increase round now and then to keep it lying flat, until you reach the size you want. Alternatively, make many small motifs and seam them together into a throw",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I make this bigger, like for a full blanket?",
          "answer": "Absolutely. You can keep repeating the single-crochet-plus-chain spiral rounds, adding an increase round now and then to keep it lying flat, until you reach the size you want. Alternatively, make many small motifs and seam them together into a throw",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Why isn't my swirl lying flat?",
          "value": "A rippling, wavy edge usually means you have too many stitches, while a center that cups upward means too few. Recount your stitches each round and adjust your hook size, since tension is almost always the culprit with flat circular motifs like this one",
          "raw_text": "A rippling, wavy edge usually means you have too many stitches, while a center that cups upward means too few. Recount your stitches each round and adjust your hook size, since tension is almost always the culprit with flat circular motifs like this one",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Why isn't my swirl lying flat?",
          "answer": "A rippling, wavy edge usually means you have too many stitches, while a center that cups upward means too few. Recount your stitches each round and adjust your hook size, since tension is almost always the culprit with flat circular motifs like this one",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/ocean-swirl-circle-granny-square-hero.webp",
    "data/images/ocean-swirl-circle-granny-square-step-2.webp",
    "data/images/ocean-swirl-circle-granny-square-step-3.webp",
    "data/images/ocean-swirl-circle-granny-square-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/ocean-swirl-circle-granny-square-hero.webp",
      "alt": "Ocean Swirl Circle Granny Square — Free Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/ocean-swirl-circle-granny-square-hero.webp",
      "alt": "Ocean Swirl Circle Granny Square — Free Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/ocean-swirl-circle-granny-square-step-2.webp",
      "alt": "Ocean Swirl Circle Granny Square — Free Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/ocean-swirl-circle-granny-square-step-3.webp",
      "alt": "Ocean Swirl Circle Granny Square — Free Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/ocean-swirl-circle-granny-square-step-4.webp",
      "alt": "Ocean Swirl Circle Granny Square — Free Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 1
}