{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "large-willow-granny-square-pattern",
  "title": "Large Willow Granny Square — Free Textured Bobble Pattern",
  "meta_description": "Crochet the Large Willow Granny Square — a free 8-round pattern with textured treble-bobble petals in 4 dreamy colors for blankets and cushions",
  "published_at": "2026-07-12",
  "updated_at": "2026-07-12",
  "author": "Ruby",
  "thumbnail_url": "data/images/large-willow-granny-square-pattern-hero.webp",
  "meta": {
    "title": "Large Willow Granny Square — Free Textured Bobble Pattern",
    "pattern_name": "Large Willow Granny Square — Free Textured Bobble Pattern",
    "difficulty": "Intermediate",
    "time_needed": "2-3 Hours",
    "rating": 4.8,
    "made_count": "3.4K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Intermediate",
      "yarn_weight": "DK / Sport",
      "tags": [
        "granny square",
        "free pattern",
        "treble bobble",
        "textured square",
        "floral granny square",
        "blanket square",
        "dk yarn",
        "afghan block",
        "crochet motif",
        "color changes",
        "willow square",
        "home decor crochet"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Large Willow Granny Square — Free Textured Bobble Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Intermediate Level",
          "value": "Comfortable with treble crochet and multi-color bobble clusters",
          "raw_text": "Comfortable with treble crochet and multi-color bobble clusters",
          "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": "2–3 hours of cozy, satisfying stitching per square",
          "raw_text": "2–3 hours of cozy, satisfying stitching 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": "Blanket-Ready Motif",
          "value": "A textured floral block perfect for afghans, cushions & gifts",
          "raw_text": "A textured floral block perfect for afghans, cushions & gifts",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 2,
      "card_type": "about",
      "code": "about",
      "title": "About",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "about-info-1",
          "label": "",
          "value": "The Large Willow Granny Square is a lush, garden-inspired motif built around clusters of treble crochet bobbles that pop up like little petals. Instead of the flat, airy look of a classic granny, this square layers raised 4-tr-bo and 5-tr-bo puffs over eight rounds to create real dimension and softness. It's perfect for anyone who loves a granny square with personality — makers who want their blankets, cushions, and market bags to feel handmade, romantic, and just a touch fancy",
          "raw_text": "The Large Willow Granny Square is a lush, garden-inspired motif built around clusters of treble crochet bobbles that pop up like little petals. Instead of the flat, airy look of a classic granny, this square layers raised 4-tr-bo and 5-tr-bo puffs over eight rounds to create real dimension and softness. It's perfect for anyone who loves a granny square with personality — makers who want their blankets, cushions, and market bags to feel handmade, romantic, and just a touch fancy",
          "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": "This one sits comfortably at the intermediate level. You'll rely on a handful of core skills: forming partial treble crochets (yarn over, pull up a loop, pull through two), stacking four or five of them in the same stitch, then closing the whole cluster by drawing through all the loops on your hook. Add in tidy color changes across four shades and a bit of counting, and you have a rewarding project. Most crocheters finish a single square in about two to three relaxed hours",
          "raw_text": "This one sits comfortably at the intermediate level. You'll rely on a handful of core skills: forming partial treble crochets (yarn over, pull up a loop, pull through two), stacking four or five of them in the same stitch, then closing the whole cluster by drawing through all the loops on your hook. Add in tidy color changes across four shades and a bit of counting, and you have a rewarding project. Most crocheters finish a single square in about two to three relaxed 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": "about-info-3",
          "label": "",
          "value": "The finished square measures a generous 5.5 inches by 5.5 inches in DK or sport-weight yarn on a 3.50mm hook. The bobble petals give it a plush, almost quilted feel, while the golden center, green leaves, and soft peach border frame everything like a real willow-garden bloom. Stitch a stack of them for a heirloom throw, back a couple with fabric for pillow covers, or gift a single framed square — it reads as thoughtful, cozy, and genuinely special",
          "raw_text": "The finished square measures a generous 5.5 inches by 5.5 inches in DK or sport-weight yarn on a 3.50mm hook. The bobble petals give it a plush, almost quilted feel, while the golden center, green leaves, and soft peach border frame everything like a real willow-garden bloom. Stitch a stack of them for a heirloom throw, back a couple with fabric for pillow covers, or gift a single framed square — it reads as thoughtful, cozy, and genuinely special",
          "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 first bobble petal popped off my hook. There's something so satisfying about building a 4-tr-bo — yarn over, pull up a loop, pull through two, again and again in the same stitch — and then cinching all five loops closed to reveal this chubby little petal. I love that the 5-tr-bo rounds sit even taller, so the willow bloom looks like it's actually growing as you work outward through the eight rounds. The four-color scheme is my favorite part: watching the golden center give way to bright pink petals, then green leaves, then that dreamy peach border feels like painting with yarn. It's textured enough to keep my hands busy in front of a movie, but rhythmic enough that I can chat while I stitch. And because it finishes at a tidy 5.5 inches, I always tell myself \"just one more square\" — then suddenly I have a whole blanket panel. It's the rare pattern that's genuinely relaxing and impressive-looking at the same time",
          "raw_text": "I fell for this square the moment the first bobble petal popped off my hook. There's something so satisfying about building a 4-tr-bo — yarn over, pull up a loop, pull through two, again and again in the same stitch — and then cinching all five loops closed to reveal this chubby little petal. I love that the 5-tr-bo rounds sit even taller, so the willow bloom looks like it's actually growing as you work outward through the eight rounds. The four-color scheme is my favorite part: watching the golden center give way to bright pink petals, then green leaves, then that dreamy peach border feels like painting with yarn. It's textured enough to keep my hands busy in front of a movie, but rhythmic enough that I can chat while I stitch. And because it finishes at a tidy 5.5 inches, I always tell myself \"just one more square\" — then suddenly I have a whole blanket panel. It's the rare pattern that's genuinely relaxing and impressive-looking at the same time",
          "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": "Closing the bobble at the wrong loop count on a 4-tr-bo",
          "value": "A finished 4-tr-bo leaves exactly 5 loops on your hook before the final yarn over (4 partial trebles plus your starting loop). Count deliberately after the fourth partial treble — if you only see 4 loops you skipped a repeat, and if you see 6 you worked an extra one. Only pull through all 5 loops once the count is correct",
          "raw_text": "A finished 4-tr-bo leaves exactly 5 loops on your hook before the final yarn over (4 partial trebles plus your starting loop). Count deliberately after the fourth partial treble — if you only see 4 loops you skipped a repeat, and if you see 6 you worked an extra one. Only pull through all 5 loops once the count is correct",
          "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": "Confusing the 4-tr-bo and 5-tr-bo rounds",
          "value": "The 5-tr-bo repeats steps 1–3 five times total (not four), leaving 6 loops on the hook before closing. Keep the written pattern in front of you and mark which rounds call for four versus five partial trebles — mixing them up mid-round leaves lopsided petals that won't line up around the square",
          "raw_text": "The 5-tr-bo repeats steps 1–3 five times total (not four), leaving 6 loops on the hook before closing. Keep the written pattern in front of you and mark which rounds call for four versus five partial trebles — mixing them up mid-round leaves lopsided petals that won't line up around 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": "mistake",
          "code": "mistake-3",
          "label": "Stopping each partial treble too early or too late",
          "value": "Each partial treble is only worked to 'yarn over, pull through two' so two loops remain and build on the hook. If you accidentally pull through all the loops on an individual treble, you've completed a full stitch instead of a partial one and the bobble won't form. Stop at two remaining loops every single time until the very last close-off",
          "raw_text": "Each partial treble is only worked to 'yarn over, pull through two' so two loops remain and build on the hook. If you accidentally pull through all the loops on an individual treble, you've completed a full stitch instead of a partial one and the bobble won't form. Stop at two remaining loops every single time until the very last close-off",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "mistake",
          "code": "mistake-4",
          "label": "Sloppy or visible color changes between the four shades",
          "value": "Change color on the final yarn over of the last stitch before the new section, so the fresh color forms the top loops cleanly. Carry or fasten off tails, but don't crochet over them inside a bobble — the extra bulk distorts the petal. Weave those ends in afterward with your darning needle",
          "raw_text": "Change color on the final yarn over of the last stitch before the new section, so the fresh color forms the top loops cleanly. Carry or fasten off tails, but don't crochet over them inside a bobble — the extra bulk distorts the petal. Weave those ends in afterward with your darning needle",
          "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": "Losing the square shape at the corners",
          "value": "Every round needs consistent corner spaces (typically a chain-2 or chain-3 in each corner) to keep the 5.5-inch square true. If your corners start rounding off, you've likely skipped a corner chain or worked your bobble cluster into the corner space instead of on either side of it. Count your clusters per side each round — they should match",
          "raw_text": "Every round needs consistent corner spaces (typically a chain-2 or chain-3 in each corner) to keep the 5.5-inch square true. If your corners start rounding off, you've likely skipped a corner chain or worked your bobble cluster into the corner space instead of on either side of it. Count your clusters per side each round — they should match",
          "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": "Working too tightly and squashing the bobbles",
          "value": "Bobbles need a little breathing room to puff. A death-grip tension flattens the treble clusters and makes the final close-through-all-loops step painfully hard to pull. Relax your yarn hold, and if your petals still look flat, go up a quarter hook size to 3.75mm so the texture can bloom",
          "raw_text": "Bobbles need a little breathing room to puff. A death-grip tension flattens the treble clusters and makes the final close-through-all-loops step painfully hard to pull. Relax your yarn hold, and if your petals still look flat, go up a quarter hook size to 3.75mm so the texture can bloom",
          "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- 4 color, the sample is made with DK sports",
              "raw_text": "Yarn of your choice- 4 color, the sample is made with DK sports"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook – 3.50mm hook",
              "raw_text": "Crochet hook – 3.50mm hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Darning Needle",
              "raw_text": "Darning Needle"
            },
            {
              "order": 4,
              "row_type": "item",
              "code": "mat-1-4",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors"
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 7,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-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": 2,
          "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": 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-tr",
          "label": "tr",
          "value": "treble crochet",
          "raw_text": "tr = treble crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "tr",
          "meaning": "treble crochet"
        },
        {
          "order": 5,
          "row_type": "abbrev",
          "code": "abbrev-bo",
          "label": "bo",
          "value": "bobble",
          "raw_text": "bo = bobble",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "bo",
          "meaning": "bobble"
        },
        {
          "order": 6,
          "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": 7,
          "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": 8,
          "row_type": "abbrev",
          "code": "abbrev-yo",
          "label": "yo",
          "value": "yarn over",
          "raw_text": "yo = yarn over",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "yo",
          "meaning": "yarn over"
        },
        {
          "order": 9,
          "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": 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-sl-st",
          "label": "sl st",
          "value": "slip stitch for joining for different round.",
          "raw_text": "sl st = slip stitch for joining for different round.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sl st",
          "meaning": "slip stitch for joining for different round."
        }
      ]
    },
    {
      "order": 8,
      "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": "magic ring, ch3 as standing st(count as dc), 15dc, slst into top of ch3, fasten off.",
          "raw_text": "Round 1 magic ring, ch3 as standing st(count as dc), 15dc, slst into top of ch3, fasten off.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "instruction",
          "code": "main-pattern-info-1",
          "label": "Steps",
          "value": "Start with a magic ring; make ch3 as standing stitch (count as dc); dc into the ring; 14dc into the ring, slst into top of ch3, fasten off. Round 1 finished.",
          "raw_text": "Start with a magic ring make ch3 as standing stitch (count as dc) dc into the ring 14dc into the ring, slst into top of ch3, fasten off. Round 1 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "main-pattern-round-2",
          "label": "Round 2",
          "value": "Join bright pink yarn, pull the yarn through the gap between dc and dc, ch3 as standing st (count as dc), ch2, [dc in next gap, ch] rep 15 times, slst into top of ch3, do not fasten off.",
          "raw_text": "Round 2 Join bright pink yarn, pull the yarn through the gap between dc and dc, ch3 as standing st (count as dc), ch2, [dc in next gap, ch] rep 15 times, slst into top of ch3, do not fasten off.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "instruction",
          "code": "main-pattern-info-2",
          "label": "Steps",
          "value": "Join bright pink yarn, pull the yarn through the gap between dc and dc; make ch3 as standing st (count as dc), ch2; another dc in next gap; ch; [dc in next gap, ch] repeat 14 times, slst into top of ch3, do not fasten off. Round 2 finished.",
          "raw_text": "Join bright pink yarn, pull the yarn through the gap between dc and dc make ch3 as standing st (count as dc), ch2 another dc in next gap ch [dc in next gap, ch] repeat 14 times, slst into top of ch3, do not fasten off. Round 2 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "ch3 as standing (count as incomplete tr), [yo twice, insert hook in ch-sp, yo, pull up loop, (yo, pull through 2 loops) rep 2 times] rep 4 times in same ch-sp, yo, pull through all 5 loops on hook, this is a first 4-tr-bo, ch2, [4-tr-bo in next ch-sp, ch2] rep 15 times, slst into top of ch3, fasten off.",
          "raw_text": "Round 3 ch3 as standing (count as incomplete tr), [yo twice, insert hook in ch-sp, yo, pull up loop, (yo, pull through 2 loops) rep 2 times] rep 4 times in same ch-sp, yo, pull through all 5 loops on hook, this is a first 4-tr-bo, ch2, [4-tr-bo in next ch-sp, ch2] rep 15 times, slst into top of ch3, fasten off.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "subhead",
          "code": "main-pattern-info-3",
          "label": "",
          "value": "How to make a 4 treble crochet bobble stitch (4-tr-bo)",
          "raw_text": "How to make 4 treble crochet bobble stitch(4-tr-bo) 1. yo, insert hook into the designated st 2. yo and pull up a loop (3 loops on your hook) 3. yo and pull through 2 loops (2 loops remain on hook), you've now completed one partial treble crochet 4. repeat steps 1-3 three more times in the same stitch. This creates a total of 4 partial treble crochets all worked into the same stitch. 5. after completing the fourth partial treble crochet, you should have 5 loops on your hook. 6. yo and pull through all 5 loops on your hook, you're back to just one loop on your hook, and you've completed a 4-tr-bo.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "instruction",
          "code": "main-pattern-info-3",
          "label": "Steps",
          "value": "1. yo, insert hook into the designated st. 2. yo and pull up a loop (3 loops on your hook). 3. yo and pull through 2 loops (2 loops remain on hook) — you've now completed one partial treble crochet. 4. Repeat steps 1-3 three more times in the same stitch. This creates a total of 4 partial treble crochets all worked into the same stitch. 5. After completing the fourth partial treble crochet, you should have 5 loops on your hook. 6. yo and pull through all 5 loops on your hook — you're back to just one loop on your hook, and you've completed a 4-tr-bo.",
          "raw_text": "How to make 4 treble crochet bobble stitch(4-tr-bo) 1. yo, insert hook into the designated st 2. yo and pull up a loop (3 loops on your hook) 3. yo and pull through 2 loops (2 loops remain on hook), you've now completed one partial treble crochet 4. repeat steps 1-3 three more times in the same stitch. This creates a total of 4 partial treble crochets all worked into the same stitch. 5. after completing the fourth partial treble crochet, you should have 5 loops on your hook. 6. yo and pull through all 5 loops on your hook, you're back to just one loop on your hook, and you've completed a 4-tr-bo.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "instruction",
          "code": "main-pattern-info-4",
          "label": "Steps",
          "value": "make ch3 as standing (count as incomplete tr); [yo twice, insert hook in st, yo, pull up loop, (yo, pull through 2 loops) repeat 2 times] repeat 4 times in same ch-sp, yo, pull through all 5 loops on hook, now we finished a first 4-tr-bo; ch2; [4-tr-bo in next ch-sp, ch2] repeat 15 times, slst into top of ch3, fasten off. Round 3 finished.",
          "raw_text": "make ch3 as standing (count as incomplete tr) [yo twice, insert hook in st, yo, pull up loop, (yo, pull through 2 loops) repeat 2 times] repeat 4 times in same ch-sp, yo, pull through all 5 loops on hook, now we finished a first 4-tr-bo ch2 [4-tr-bo in next ch-sp, ch2] repeat 15 times, slst into top of ch3, fasten off. Round 3 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "round",
          "code": "main-pattern-round-4",
          "label": "Round 4",
          "value": "Join green yarn, pull the yarn through any ch-sp, ch as standing st, 4sc in same ch-sp, *5sc in next ch-sp, rep * 15 times, slst into the first sc, do not fasten off.",
          "raw_text": "Round 4 Join green yarn, pull the yarn through any ch-sp, ch as standing st, 4sc in same ch-sp, *5sc in next ch-sp, rep * 15 times, slst into the first sc, do not fasten off.",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "instruction",
          "code": "main-pattern-info-5",
          "label": "Steps",
          "value": "Join green yarn, pull the yarn through any ch-sp; make ch as standing st; sc in same ch-sp; another 3sc in same ch-sp; *5sc in next ch-sp, repeat * 15 times, slst into the first sc, do not fasten off. Round 4 finished.",
          "raw_text": "Join green yarn, pull the yarn through any ch-sp make ch as standing st sc in same ch-sp another 3sc in same ch-sp *5sc in next ch-sp, repeat * 15 times, slst into the first sc, do not fasten off. Round 4 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "round",
          "code": "main-pattern-round-5",
          "label": "Round 5",
          "value": "[ch5 as standing st, slst into the gap between 5sc and 5sc, ch6, 5-tr-bo in the gap between next 5sc and 5sc, ch2, 5-tr-bo in same gap, ch6, slst into next gap between 5sc and 5sc, ch6, slst into next gap between 5sc and 5sc] rep 4 times, fasten off.",
          "raw_text": "Round 5 [ch5 as standing st, slst into the gap between 5sc and 5sc, ch6, 5-tr-bo in the gap between next 5sc and 5sc, ch2, 5-tr-bo in same gap, ch6, slst into next gap between 5sc and 5sc, ch6, slst into next gap between 5sc and 5sc] rep 4 times, fasten off.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "subhead",
          "code": "main-pattern-info-6",
          "label": "",
          "value": "How to make a 5 treble crochet bobble stitch (5-tr-bo)",
          "raw_text": "How to make 4 treble crochet bobble stitch(4-tr-bo) 1. yo, insert hook into the designated st 2. yo and pull up a loop (3 loops on your hook) 3. yo and pull through 2 loops (2 loops remain on hook), you've now completed one partial treble crochet 4. repeat steps 1-3 four more times in the same stitch. This creates a total of 5 partial treble crochets all worked into the same stitch. 5. after completing the fourth partial treble crochet, you should have 6 loops on your hook. 6. yo and pull through all 6 loops on your hook, you're back to just one loop on your hook, and you've completed a 4-tr-bo.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "instruction",
          "code": "main-pattern-info-6",
          "label": "Steps",
          "value": "1. yo, insert hook into the designated st. 2. yo and pull up a loop (3 loops on your hook). 3. yo and pull through 2 loops (2 loops remain on hook) — you've now completed one partial treble crochet. 4. Repeat steps 1-3 four more times in the same stitch. This creates a total of 5 partial treble crochets all worked into the same stitch. 5. After completing the fifth partial treble crochet, you should have 6 loops on your hook. 6. yo and pull through all 6 loops on your hook — you're back to just one loop on your hook, and you've completed a 5-tr-bo.",
          "raw_text": "How to make 4 treble crochet bobble stitch(4-tr-bo) 1. yo, insert hook into the designated st 2. yo and pull up a loop (3 loops on your hook) 3. yo and pull through 2 loops (2 loops remain on hook), you've now completed one partial treble crochet 4. repeat steps 1-3 four more times in the same stitch. This creates a total of 5 partial treble crochets all worked into the same stitch. 5. after completing the fourth partial treble crochet, you should have 6 loops on your hook. 6. yo and pull through all 6 loops on your hook, you're back to just one loop on your hook, and you've completed a 4-tr-bo.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "instruction",
          "code": "main-pattern-info-7",
          "label": "Steps",
          "value": "Make ch5 as standing st; slst into the gap between 5sc and 5sc; ch6; work 5-tr-bo in the gap between next 5sc and 5sc, ch2; work 5-tr-bo in same gap; ch6; slst into next gap between 5sc and 5sc; ch6; slst into next gap between 5sc and 5sc; then [ch5 as standing st, slst into the gap between 5sc and 5sc, ch6, 5-tr-bo in the gap between next 5sc and 5sc, ch2, 5-tr-bo in same gap, ch6, slst into next gap between 5sc and 5sc, ch6, slst into next gap between 5sc and 5sc] repeat 3 times, fasten off. Round 5 finished.",
          "raw_text": "Make ch5 as standing st slst into the gap between 5sc and 5sc ch6 work 5-tr-bo in the gap between next 5sc and 5sc, ch2 work 5-tr-bo in same gap ch6 slst into next gap between 5sc and 5sc ch6 slst into next gap between 5sc and 5sc [ch5 as standing st, slst into the gap between 5sc and 5sc, ch6, 5-tr-bo in the gap between next 5sc and 5sc, ch2, 5-tr-bo in same gap, ch6, slst into next gap between 5sc and 5sc, ch6, slst into next gap between 5sc and 5sc] repeat 3 times, 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": 15,
          "row_type": "round",
          "code": "main-pattern-round-6",
          "label": "Round 6",
          "value": "Join soft pink yarn, pull the yarn through the first ch-5-sp's center of any side, [ch6 as standing st, slst into next center of ch-5-sp, ch6, slst into the 5th ch st of next ch-6-sp, ch4, 5-tr-bo in next ch-2-sp, ch3, 5-tr-bo in same ch-2-sp, ch4, slst into 2rd ch st of next ch-6-sp, ch6, slst into the center of ch-5-sp] rep 4 times, fasten off.",
          "raw_text": "Join soft pink yarn, pull the yarn through the first ch-5-sp's center of any side, [ch6 as standing st, slst into next center of ch-5-sp, ch6, slst into the 5th ch st of next ch-6-sp, ch4, 5-tr-bo in next ch-2-sp, ch3, 5-tr-bo in same ch-2-sp, ch4, slst into 2rd ch st of next ch-6-sp, ch6, slst into the center of ch-5-sp] repeat 3 times, fasten off.",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 16,
          "row_type": "instruction",
          "code": "main-pattern-info-8",
          "label": "Steps",
          "value": "Join soft pink yarn, pull the yarn through the first ch-5-sp's center of any side; ch6 as standing st; slst into next center of ch-5-sp; ch6; slst into the 5th ch st of next ch-6-sp, ch4; work 5-tr-bo in next ch-2-sp; ch3; work 5-tr-bo in same ch-2-sp; ch4; slst into 2rd ch st of next ch-6-sp; ch6; slst into the center of ch-5-sp; then [ch6 as standing st, slst into next center of ch-5-sp, ch6, slst into the 5th ch st of next ch-6-sp, ch4, 5-tr-bo in next ch-2-sp, ch3, 5-tr-bo in same ch-2-sp, ch4, slst into 2rd ch st of next ch-6-sp, ch6, slst into the center of ch-5-sp] repeat 3 times, fasten off. Round 6 finished.",
          "raw_text": "Join soft pink yarn, pull the yarn through the first ch-5-sp's center of any side ch6 as standing st slst into next center of ch-5-sp ch6 slst into the 5th ch st of next ch-6-sp, ch4 work 5-tr-bo in next ch-2-sp ch3 work 5-tr-bo in same ch-2-sp ch4 slst into 2rd ch st of next ch-6-sp ch6 slst into the center of ch-5-sp [ch6 as standing st, slst into next center of ch-5-sp, ch6, slst into the 5th ch st of next ch-6-sp, ch4, 5-tr-bo in next ch-2-sp, ch3, 5-tr-bo in same ch-2-sp, ch4, slst into 2rd ch st of next ch-6-sp, ch6, slst into the center of ch-5-sp] repeat 3 times, fasten off. Round 6 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 17,
          "row_type": "round",
          "code": "main-pattern-round-7",
          "label": "Round 7",
          "value": "Join same color yarn, pull the yarn through the second ch-6-sp's center of any side, [ch6 as standing st, slst into the center of ch-6-sp, ch8, slst into ch3 of corner sp, ch3 in same corner sp, 3-dc-bo in same corner sp, ch3, 3-dc-bo in same corner sp, ch3, slst into same ch-sp, ch8, slst into center of next ch-6-sp, ch6, slst into center of next ch-6-sp] rep 4 times, fasten off.",
          "raw_text": "Round 7 Join same color yarn, pull the yarn through the second ch-6-sp's center of any side, [ch6 as standing st, slst into the center of ch-6-sp, ch8, slst into ch3 of corner sp, ch3 in same corner sp, 3-dc-bo in same corner sp, ch3, 3-dc-bo in same corner sp, ch3, slst into same ch-sp, ch8, slst into center of next ch-6-sp, ch6, slst into center of next ch-6-sp] rep 4 times, fasten off.",
          "round_start": 7,
          "round_end": 7,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 18,
          "row_type": "info",
          "code": "main-pattern-info-9",
          "label": "Technique",
          "value": "How to make a three double crochet bobble stitch (3-dc-bo): 1. yo, insert hook into the designated st. 2. yo and pull up a loop (3 loops on your hook). 3. yo and pull through 2 loops (2 loops remain on hook) — you've now completed one partial double crochet. 4. Repeat steps 1-3 two more times in the same stitch. This creates a total of 3 partial double crochets all worked into the same stitch. 5. After completing the third partial double crochet, you should have 4 loops on your hook. 6. yo and pull through all 4 loops on your hook — you're back to just one loop on your hook, and you've completed a 3-dc-bo.",
          "raw_text": "How to make three double crochet bobble stitch(3-dc-bo) 1. yo, insert hook into the designated st 2. yo and pull up a loop (3 loops on your hook) 3. yo and pull through 2 loops (2 loops remain on hook), you've now completed one partial double crochet 4. repeat steps 1-3 two more times in the same stitch. This creates a total of 3 partial double crochets all worked into the same stitch. 5. after completing the fourth partial double crochet, you should have 4 loops on your hook. 6. yo and pull through all 4 loops on your hook, you're back to just one loop on your hook, and you've completed a 3-dc-bo.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 19,
          "row_type": "instruction",
          "code": "main-pattern-info-10",
          "label": "Steps",
          "value": "Join same color yarn, pull the yarn through the second ch-6-sp's center of any side; ch6 as standing st; slst into the center of ch-6-sp; ch8; slst into ch3 of corner sp; ch3 in same corner sp; work 3-dc-bo in same corner sp; ch3; 3-dc-bo in same corner sp; ch3; slst into same ch-sp; ch8; slst into center of next ch-6-sp; ch6; slst into center of next ch-6-sp; then [ch6 as standing st, slst into the center of ch-6-sp, ch8, slst into ch3 of corner sp, ch3 in same corner sp, work 3-dc-bo in same corner sp, ch3, 3-dc-bo in same corner sp, ch3, slst into same ch-sp, ch8, slst into center of next ch-6-sp, ch6, slst into center of next ch-6-sp] repeat 3 times, fasten off. Round 7 finished.",
          "raw_text": "Join same color yarn, pull the yarn through the second ch-6-sp's center of any side ch6 as standing st slst into the center of ch-6-sp ch8 slst into ch3 of corner sp ch3 in same corner sp work 3-dc-bo in same corner sp ch3 3-dc-bo in same corner sp ch3 slst into same ch-sp ch8 slst into center of next ch-6-sp ch6 slst into center of next ch-6-sp [ch6 as standing st, slst into the center of ch-6-sp, ch8, slst into ch3 of corner sp, ch3 in same corner sp, work 3-dc-bo in same corner sp, ch3, 3-dc-bo in same corner sp, ch3, slst into same ch-sp, ch8, slst into center of next ch-6-sp, ch6, slst into center of next ch-6-sp] repeat 3 times, fasten off. Round 7 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 20,
          "row_type": "round",
          "code": "main-pattern-round-8",
          "label": "Round 8",
          "value": "Join same color yarn, pull the yarn through the first ch-8-sp's center in left of corner group, [*(ch7 as standing st, slst into center of next ch-6-sp) repeat 2 times, ch7 as standing st, slst into center of next ch-8-sp, ch7, slst into ch3 of corner sp, (2sc ch2 2sc) in same corner sp, ch7, slst into center of next ch-8-sp] rep 4 times, fasten off.",
          "raw_text": "Round 8 Join same color yarn, pull the yarn through the first ch-8-sp's center in left of corner group, [*(ch7 as standing st, slst into center of next ch-6-sp) repeat 2 times, ch7 as standing st, slst into center of next ch-8-sp, ch7, slst into ch3 of corner sp, (2sc ch2 2sc) in same corner sp, ch7, slst into center of next ch-8-sp] rep 4 times, fasten off.",
          "round_start": 8,
          "round_end": 8,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 21,
          "row_type": "instruction",
          "code": "main-pattern-info-11",
          "label": "Steps",
          "value": "Join same color yarn, pull the yarn through the first ch-8-sp's center in left of corner group; ch7 as standing st; slst into center of next ch-6-sp; ch7, slst into center of next ch-6-sp, ch7, slst into center of next ch-8-sp; ch7; slst into ch3 of corner sp; (2sc ch2 2sc) in same corner sp; ch7, slst into center of next ch-8-sp; then [*(ch7 as standing st, slst into center of next ch-6-sp) repeat 2 times, ch7 as standing st, slst into center of next ch-8-sp, ch7, slst into ch3 of corner sp, (2sc ch2 2sc) in same corner sp, ch7, slst into center of next ch-8-sp] rep 4 times, fasten off. Round 8 finished.",
          "raw_text": "Join same color yarn, pull the yarn through the first ch-8-sp's center in left of corner group ch7 as standing st slst into center of next ch-6-sp ch7, slst into center of next ch-6-sp, ch7, slst into center of next ch-8-sp ch7 slst into ch3 of corner sp (2sc ch2 2sc) in same corner sp ch7, slst into center of next ch-8-sp [*(ch7 as standing st, slst into center of next ch-6-sp) repeat 2 times, ch7 as standing st, slst into center of next ch-8-sp, ch7, slst into ch3 of corner sp, (2sc ch2 2sc) in same corner sp, ch7, slst into center of next ch-8-sp] rep 4 times, fasten off. Round 8 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "important_notes",
      "code": "important-notes",
      "title": "Important Notes",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "note-1",
          "label": "Note",
          "value": "💡 The sample is made in DK / sport-weight yarn with a 3.50mm hook to hit the 5.5-inch finished size — if you swap yarn weight, make one test square first and adjust your hook to keep multiple squares matching for a blanket",
          "raw_text": "💡 The sample is made in DK / sport-weight yarn with a 3.50mm hook to hit the 5.5-inch finished size — if you swap yarn weight, make one test square first and adjust your hook to keep multiple squares matching for a blanket",
          "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": "💡 Keep all four colors within arm's reach in separate little bowls or a yarn organizer; the Willow square changes shade often, and untangled skeins make the color transitions far smoother",
          "raw_text": "💡 Keep all four colors within arm's reach in separate little bowls or a yarn organizer; the Willow square changes shade often, and untangled skeins make the color transitions far smoother",
          "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": "💡 Pop a stitch marker in the first bobble of each round. Because the raised petals can hide your starting point, a marker saves you from miscounting clusters and losing the square's symmetry",
          "raw_text": "💡 Pop a stitch marker in the first bobble of each round. Because the raised petals can hide your starting point, a marker saves you from miscounting clusters and losing the square's symmetry",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "note-4",
          "label": "Note",
          "value": "💡 Don't fasten off too tightly at each color change — leave a 6-inch tail so you have enough length to weave in securely with your darning needle without the knot pulling a petal out of shape",
          "raw_text": "💡 Don't fasten off too tightly at each color change — leave a 6-inch tail so you have enough length to weave in securely with your darning needle without the knot pulling a petal out of shape",
          "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": "💡 If a 4-tr-bo or 5-tr-bo feels impossible to close, you're gripping too tight. Loosen the loops on your hook before the final yarn over, or wiggle the hook to open them up, then draw through all loops in one confident motion",
          "raw_text": "💡 If a 4-tr-bo or 5-tr-bo feels impossible to close, you're gripping too tight. Loosen the loops on your hook before the final yarn over, or wiggle the hook to open them up, then draw through all loops in one confident motion",
          "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": "💡 Block your finished square with a light steam or wet block, pinning it to a true 5.5-inch square. Blocking evens out the bobble texture and squares up the corners so every motif joins neatly in a blanket",
          "raw_text": "💡 Block your finished square with a light steam or wet block, pinning it to a true 5.5-inch square. Blocking evens out the bobble texture and squares up the corners so every motif joins neatly in a blanket",
          "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": "What is a 4-tr-bo in this pattern?",
          "value": "It's a 4-treble-crochet bobble: you work four partial treble crochets into the same stitch, leaving loops on your hook, then close them all together. In the Willow square these bobbles form the raised, petal-like texture around the flower",
          "raw_text": "It's a 4-treble-crochet bobble: you work four partial treble crochets into the same stitch, leaving loops on your hook, then close them all together. In the Willow square these bobbles form the raised, petal-like texture around the flower",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What is a 4-tr-bo in this pattern?",
          "answer": "It's a 4-treble-crochet bobble: you work four partial treble crochets into the same stitch, leaving loops on your hook, then close them all together. In the Willow square these bobbles form the raised, petal-like texture around the flower",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "How big is one finished Willow square?",
          "value": "A single square measures 5.5 inches by 5.5 inches when made in DK or sport-weight yarn with a 3.50mm hook. Your size may vary slightly with tension, so make one test square before starting a large project",
          "raw_text": "A single square measures 5.5 inches by 5.5 inches when made in DK or sport-weight yarn with a 3.50mm hook. Your size may vary slightly with tension, so make one test square before starting a large project",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How big is one finished Willow square?",
          "answer": "A single square measures 5.5 inches by 5.5 inches when made in DK or sport-weight yarn with a 3.50mm hook. Your size may vary slightly with tension, so make one test square before starting a large project",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "Can beginners make this granny square?",
          "value": "It's best suited to confident beginners and intermediate crocheters, since it uses treble crochet bobbles and four color changes. If you're comfortable with basic granny squares and can work a treble crochet, you can absolutely learn the bobble technique here",
          "raw_text": "It's best suited to confident beginners and intermediate crocheters, since it uses treble crochet bobbles and four color changes. If you're comfortable with basic granny squares and can work a treble crochet, you can absolutely learn the bobble technique here",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can beginners make this granny square?",
          "answer": "It's best suited to confident beginners and intermediate crocheters, since it uses treble crochet bobbles and four color changes. If you're comfortable with basic granny squares and can work a treble crochet, you can absolutely learn the bobble technique here",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "How many colors do I need?",
          "value": "The pattern is written for four colors — a golden center, bright pink petals, green leaves, and a soft peach border. You can happily use fewer or swap in your own palette; the structure works the same regardless of your color choices",
          "raw_text": "The pattern is written for four colors — a golden center, bright pink petals, green leaves, and a soft peach border. You can happily use fewer or swap in your own palette; the structure works the same regardless of your color choices",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How many colors do I need?",
          "answer": "The pattern is written for four colors — a golden center, bright pink petals, green leaves, and a soft peach border. You can happily use fewer or swap in your own palette; the structure works the same regardless of your color choices",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "What can I make with these squares?",
          "value": "They're perfect for blankets and afghans, cushion covers, table mats, tote-bag panels, or a single framed keepsake. Because each square is a tidy 5.5 inches, they join neatly into larger projects once you've made a matching batch",
          "raw_text": "They're perfect for blankets and afghans, cushion covers, table mats, tote-bag panels, or a single framed keepsake. Because each square is a tidy 5.5 inches, they join neatly into larger projects once you've made a matching batch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What can I make with these squares?",
          "answer": "They're perfect for blankets and afghans, cushion covers, table mats, tote-bag panels, or a single framed keepsake. Because each square is a tidy 5.5 inches, they join neatly into larger projects once you've made a matching batch",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/large-willow-granny-square-pattern-hero.webp",
    "data/images/large-willow-granny-square-pattern-step-2.webp",
    "data/images/large-willow-granny-square-pattern-step-3.webp",
    "data/images/large-willow-granny-square-pattern-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/large-willow-granny-square-pattern-hero.webp",
      "alt": "Large Willow Granny Square — Free Textured Bobble Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/large-willow-granny-square-pattern-hero.webp",
      "alt": "Large Willow Granny Square — Free Textured Bobble Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/large-willow-granny-square-pattern-step-2.webp",
      "alt": "Large Willow Granny Square — Free Textured Bobble Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/large-willow-granny-square-pattern-step-3.webp",
      "alt": "Large Willow Granny Square — Free Textured Bobble Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/large-willow-granny-square-pattern-step-4.webp",
      "alt": "Large Willow Granny Square — Free Textured Bobble Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 2
}