{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "puff-flower-granny-square",
  "title": "Puff Flower Granny Square – Free Crochet Pattern",
  "meta_description": "Crochet this free puff flower granny square pattern with dimensional 6-hdc puff petals in 3 colors — a quick 3.74-inch square perfect for blankets",
  "published_at": "2026-07-22",
  "updated_at": "2026-07-22",
  "author": "Ruby",
  "thumbnail_url": "data/images/puff-flower-granny-square-hero.webp",
  "meta": {
    "title": "Puff Flower Granny Square – Free Crochet Pattern",
    "pattern_name": "Puff Flower Granny Square – Free Crochet Pattern",
    "difficulty": "Intermediate",
    "time_needed": "1-2 Hours",
    "rating": 4.7,
    "made_count": "1.2K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Intermediate",
      "yarn_weight": "Worsted",
      "tags": [
        "granny square",
        "puff stitch",
        "flower granny square",
        "free crochet pattern",
        "puff flower",
        "crochet motif",
        "blanket square",
        "3D crochet flower",
        "scrap yarn project",
        "crochet flowers",
        "intermediate crochet",
        "crochet square"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Puff Flower Granny Square – Free Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Intermediate Level",
          "value": "Comfortable with puff stitches and joining new yarn each round",
          "raw_text": "Comfortable with puff stitches and joining new yarn each round",
          "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": "One-Evening Make",
          "value": "About 1–2 hours of relaxing crochet per square",
          "raw_text": "About 1–2 hours of relaxing crochet 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": "Flower-Garden Block",
          "value": "A stackable 3.74-inch bloom for blankets, pillows, and bags",
          "raw_text": "A stackable 3.74-inch bloom for blankets, pillows, and bags",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 2,
      "card_type": "about",
      "code": "about",
      "title": "About",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "about-info-1",
          "label": "",
          "value": "If your granny square collection has been feeling a little flat lately, this Puff Flower Granny Square is the remedy. It starts as a simple ring of twelve single crochets and blooms into a plush, six-petaled flower, then gets framed by classic granny rounds that square everything off into a tidy 3.74-inch block. It's the kind of motif that makes people reach out and touch your blanket, and it's perfect for crocheters who know the basics and are ready to play with real texture — or for anyone building a flower-garden throw one small square at a time",
          "raw_text": "If your granny square collection has been feeling a little flat lately, this Puff Flower Granny Square is the remedy. It starts as a simple ring of twelve single crochets and blooms into a plush, six-petaled flower, then gets framed by classic granny rounds that square everything off into a tidy 3.74-inch block. It's the kind of motif that makes people reach out and touch your blanket, and it's perfect for crocheters who know the basics and are ready to play with real texture — or for anyone building a flower-garden throw one small square at a time",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "about-info-2",
          "label": "",
          "value": "The foundation is refreshingly old-school: a ch-5 loop joined into a ring instead of a magic ring, filled with exactly twelve single crochets. The star technique is the 6-hdc puff worked across two stitches — you place three incomplete half double crochets in each of two neighboring stitches, then pull through all thirteen loops at once to close a fat, rounded petal. Each petal is framed by ch-4 arcs, and every round fastens off before the next color joins. With six rounds total, an intermediate crocheter can finish a square in one to two unhurried hours",
          "raw_text": "The foundation is refreshingly old-school: a ch-5 loop joined into a ring instead of a magic ring, filled with exactly twelve single crochets. The star technique is the 6-hdc puff worked across two stitches — you place three incomplete half double crochets in each of two neighboring stitches, then pull through all thirteen loops at once to close a fat, rounded petal. Each petal is framed by ch-4 arcs, and every round fastens off before the next color joins. With six rounds total, an intermediate crocheter can finish a square in one to two unhurried 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 about 3.74 × 3.74 inches, with a wonderfully cushiony flower center that rises off a flat, well-behaved granny border — so it stacks, seams, and joins beautifully. Three colors radiating from center to edge give it that classic vintage-garden look, whether you go bold and scrappy or soft and tonal. One square makes a sweet coaster or appliqué; a basketful becomes a baby blanket, a pillow front, or a tote panel. Tied in a stack with ribbon, a set of these squares even makes a lovely handmade gift for a fellow maker",
          "raw_text": "The finished square measures about 3.74 × 3.74 inches, with a wonderfully cushiony flower center that rises off a flat, well-behaved granny border — so it stacks, seams, and joins beautifully. Three colors radiating from center to edge give it that classic vintage-garden look, whether you go bold and scrappy or soft and tonal. One square makes a sweet coaster or appliqué; a basketful becomes a baby blanket, a pillow front, or a tote panel. Tied in a stack with ribbon, a set of these squares even makes a lovely handmade gift for a fellow maker",
          "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 moment I finished my first puff petal on this square, I was hooked — there's something so satisfying about stacking three incomplete half doubles into each of two stitches and then pulling your yarn through all thirteen loops at once to watch a plump little petal bloom out of nowhere. The ch-4 arcs on either side of each puff act like tiny picture frames, lifting the petals off that twelve-stitch center so the flower looks dimensional before you've even blocked it. And because every round fastens off before the next color joins, your color changes stay perfectly crisp — no muddy transition stitches, just clean rings of color radiating out to the square's edges. At 3.74 inches, each block works up in a single relaxed evening, which makes this a dangerous pattern in the best way: you tell yourself you'll make just one, and suddenly you have a basketful. It's also a brilliant scrap-buster, since each of the three colors sips only a small amount of yarn",
          "raw_text": "The moment I finished my first puff petal on this square, I was hooked — there's something so satisfying about stacking three incomplete half doubles into each of two stitches and then pulling your yarn through all thirteen loops at once to watch a plump little petal bloom out of nowhere. The ch-4 arcs on either side of each puff act like tiny picture frames, lifting the petals off that twelve-stitch center so the flower looks dimensional before you've even blocked it. And because every round fastens off before the next color joins, your color changes stay perfectly crisp — no muddy transition stitches, just clean rings of color radiating out to the square's edges. At 3.74 inches, each block works up in a single relaxed evening, which makes this a dangerous pattern in the best way: you tell yourself you'll make just one, and suddenly you have a basketful. It's also a brilliant scrap-buster, since each of the three colors sips only a small amount of yarn",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 5,
      "card_type": "common_mistakes",
      "code": "common-mistakes",
      "title": "Common Mistakes & How to Fix Them",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "mistake",
          "code": "mistake-1",
          "label": "Working all six incomplete hdc into a",
          "value": "This puff is unusual: it spans a pair of stitches. Place three incomplete hdc in one stitch, then three more in the very next stitch before closing. That two-stitch base is what makes each petal wide and rounded — a one-stitch puff comes out narrow and leaves you with leftover stitches at the end of the round. Since the ring has twelve sc, you should get exactly six petals with nothing skipped",
          "raw_text": "This puff is unusual: it spans a pair of stitches. Place three incomplete hdc in one stitch, then three more in the very next stitch before closing. That two-stitch base is what makes each petal wide and rounded — a one-stitch puff comes out narrow and leaves you with leftover stitches at the end of the round. Since the ring has twelve sc, you should get exactly six petals with nothing skipped",
          "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": "Losing count of the loops on your hook",
          "value": "A complete 6-hdc puff should have thirteen loops on the hook: two loops from each of the six incomplete hdc, plus your working loop. If you have eleven or twelve, you dropped a yarn-over somewhere. Pause after each incomplete hdc and glance at your hook — the count should grow by two every time. Pull through all thirteen in one smooth, deliberate motion",
          "raw_text": "A complete 6-hdc puff should have thirteen loops on the hook: two loops from each of the six incomplete hdc, plus your working loop. If you have eleven or twelve, you dropped a yarn-over somewhere. Pause after each incomplete hdc and glance at your hook — the count should grow by two every time. Pull through all thirteen in one smooth, deliberate motion",
          "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": "Chaining the ch-4 arcs too tightly",
          "value": "Those ch-4 segments are the frame that lets each petal stand up and curve. If you chain tightly, the arcs strangle the puff and the flower flattens. Chain loosely — some crocheters go up a half hook size just for the petal round — and give each puff a little tug into shape after you close it",
          "raw_text": "Those ch-4 segments are the frame that lets each petal stand up and curve. If you chain tightly, the arcs strangle the puff and the flower flattens. Chain loosely — some crocheters go up a half hook size just for the petal round — and give each puff a little tug into shape after you close it",
          "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": "Slip-stitching into the wrong stitch after finishing a puff",
          "value": "The pattern is specific: after the ch-4, you slip stitch into the second stitch of the puff's two-stitch base, then slip stitch into the next stitch to start the following petal. Joining one stitch early or late skews the spacing so petals crowd on one side of the flower. If your sixth petal doesn't land neatly back at the start, recount your slip-stitch placements",
          "raw_text": "The pattern is specific: after the ch-4, you slip stitch into the second stitch of the puff's two-stitch base, then slip stitch into the next stitch to start the following petal. Joining one stitch early or late skews the spacing so petals crowd on one side of the flower. If your sixth petal doesn't land neatly back at the start, recount your slip-stitch placements",
          "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": "Ending Round 1 with eleven single",
          "value": "The whole flower depends on the math: twelve sc divided into two-stitch petal bases equals exactly six petals. It's easy to miscount into the ch-5 loop, especially if the first ch-1 gets mistaken for a stitch. Count twelve before you slip stitch to the first sc and fasten off — fixing it now takes seconds; discovering it mid-petal-round means frogging",
          "raw_text": "The whole flower depends on the math: twelve sc divided into two-stitch petal bases equals exactly six petals. It's easy to miscount into the ch-5 loop, especially if the first ch-1 gets mistaken for a stitch. Count twelve before you slip stitch to the first sc and fasten off — fixing it now takes seconds; discovering it mid-petal-round means frogging",
          "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": "Letting tension wander on the outer",
          "value": "The puffy center is dense, so if your border rounds are looser than usual the square ruffles; too tight and it cups around the flower. Aim for your normal granny-square tension on the framing rounds and check the block against the 3.74-inch target as you go. A gentle steam block at the end evens out small waves",
          "raw_text": "The puffy center is dense, so if your border rounds are looser than usual the square ruffles; too tight and it cups around the flower. Aim for your normal granny-square tension on the framing rounds and check the block against the 3.74-inch target as you go. A gentle steam block at the end evens out small waves",
          "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- 3 colors",
              "raw_text": "Yarn of your choice- 3 colors"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook",
              "raw_text": "Crochet hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Darning Needle",
              "raw_text": "Darning Needle"
            },
            {
              "order": 4,
              "row_type": "item",
              "code": "mat-1-4",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors"
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 7,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations (US Terms)",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain stitch",
          "raw_text": "ch = chain stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain stitch"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-dc",
          "label": "dc",
          "value": "double crochet",
          "raw_text": "dc = double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc",
          "meaning": "double crochet"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-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": 4,
          "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": 5,
          "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": 6,
          "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": 7,
          "row_type": "abbrev",
          "code": "abbrev-st",
          "label": "st",
          "value": "stitch",
          "raw_text": "st = stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st",
          "meaning": "stitch"
        },
        {
          "order": 8,
          "row_type": "abbrev",
          "code": "abbrev-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": 8,
      "card_type": "part",
      "code": "main-pattern",
      "title": "Main Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "main-pattern-round-1-intro",
          "label": "",
          "value": "Round 1 makes the puff flower center.",
          "raw_text": "Round 1- Puff Flower Center",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "main-pattern-round-1",
          "label": "Round 1",
          "value": "ch5, sl st to the first ch to form a loop, ch1+12sc in the loop, sl st to the first sc, fasten off.",
          "raw_text": "Round 1 ch5, sl st to the first ch to form a loop, ch1+12sc in the loop, sl st to the first sc, fasten off.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "instruction",
          "code": "main-pattern-round-1-steps",
          "label": "Steps",
          "value": "Start with a knot. Make ch5. Sl st to the first ch to form a loop. Make sc in the loop. Make another 11 sc in the loop, sl st to the first sc, fasten off. Round 1 finished.",
          "raw_text": "Start with a knot. Make ch5. Sl st to the first ch to form a loop. Make sc in the loop. Make another 11 sc in the loop, sl st to the first sc, 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": 4,
          "row_type": "info",
          "code": "main-pattern-round-2-intro",
          "label": "",
          "value": "Round 2 makes the puff stitch petals.",
          "raw_text": "Round 2- The puff stitch petals",
          "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-2",
          "label": "Round 2",
          "value": "New yarn in any st, ch4, 6-hdc-puff across 2 sts, ch4, sl st to the same st, [Sl st to next st, ch4, 6-hdc-puff across next 2 sts, ch4, sl st to the second st of the puff st] repeat 5 times, fasten off.",
          "raw_text": "Round 2 New yarn in any st, ch4, 6-hdc-puff across 2 sts, ch4, sl st to the same st, [Sl st to next st, ch4, 6-hdc-puff across next 2 sts, ch4, sl st to the second st of the puff st] repeat 5 times, fasten off.",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "instruction",
          "code": "main-pattern-round-2-steps",
          "label": "Steps",
          "value": "Add new color of yarn in any st. Work ch4. 3 incomplete hdc in the next st, 3 incomplete hdc in the next st, yo, pull through all 13 loops on the hook to create a 6-hdc-puff across 2 sts. Work ch4. Sl st to the same st. [Sl st to the next st, ch4, 6-hdc-puff across the next 2 sts, ch4, sl st to the second st of the puff st] repeat 5 times, fasten off. Round 2 finished.",
          "raw_text": "Add new color of yarn in any st. Work ch4. 3 incomplete hdc in the next st, 3 incomplete hdc in the next st, yo, pull through all 13 loops on the hook to create a 6-hdc-puff across 2 sts. Work ch4. Sl st to the same st. [Sl st to the next st, ch4, 6-hdc-puff across the next 2 sts, ch4, sl st to the second st of the puff st] repeat 5 times, 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": 7,
          "row_type": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "New yarn in puff st, ch1+sc in the same st, ch4, [sc in next puff st, ch4] repeat 5 times, sl st to the first sc.",
          "raw_text": "Round 3 New yarn in puff st, ch1+sc in the same st, ch4, [sc in next puff st, ch4] repeat 5 times, sl st to the first sc.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "instruction",
          "code": "main-pattern-round-3-steps",
          "label": "Steps",
          "value": "Add new yarn in the top of one puff stitch. ch1 as a standing st. Work sc in the same st. ch4. Work sc in top of the next puff st. [ch4, sc in top of the next puff st] repeat 4 times, ch4, sl st to the first sc. Round 3 finished.",
          "raw_text": "Add new yarn in the top of one puff stitch. ch1 as a standing st. Work sc in the same st. ch4. Work sc in top of the next puff st. [ch4, sc in top of the next puff st] repeat 4 times, ch4, sl st to the first sc. 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": "sl st to next st to start from ch-sp, ch3(count as dc)+2dc+ch1, 2dc+tr+ch3+tr+2dc+ch1 in next ch-sp, 3dc+ch1+2dc+tr+ch3+tr+2dc+ch1, 3dc+ch1, 2dc+tr+ch3+tr+2dc+ch1+3dc, 2dc+tr+ch3+tr+2dc+ch1, sl st to the top of the first ch3.",
          "raw_text": "Round 4 sl st to next st to start from ch-sp, ch3(count as dc)+2dc+ch1, 2dc+tr+ch3+tr+2dc+ch1 in next ch-sp, 3dc+ch1+2dc+tr+ch3+tr+2dc+ch1, 3dc+ch1, 2dc+tr+ch3+tr+2dc+ch1+3dc, 2dc+tr+ch3+tr+2dc+ch1, sl st to the top of the first ch3.",
          "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-round-4-steps",
          "label": "Steps",
          "value": "sl st to the next st so we start this round in the ch-sp. ch3 as a standing st (count as dc). 2dc+ch1 in this ch-sp, 2dc+tr+ch3+tr+2dc+ch1 in the next ch-sp, 3dc+ch1+2dc+tr+ch3+tr+2dc+ch1, 3dc+ch1, 2dc+tr+ch3+tr+2dc+ch1+3dc, 2dc+tr+ch3+tr+2dc+ch1, sl st to the top of the first ch3. Round 4 finished.",
          "raw_text": "sl st to the next st so we start this round in the ch-sp. ch3 as a standing st(count as dc). 2dc+ch1 in this ch-sp, 2dc+tr+ch3+tr+2dc+ch1 in the next ch-sp, 3dc+ch1+2dc+tr+ch3+tr+2dc+ch1, 3dc+ch1, 2dc+tr+ch3+tr+2dc+ch1+3dc, 2dc+tr+ch3+tr+2dc+ch1, sl st to the top of the first ch3. 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": "sl st to the previous st to start from ch-sp, ch3(count as dc)+2dc+ch1, 3dc+ch1 in next ch-sp, 3dc+ch3+3dc+ch1 in corner, [3dc+ch1 in next 2 ch-sp, 3dc+ch3+3dc+ch1 in next corner] repeat 3 times, sl st to the top of the ch3.",
          "raw_text": "Round 5 sl st to the previous st to start from ch-sp, ch3(count as dc)+2dc+ch1, 3dc+ch1 in next ch-sp, 3dc+ch3+3dc+ch1 in corner, [3dc+ch1 in next 2 ch-sp, 3dc+ch3+3dc+ch1 in next corner] repeat 3 times, sl st to the top of the ch3.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "instruction",
          "code": "main-pattern-round-5-steps",
          "label": "Steps",
          "value": "sl st to the previous st to start this round from the ch-sp. ch3 as a standing st (count as dc). dc in the ch-sp. Another dc in this ch-sp, ch1. 3dc+ch1 in the next ch-sp, 3dc+ch3+3dc+ch1 in the next corner space. [3dc+ch1 in the next 2 ch-sp, 3dc+ch3+3dc+ch1 in the next corner space] repeat 3 times, sl st to the top of the first ch3. Round 5 finished.",
          "raw_text": "sl st to the previous st to start this round from the ch-sp. ch3 as a standing st (count as dc). dc in the ch-sp. Another dc in this ch-sp, ch1. 3dc+ch1 in the next ch-sp, 3dc+ch3+3dc+ch1 in the next corner space. [3dc+ch1 in the next 2 ch-sp, 3dc+ch3+3dc+ch1 in the next corner space] repeat 3 times, sl st to the top of the first ch3. Round 5 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "round",
          "code": "main-pattern-round-6",
          "label": "Round 6",
          "value": "sl st to the previous st to start from ch-sp, ch3(count as dc)+2dc+ch1, 3dc+ch1 in next 2 ch-sp, 3dc+ch3+3dc+ch1 in corner, [3dc+ch1 in next 3 ch-sp, 3dc+ch3+3dc+ch1 in next corner] repeat 3 times, sl st to the top of the ch3.",
          "raw_text": "Round 6 sl st to the previous st to start from ch-sp, ch3(count as dc)+2dc+ch1, 3dc+ch1 in next 2 ch-sp, 3dc+ch3+3dc+ch1 in corner, [3dc+ch1 in next 3 ch-sp, 3dc+ch3+3dc+ch1 in next corner] repeat 3 times, sl st to the top of the ch3.",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "instruction",
          "code": "main-pattern-round-6-steps",
          "label": "Steps",
          "value": "sl st to the previous st to start this round from the ch-sp. dc in the ch-sp. Another dc in this ch-sp, ch1, 3dc+ch1 in the next 2 ch-sp, 3dc+ch3+3dc+ch1 in the next corner space. [3dc+ch1 in the next 3 ch-sp, 3dc+ch3+3dc+ch1 in the next corner space] repeat 3 times, sl st to the top of the first ch3. Round 6 finished.",
          "raw_text": "sl st to the previous st to start this round from the ch-sp. dc in the ch-sp. Another dc in this ch-sp, ch1, 3dc+ch1 in the next 2 ch-sp, 3dc+ch3+3dc+ch1 in the next corner space. [3dc+ch1 in the next 3 ch-sp, 3dc+ch3+3dc+ch1 in the next corner space] repeat 3 times, sl st to the top of the first ch3. Round 6 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "important_notes",
      "code": "important-notes",
      "title": "Important Notes",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "note-gauge",
          "label": "Gauge",
          "value": "💡 The finished puff flower granny square is about 3.74 × 3.74 inches",
          "raw_text": "Gauge The finished puff flower basic granny square is about 3.74×3.74 inches",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "info",
          "code": "note-1",
          "label": "Note",
          "value": "💡 Count your foundation carefully: the ch-5 loop needs exactly twelve single crochets, because each 6-hdc puff eats two stitches and 12 ÷ 2 = 6 perfectly spaced petals",
          "raw_text": "💡 Count your foundation carefully: the ch-5 loop needs exactly twelve single crochets, because each 6-hdc puff eats two stitches and 12 ÷ 2 = 6 perfectly spaced petals",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "note-2",
          "label": "Note",
          "value": "💡 The pattern works with any yarn, but for the classic 3.74-inch square use a smooth worsted-weight with a 4.5–5mm hook — and consider going up a half size on the petal round so those thirteen-loop pull-throughs stay easy",
          "raw_text": "💡 The pattern works with any yarn, but for the classic 3.74-inch square use a smooth worsted-weight with a 4.5–5mm hook — and consider going up a half size on the petal round so those thirteen-loop pull-throughs stay easy",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "info",
          "code": "note-3",
          "label": "Note",
          "value": "💡 Every round fastens off before the next color joins, so you'll have six-plus tails per square. Cut 6-inch tails and weave each one in with your darning needle as soon as the round is done — on a multi-square blanket, saving them all for the end is misery",
          "raw_text": "💡 Every round fastens off before the next color joins, so you'll have six-plus tails per square. Cut 6-inch tails and weave each one in with your darning needle as soon as the round is done — on a multi-square blanket, saving them all for the end is misery",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "note-4",
          "label": "Note",
          "value": "💡 Drop a stitch marker into the first sc of Round 1 and into the first stitch of each new round after joining yarn. With all the slip stitches and ch-4 arcs in the petal round, it's surprisingly easy to lose your starting point",
          "raw_text": "💡 Drop a stitch marker into the first sc of Round 1 and into the first stitch of each new round after joining yarn. With all the slip stitches and ch-4 arcs in the petal round, it's surprisingly easy to lose your starting point",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "info",
          "code": "note-5",
          "label": "Note",
          "value": "💡 Keep the closing pull-through of each puff relaxed. Yanking it tight compresses all six half-double loops and turns a plump petal into a hard little knot — the puff should feel springy when you squeeze it",
          "raw_text": "💡 Keep the closing pull-through of each puff relaxed. Yanking it tight compresses all six half-double loops and turns a plump petal into a hard little knot — the puff should feel springy when you squeeze it",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "note-6",
          "label": "Note",
          "value": "💡 Pin and lightly steam-block each finished square to a true 3.74 × 3.74 inches before joining. The dense flower center pulls slightly on the border rounds, and blocking is what gives you crisp corners and squares that seam flat",
          "raw_text": "💡 Pin and lightly steam-block each finished square to a true 3.74 × 3.74 inches before joining. The dense flower center pulls slightly on the border rounds, and blocking is what gives you crisp corners and squares that seam flat",
          "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 exactly is a 6-hdc puff worked across 2 stitches?",
          "value": "It's a puff stitch with its base spread over two neighboring stitches instead of one: you work three incomplete half double crochets into the first stitch and three into the next, then yarn over and pull through all thirteen loops on your hook at once. Spreading the base makes each petal wider and more rounded than a standard puff",
          "raw_text": "It's a puff stitch with its base spread over two neighboring stitches instead of one: you work three incomplete half double crochets into the first stitch and three into the next, then yarn over and pull through all thirteen loops on your hook at once. Spreading the base makes each petal wider and more rounded than a standard puff",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What exactly is a 6-hdc puff worked across 2 stitches?",
          "answer": "It's a puff stitch with its base spread over two neighboring stitches instead of one: you work three incomplete half double crochets into the first stitch and three into the next, then yarn over and pull through all thirteen loops on your hook at once. Spreading the base makes each petal wider and more rounded than a standard puff",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "Can I start with a magic ring instead of the ch-5 loop?",
          "value": "Yes — work your twelve single crochets into a magic ring and pull it closed if you prefer a tight center. The ch-5 loop the pattern uses leaves a tiny open circle at the flower's heart, which some crocheters like for its vintage look, so it's purely a matter of taste",
          "raw_text": "Yes — work your twelve single crochets into a magic ring and pull it closed if you prefer a tight center. The ch-5 loop the pattern uses leaves a tiny open circle at the flower's heart, which some crocheters like for its vintage look, so it's purely a matter of taste",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I start with a magic ring instead of the ch-5 loop?",
          "answer": "Yes — work your twelve single crochets into a magic ring and pull it closed if you prefer a tight center. The ch-5 loop the pattern uses leaves a tiny open circle at the flower's heart, which some crocheters like for its vintage look, so it's purely a matter of taste",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "How much yarn does one square use?",
          "value": "Very little — roughly 5 to 10 grams of each of the three colors in worsted weight, since the finished square is only 3.74 inches across. That makes this an excellent scrap-buster: leftovers from one blanket project can easily yield a whole batch of flower squares",
          "raw_text": "Very little — roughly 5 to 10 grams of each of the three colors in worsted weight, since the finished square is only 3.74 inches across. That makes this an excellent scrap-buster: leftovers from one blanket project can easily yield a whole batch of flower squares",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How much yarn does one square use?",
          "answer": "Very little — roughly 5 to 10 grams of each of the three colors in worsted weight, since the finished square is only 3.74 inches across. That makes this an excellent scrap-buster: leftovers from one blanket project can easily yield a whole batch of flower squares",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Why does the pattern fasten off after every round?",
          "value": "Fastening off and joining new yarn gives each color ring a perfectly crisp edge with no muddy transition stitches, and it lets you start the next round in any stitch. If you're making a single-color version, you can rejoin the same yarn in the indicated spot — you'll trade a few extra ends for beautifully clean rounds",
          "raw_text": "Fastening off and joining new yarn gives each color ring a perfectly crisp edge with no muddy transition stitches, and it lets you start the next round in any stitch. If you're making a single-color version, you can rejoin the same yarn in the indicated spot — you'll trade a few extra ends for beautifully clean rounds",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Why does the pattern fasten off after every round?",
          "answer": "Fastening off and joining new yarn gives each color ring a perfectly crisp edge with no muddy transition stitches, and it lets you start the next round in any stitch. If you're making a single-color version, you can rejoin the same yarn in the indicated spot — you'll trade a few extra ends for beautifully clean rounds",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "How do I join these squares into a blanket?",
          "value": "Whip stitch or mattress stitch through the back loops with your darning needle gives the flattest seam, while a single-crochet join adds a decorative ridge between blooms. Block every square to 3.74 inches first so the corners line up, and keep the puff sides all facing the same way as you seam",
          "raw_text": "Whip stitch or mattress stitch through the back loops with your darning needle gives the flattest seam, while a single-crochet join adds a decorative ridge between blooms. Block every square to 3.74 inches first so the corners line up, and keep the puff sides all facing the same way as you seam",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How do I join these squares into a blanket?",
          "answer": "Whip stitch or mattress stitch through the back loops with your darning needle gives the flattest seam, while a single-crochet join adds a decorative ridge between blooms. Block every square to 3.74 inches first so the corners line up, and keep the puff sides all facing the same way as you seam",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/puff-flower-granny-square-hero.webp",
    "data/images/puff-flower-granny-square-step-2.webp",
    "data/images/puff-flower-granny-square-step-3.webp",
    "data/images/puff-flower-granny-square-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/puff-flower-granny-square-hero.webp",
      "alt": "Puff Flower Granny Square – Free Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/puff-flower-granny-square-hero.webp",
      "alt": "Puff Flower Granny Square – Free Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/puff-flower-granny-square-step-2.webp",
      "alt": "Puff Flower Granny Square – Free Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/puff-flower-granny-square-step-3.webp",
      "alt": "Puff Flower Granny Square – Free Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/puff-flower-granny-square-step-4.webp",
      "alt": "Puff Flower Granny Square – Free Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 2
}