{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "sunburst-granny-square-pattern",
  "title": "Sunburst Granny Square — Free Pattern (Step by Step)",
  "meta_description": "Crochet a vintage sunburst granny square with this free pattern — 12 puffy bobbles, one clever squaring round, exact stitch counts and color combos.",
  "published_at": "2026-07-08",
  "updated_at": "2026-07-08",
  "author": "Ruby",
  "thumbnail_url": "data/images/sunburst-granny-square-pattern-hero.webp",
  "meta": {
    "title": "Sunburst Granny Square — Free Pattern (Step by Step)",
    "pattern_name": "Sunburst Granny Square — Free Pattern (Step by Step)",
    "difficulty": "Intermediate",
    "time_needed": "1-2 Hours",
    "rating": 4.8,
    "made_count": "960",
    "taxonomy": {
      "category": "Classic & Solid",
      "skill_level": "Intermediate",
      "yarn_weight": "Worsted",
      "tags": [
        "granny square",
        "sunburst granny square",
        "bobble stitch",
        "free pattern",
        "vintage crochet",
        "blanket square"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Sunburst Granny Square — Free Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Skill Level",
          "value": "Intermediate / Bobbles + one squaring round — a step up that's worth it",
          "raw_text": "Skill Level: Intermediate / Bobbles + one squaring round — a step up that's worth it",
          "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": "Time Estimate",
          "value": "1-2 hours per square",
          "raw_text": "Time Estimate: 1-2 hours per square",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "hero-info-3",
          "label": "Vibe",
          "value": "A puffed sun bursting out of every square — pure vintage warmth",
          "raw_text": "Vibe: A puffed sun bursting out of every square — pure vintage warmth",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ],
      "image": {
        "url": "data/images/sunburst-granny-square-pattern-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": "The sunburst is the square that makes people stop and ask \"wait, you MADE that?\". A ring of plump bobble stitches creates a dimensional sun at the center, then one clever squaring round turns the circle into a perfect square.",
          "raw_text": "The sunburst is the square that makes people stop and ask \"wait, you MADE that?\". A ring of plump bobble stitches creates a dimensional sun at the center, then one clever squaring round turns the circle into a perfect 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": "about-info-2",
          "label": "",
          "value": "It looks advanced, but it's really just three circle rounds and one round of mixed stitch heights. Every round below has an exact stitch count so you can check yourself as the sun grows.",
          "raw_text": "It looks advanced, but it's really just three circle rounds and one round of mixed stitch heights. Every round below has an exact stitch count so you can check yourself as the sun grows.",
          "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": "The texture. Bobbles give the center real depth that flat squares can't match — and a blanket of sunbursts looks like a field of little suns. It's also the perfect pattern for learning two skills at once: bobble stitches and circle-to-square construction.",
          "raw_text": "The texture. Bobbles give the center real depth that flat squares can't match — and a blanket of sunbursts looks like a field of little suns. It's also the perfect pattern for learning two skills at once: bobble stitches and circle-to-square construction.",
          "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": "Color Combination Suggestions",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "switch-1",
          "label": "",
          "value": "Vintage sunburst: mustard center, terracotta bobbles, cream squaring round, sage border.",
          "raw_text": "Vintage sunburst: mustard center, terracotta bobbles, cream squaring round, sage border.",
          "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": "switch-2",
          "label": "",
          "value": "High contrast: any bright bobble color on a dark neutral background makes the sun visually pop off the square.",
          "raw_text": "High contrast: any bright bobble color on a dark neutral background makes the sun visually pop off the square.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "switch-3",
          "label": "",
          "value": "Faded sunset: work rounds in shades of one color from dark center to light border.",
          "raw_text": "Faded sunset: work rounds in shades of one color from dark center to light border.",
          "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": "Bobbles sink into the fabric",
          "value": "Bobbles pop toward the side facing away from you. Keep the right side (the side you want the sun on) facing you for round 2, and give each bobble a gentle push from the back when done.",
          "raw_text": "Bobbles sink into the fabric: Bobbles pop toward the side facing away from you. Keep the right side (the side you want the sun on) facing you for round 2, and give each bobble a gentle push from the back when done.",
          "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": "Squaring round won't lie flat",
          "value": "Stitch heights carry the corner: the tall (2 tr, ch 2, 2 tr) makes the point, then hdc-dc-sc-dc-hdc slopes down and back up along the side. If it cups, you've put stitches in the wrong order; if it ruffles, you've added extras.",
          "raw_text": "Squaring round won't lie flat: Stitch heights carry the corner: the tall (2 tr, ch 2, 2 tr) makes the point, then hdc-dc-sc-dc-hdc slopes down and back up along the side. If it cups, you've put stitches in the wrong order; if it ruffles, you've added extras.",
          "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": "Lost count around the bobble round",
          "value": "There are exactly 12 bobbles with one ch 1 after each. Count the ch-1 gaps, not the bobbles — gaps are easier to see.",
          "raw_text": "Lost count around the bobble round: There are exactly 12 bobbles with one ch 1 after each. Count the ch-1 gaps, not the bobbles — gaps are easier to see.",
          "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": "Center hole too big",
          "value": "Use a magic ring and pull it firmly closed before joining round 1 — a ch-4 ring always leaves a visible hole with dc stitches.",
          "raw_text": "Center hole too big: Use a magic ring and pull it firmly closed before joining round 1 — a ch-4 ring always leaves a visible hole with dc stitches.",
          "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": "yarn",
          "group_name": "Yarn",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-1-1",
              "label": "",
              "value": "Worsted weight (#4) yarn in 3–4 colors — about 30 g / 60 yd total per square.",
              "raw_text": "Worsted weight (#4) yarn in 3–4 colors — about 30 g / 60 yd total per 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": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Shown in: mustard (center), terracotta (bobbles), cream (squaring), sage (border).",
              "raw_text": "Shown in: mustard (center), terracotta (bobbles), cream (squaring), sage (border).",
              "round_start": null,
              "round_end": null,
              "is_range": false,
              "stitch_count": null,
              "question": null,
              "answer": null,
              "abbr": null,
              "meaning": null
            }
          ]
        },
        {
          "order": 2,
          "group_code": "hook-notions",
          "group_name": "Hook & Notions",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-2-1",
              "label": "",
              "value": "5.0 mm (H-8) crochet hook",
              "raw_text": "5.0 mm (H-8) crochet hook",
              "round_start": null,
              "round_end": null,
              "is_range": false,
              "stitch_count": null,
              "question": null,
              "answer": null,
              "abbr": null,
              "meaning": null
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-2-2",
              "label": "",
              "value": "Yarn needle for weaving in ends",
              "raw_text": "Yarn needle for weaving in ends",
              "round_start": null,
              "round_end": null,
              "is_range": false,
              "stitch_count": null,
              "question": null,
              "answer": null,
              "abbr": null,
              "meaning": null
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-2-3",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors",
              "round_start": null,
              "round_end": null,
              "is_range": false,
              "stitch_count": null,
              "question": null,
              "answer": null,
              "abbr": null,
              "meaning": null
            }
          ]
        },
        {
          "order": 3,
          "group_code": "gauge-size",
          "group_name": "Gauge & Finished Size",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-3-1",
              "label": "",
              "value": "Finished square: approx. 12 cm / 4.75 in after 5 rounds with worsted + 5 mm hook.",
              "raw_text": "Finished square: approx. 12 cm / 4.75 in after 5 rounds with worsted + 5 mm hook.",
              "round_start": null,
              "round_end": null,
              "is_range": false,
              "stitch_count": null,
              "question": null,
              "answer": null,
              "abbr": null,
              "meaning": null
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-3-2",
              "label": "",
              "value": "Bobble tension matters more than gauge: work bobble loops loosely so the final pull-through doesn't fight you.",
              "raw_text": "Bobble tension matters more than gauge: work bobble loops loosely so the final pull-through doesn't fight you.",
              "round_start": null,
              "round_end": null,
              "is_range": false,
              "stitch_count": null,
              "question": null,
              "answer": null,
              "abbr": null,
              "meaning": null
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 0,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations (US Terms)",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain",
          "raw_text": "ch = chain",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain"
        },
        {
          "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-sl-st",
          "label": "sl st",
          "value": "slip stitch",
          "raw_text": "sl st = slip stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sl st",
          "meaning": "slip stitch"
        },
        {
          "order": 4,
          "row_type": "abbrev",
          "code": "abbrev-st(s)",
          "label": "st(s)",
          "value": "stitch(es)",
          "raw_text": "st(s) = stitch(es)",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st(s)",
          "meaning": "stitch(es)"
        },
        {
          "order": 5,
          "row_type": "abbrev",
          "code": "abbrev-sp",
          "label": "sp",
          "value": "space",
          "raw_text": "sp = space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sp",
          "meaning": "space"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-MR",
          "label": "MR",
          "value": "magic ring",
          "raw_text": "MR = magic ring",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "MR",
          "meaning": "magic ring"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-rnd",
          "label": "rnd",
          "value": "round",
          "raw_text": "rnd = round",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "rnd",
          "meaning": "round"
        },
        {
          "order": 8,
          "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": 9,
          "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": 10,
          "row_type": "abbrev",
          "code": "abbrev-tr",
          "label": "tr",
          "value": "treble crochet",
          "raw_text": "tr = treble crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "tr",
          "meaning": "treble crochet"
        },
        {
          "order": 11,
          "row_type": "abbrev",
          "code": "abbrev-bobble",
          "label": "bobble",
          "value": "4-dc bobble (see note in pattern)",
          "raw_text": "bobble = 4-dc bobble (see note in pattern)",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "bobble",
          "meaning": "4-dc bobble (see note in pattern)"
        }
      ]
    },
    {
      "order": 7,
      "card_type": "part",
      "code": "the-square",
      "title": "The Square",
      "raw_heading": "The Square:",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "subhead",
          "code": "square-note-0",
          "label": "",
          "value": "How to make a 4-dc bobble",
          "raw_text": "How to make a 4-dc bobble: [yarn over, insert hook in stitch, pull up a loop, yarn over, pull through 2 loops] 4 times in the same stitch — 5 loops on hook — then yarn over and pull through all 5. The starting bobble of round 2 uses ch 2 + 3 dc worked the same way.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "instruction",
          "code": "square-note-0",
          "label": "Steps",
          "value": "[yarn over, insert hook in stitch, pull up a loop, yarn over, pull through 2 loops] 4 times in the same stitch — 5 loops on hook — then yarn over and pull through all 5. The starting bobble of round 2 uses ch 2 + 3 dc worked the same way.",
          "raw_text": "How to make a 4-dc bobble: [yarn over, insert hook in stitch, pull up a loop, yarn over, pull through 2 loops] 4 times in the same stitch — 5 loops on hook — then yarn over and pull through all 5. The starting bobble of round 2 uses ch 2 + 3 dc worked the same way.",
          "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": "square-round-1",
          "label": "Rnd 1",
          "value": "in a MR: ch 3 (counts as dc), 11 dc; sl st to top of ch-3 to join",
          "raw_text": "Rnd 1: in a MR: ch 3 (counts as dc), 11 dc; sl st to top of ch-3 to join (12)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "square-round-2",
          "label": "Rnd 2",
          "value": "ch 2, 3-dc starting bobble in same st, ch 1, [4-dc bobble in next st, ch 1] 11 times; sl st to top of first bobble to join",
          "raw_text": "Rnd 2: ch 2, 3-dc starting bobble in same st, ch 1, [4-dc bobble in next st, ch 1] 11 times; sl st to top of first bobble to join (12)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "square-note-1",
          "label": "",
          "value": "12 bobbles, 12 ch-1 spaces. Push each bobble toward you before moving on — this is the sun taking shape.",
          "raw_text": "12 bobbles, 12 ch-1 spaces. Push each bobble toward you before moving on — this is the sun taking shape.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "round",
          "code": "square-round-3",
          "label": "Rnd 3",
          "value": "sl st into the next ch-1 sp, ch 3, 1 dc in same sp, 2 dc in each remaining ch-1 sp around; sl st to join",
          "raw_text": "Rnd 3: sl st into the next ch-1 sp, ch 3, 1 dc in same sp, 2 dc in each remaining ch-1 sp around; sl st to join (24)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 24,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "round",
          "code": "square-round-4",
          "label": "Rnd 4",
          "value": "ch 1, [(2 tr, ch 2, 2 tr) in next st, hdc in next st, dc in next st, sc in next st, dc in next st, hdc in next st] 4 times; sl st to first tr to join",
          "raw_text": "Rnd 4: ch 1, [(2 tr, ch 2, 2 tr) in next st, hdc in next st, dc in next st, sc in next st, dc in next st, hdc in next st] 4 times; sl st to first tr to join (36)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": 36,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "info",
          "code": "square-note-2",
          "label": "",
          "value": "This is the squaring round: the tall treble group builds each corner and the sloping hdc-dc-sc-dc-hdc fills the sides. 36 stitches plus four ch-2 corner spaces.",
          "raw_text": "This is the squaring round: the tall treble group builds each corner and the sloping hdc-dc-sc-dc-hdc fills the sides. 36 stitches plus four ch-2 corner spaces.",
          "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": "square-round-5",
          "label": "Rnd 5",
          "value": "ch 3, dc in each st around, working (2 dc, ch 2, 2 dc) in each corner ch-2 sp; sl st to join",
          "raw_text": "Rnd 5: ch 3, dc in each st around, working (2 dc, ch 2, 2 dc) in each corner ch-2 sp; sl st to join (52)",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": 52,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "instruction",
          "code": "square-note-3",
          "label": "Steps",
          "value": "Fasten off and weave in ends. For a bigger square, keep adding dc border rounds with (2 dc, ch 2, 2 dc) corners — each round adds 16 stitches.",
          "raw_text": "Fasten off and weave in ends. For a bigger square, keep adding dc border rounds with (2 dc, ch 2, 2 dc) corners — each round adds 16 stitches.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 8,
      "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": "Counts in ( ) are total stitches in the round; corner ch-2 spaces are not counted.",
          "raw_text": "Note: Counts in ( ) are total stitches in the round; corner ch-2 spaces are not counted.",
          "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": "Written in US terms. UK: our dc = your tr, our tr = your dtr, our sc = your dc, our hdc = your htr.",
          "raw_text": "Note: Written in US terms. UK: our dc = your tr, our tr = your dtr, our sc = your dc, our hdc = your htr.",
          "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": "Color changes look cleanest at the join: finish the last pull-through of the joining sl st with the new color.",
          "raw_text": "Note: Color changes look cleanest at the join: finish the last pull-through of the joining sl st with the new color.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "faq",
      "code": "faq",
      "title": "FAQ",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "faq",
          "code": "faq-1",
          "label": "My bobbles look flat — what went wrong?",
          "value": "Two usual causes: working the loops too tight (loosen up — bobbles need room to puff) or having the wrong side facing you on round 2. Bobbles always pop away from the side you're looking at.",
          "raw_text": "My bobbles look flat — what went wrong? Two usual causes: working the loops too tight (loosen up — bobbles need room to puff) or having the wrong side facing you on round 2. Bobbles always pop away from the side you're looking at.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "My bobbles look flat — what went wrong?",
          "answer": "Two usual causes: working the loops too tight (loosen up — bobbles need room to puff) or having the wrong side facing you on round 2. Bobbles always pop away from the side you're looking at.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "Can I make the sunburst with puff stitches instead of bobbles?",
          "value": "Yes — a 3-loop puff (hdc-style) in every stitch of round 2 gives a softer, rounder sun. Keep the ch 1 between puffs and all following rounds stay the same.",
          "raw_text": "Can I make the sunburst with puff stitches instead of bobbles? Yes — a 3-loop puff (hdc-style) in every stitch of round 2 gives a softer, rounder sun. Keep the ch 1 between puffs and all following rounds stay the same.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I make the sunburst with puff stitches instead of bobbles?",
          "answer": "Yes — a 3-loop puff (hdc-style) in every stitch of round 2 gives a softer, rounder sun. Keep the ch 1 between puffs and all following rounds stay the same.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Why treble crochet in the corners of round 4?",
          "value": "Round 4 turns a circle into a square, and the corners are the farthest points from the center — taller stitches (tr) reach them without pulling, while shorter stitches (sc) sit at the middle of each side. That height ramp is what keeps the square flat.",
          "raw_text": "Why treble crochet in the corners of round 4? Round 4 turns a circle into a square, and the corners are the farthest points from the center — taller stitches (tr) reach them without pulling, while shorter stitches (sc) sit at the middle of each side. That height ramp is what keeps the square flat.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Why treble crochet in the corners of round 4?",
          "answer": "Round 4 turns a circle into a square, and the corners are the farthest points from the center — taller stitches (tr) reach them without pulling, while shorter stitches (sc) sit at the middle of each side. That height ramp is what keeps the square flat.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Is this square good for blankets?",
          "value": "It's a classic for exactly that. The bobble texture adds weight, so sunburst blankets drape beautifully. Mixing sunbursts with flat classic grannies in the same colorway is a gorgeous low-effort combo.",
          "raw_text": "Is this square good for blankets? It's a classic for exactly that. The bobble texture adds weight, so sunburst blankets drape beautifully. Mixing sunbursts with flat classic grannies in the same colorway is a gorgeous low-effort combo.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Is this square good for blankets?",
          "answer": "It's a classic for exactly that. The bobble texture adds weight, so sunburst blankets drape beautifully. Mixing sunbursts with flat classic grannies in the same colorway is a gorgeous low-effort combo.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Can a confident beginner try this?",
          "value": "Absolutely — if you can dc and count to 12, the only new skill is the bobble, and the note above walks you through it. Make one classic granny square first so corner spaces feel familiar.",
          "raw_text": "Can a confident beginner try this? Absolutely — if you can dc and count to 12, the only new skill is the bobble, and the note above walks you through it. Make one classic granny square first so corner spaces feel familiar.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can a confident beginner try this?",
          "answer": "Absolutely — if you can dc and count to 12, the only new skill is the bobble, and the note above walks you through it. Make one classic granny square first so corner spaces feel familiar.",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "source_url": null,
  "images": [
    "data/images/sunburst-granny-square-pattern-hero.webp",
    "data/images/sunburst-granny-square-pattern-styled.webp"
  ],
  "thumbnail_images": [
    {
      "url": "data/images/sunburst-granny-square-pattern-hero.webp",
      "alt": "Sunburst granny square with mustard and terracotta bobble center on a cream and sage border — finished square laid flat",
      "is_featured": true
    },
    {
      "url": "data/images/sunburst-granny-square-pattern-styled.webp",
      "alt": "Three sunburst granny squares in warm retro colors arranged on a wooden table",
      "is_featured": false
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/sunburst-granny-square-pattern-hero.webp",
      "alt": "Sunburst granny square with mustard and terracotta bobble center on a cream and sage border — finished square laid flat",
      "is_featured": true
    },
    {
      "url": "data/images/sunburst-granny-square-pattern-styled.webp",
      "alt": "Three sunburst granny squares in warm retro colors arranged on a wooden table",
      "is_featured": false
    }
  ]
}