{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "love-knot-flower-granny-square",
  "title": "Love Knot Flower Granny Square: Free 3D Crochet Pattern",
  "meta_description": "Crochet a dimensional Love Knot Flower Granny Square in 8 rounds with two colors. Free pattern for textured baby blankets, cushions & handmade gifts",
  "published_at": "2026-07-11",
  "updated_at": "2026-07-11",
  "author": "Ruby",
  "thumbnail_url": "data/images/love-knot-flower-granny-square-hero.webp",
  "meta": {
    "title": "Love Knot Flower Granny Square: Free 3D Crochet Pattern",
    "pattern_name": "Love Knot Flower Granny Square: Free 3D Crochet Pattern",
    "difficulty": "Intermediate",
    "time_needed": "1-2 Hours",
    "rating": 4.8,
    "made_count": "946",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Intermediate",
      "yarn_weight": "DK",
      "tags": [
        "granny square",
        "3d crochet flower",
        "love knot",
        "flower granny square",
        "free crochet pattern",
        "crochet motif",
        "baby blanket square",
        "textured crochet",
        "spring crochet",
        "solomon's knot",
        "crochet square",
        "handmade gift"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Love Knot Flower Granny Square: Free 3D Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Intermediate Level",
          "value": "Comfortable with bobble stitches, third-loop crochet, and classic granny corners",
          "raw_text": "Comfortable with bobble stitches, third-loop crochet, and classic granny corners",
          "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": "About 1-2 hours per square once the bobble and third-loop rhythm clicks",
          "raw_text": "About 1-2 hours per square once the bobble and third-loop rhythm clicks",
          "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": "Garden-Fresh Gift",
          "value": "Dimensional blossom squares perfect for baby blankets and cushion fronts",
          "raw_text": "Dimensional blossom squares perfect for baby blankets and cushion fronts",
          "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 Love Knot Flower Granny Square is built around a beautifully dimensional blossom that genuinely pops off the fabric. Across eight rounds you shape a sculpted 3D flower, then frame it inside a tidy classic granny square that is ready to join into blankets, cushions, or wall hangings. It is a lovely pick for crocheters who are tired of flat motifs and want texture their fingers can actually feel — and for anyone building a spring-garden project one petal at a time",
          "raw_text": "The Love Knot Flower Granny Square is built around a beautifully dimensional blossom that genuinely pops off the fabric. Across eight rounds you shape a sculpted 3D flower, then frame it inside a tidy classic granny square that is ready to join into blankets, cushions, or wall hangings. It is a lovely pick for crocheters who are tired of flat motifs and want texture their fingers can actually feel — and for anyone building a spring-garden project one petal 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": "You will work with two colors of your favorite yarn, a matching hook, a darning needle, and scissors — nothing fancy required. The heart of the pattern is working into the third loop (tl) for certain rounds, which helps the flower petals pop forward from the background, combined with bobble stitches and layered rounds that build the flower's raised shape before the squaring rounds even begin. I would call it a confident-beginner-to-intermediate make: plan on one to two hours for your first square, and noticeably less time once the bobble motion settles into muscle memory",
          "raw_text": "You will work with two colors of your favorite yarn, a matching hook, a darning needle, and scissors — nothing fancy required. The heart of the pattern is working into the third loop (tl) for certain rounds, which helps the flower petals pop forward from the background, combined with bobble stitches and layered rounds that build the flower's raised shape before the squaring rounds even begin. I would call it a confident-beginner-to-intermediate make: plan on one to two hours for your first square, and noticeably less time once the bobble motion settles into muscle memory",
          "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": "Each finished square measures approximately 4.13 by 4.13 inches — a wonderfully practical size for joining. A six-by-eight layout makes a sweet baby blanket, while a single square becomes an instant keepsake, coaster, or appliqué. The raised flower gives the fabric a plush, petal-soft focal point framed by crisp granny clusters, so every square looks like a tiny boxed garden. Stitch a stack in coordinating colors and you have a handmade gift that feels far more special than its quick working time suggests",
          "raw_text": "Each finished square measures approximately 4.13 by 4.13 inches — a wonderfully practical size for joining. A six-by-eight layout makes a sweet baby blanket, while a single square becomes an instant keepsake, coaster, or appliqué. The raised flower gives the fabric a plush, petal-soft focal point framed by crisp granny clusters, so every square looks like a tiny boxed garden. Stitch a stack in coordinating colors and you have a handmade gift that feels far more special than its quick working time suggests",
          "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 will be honest — I am a sucker for anything with a flower on it, but this square had me grinning from the very first petal. Working into the third loop is such a satisfying trick: the bobble petals push forward off the background, catching light and casting the soft shadows that flat motifs just cannot match. Because the blossom is built up in layered rounds, it sits proudly on top of the square instead of flattening into it — I catch myself squishing that raised center every time I pick one up. The two-color structure is wonderfully forgiving, too. The flower color does the showing off while the border color tidies everything into crisp granny corners, so slightly wobbly tension simply disappears into the texture. At roughly four inches finished, one square is the perfect little win for an evening cup-of-tea session, and a pile of them grows into a blanket before you know it. It is that rare pattern that looks fancy on the sofa but feels soothing and rhythmic in your hands — my favorite combination",
          "raw_text": "I will be honest — I am a sucker for anything with a flower on it, but this square had me grinning from the very first petal. Working into the third loop is such a satisfying trick: the bobble petals push forward off the background, catching light and casting the soft shadows that flat motifs just cannot match. Because the blossom is built up in layered rounds, it sits proudly on top of the square instead of flattening into it — I catch myself squishing that raised center every time I pick one up. The two-color structure is wonderfully forgiving, too. The flower color does the showing off while the border color tidies everything into crisp granny corners, so slightly wobbly tension simply disappears into the texture. At roughly four inches finished, one square is the perfect little win for an evening cup-of-tea session, and a pile of them grows into a blanket before you know it. It is that rare pattern that looks fancy on the sofa but feels soothing and rhythmic in your hands — my favorite combination",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 4,
      "card_type": "switch_things_up",
      "code": "switch-things-up",
      "title": "Switch Things Up",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "switch-1",
          "label": "",
          "value": "The two-color recipe here is endlessly swappable. The designer suggests a soft lilac flower with mint green accents around the base and a cream border for a gentle spring-garden feel, or a bolder turquoise flower with navy base accents and a bright white border for a modern nursery, cheerful summer throw, or wall hanging. I would add: blush pink petals on sage with an oatmeal border for a boho nursery, sunflower gold on chocolate brown with warm ivory for an autumn lap blanket, or a deep berry-red blossom on evergreen with a snowy border for the coziest winter throw. A monochrome set — three shades of the same color from petal to border — looks stunning joined into a cushion front. For yarn, Stylecraft Special DK or Paintbox Simply DK keeps a blanket budget-friendly and lands close to the 4.13-inch measurement as written. Move up to a worsted like Basic Stitch with a 5 mm hook and each square grows to roughly 4.75-5 inches — fewer squares per blanket. Cotton such as Scheepjes Catona or 24/7 Cotton gives the bobble petals extra-crisp definition, ideal for cushions and bags. To resize without changing yarn, simply keep working granny rounds after round 8 — three-dc clusters along the sides and a (3 dc, ch 2, 3 dc) corner in each ch-2 space — with each extra round adding roughly 0.6-0.75 inch. Two extra rounds gives a 5.5-inch square, perfect for a quick twelve-square lap blanket. Or go tiny: crochet thread and a small steel hook turns the same eight rounds into a two-inch mini for bunting and appliqué",
          "raw_text": "The two-color recipe here is endlessly swappable. The designer suggests a soft lilac flower with mint green accents around the base and a cream border for a gentle spring-garden feel, or a bolder turquoise flower with navy base accents and a bright white border for a modern nursery, cheerful summer throw, or wall hanging. I would add: blush pink petals on sage with an oatmeal border for a boho nursery, sunflower gold on chocolate brown with warm ivory for an autumn lap blanket, or a deep berry-red blossom on evergreen with a snowy border for the coziest winter throw. A monochrome set — three shades of the same color from petal to border — looks stunning joined into a cushion front. For yarn, Stylecraft Special DK or Paintbox Simply DK keeps a blanket budget-friendly and lands close to the 4.13-inch measurement as written. Move up to a worsted like Basic Stitch with a 5 mm hook and each square grows to roughly 4.75-5 inches — fewer squares per blanket. Cotton such as Scheepjes Catona or 24/7 Cotton gives the bobble petals extra-crisp definition, ideal for cushions and bags. To resize without changing yarn, simply keep working granny rounds after round 8 — three-dc clusters along the sides and a (3 dc, ch 2, 3 dc) corner in each ch-2 space — with each extra round adding roughly 0.6-0.75 inch. Two extra rounds gives a 5.5-inch square, perfect for a quick twelve-square lap blanket. Or go tiny: crochet thread and a small steel hook turns the same eight rounds into a two-inch mini for bunting and appliqué",
          "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": "Uneven bobble petals, so some look",
          "value": "The petals are built from 2-dc and 2-tr bobbles, and they live or die on consistent tension. Draw every loop of each bobble up to the same height and close each one with the same firmness — a couple of practice bobbles on scrap yarn before round 5 pays off. If a petal already looks off, it is worth frogging just that bobble; one rogue puff is very visible on a flower this small",
          "raw_text": "The petals are built from 2-dc and 2-tr bobbles, and they live or die on consistent tension. Draw every loop of each bobble up to the same height and close each one with the same firmness — a couple of practice bobbles on scrap yarn before round 5 pays off. If a petal already looks off, it is worth frogging just that bobble; one rogue puff is very visible on a flower this small",
          "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": "Crushing the 3D petals by working the",
          "value": "When you move from the flower rounds to the rounds that build the square, fold the petals forward toward you and insert your hook into the stitches or spaces sitting behind them. If your flower suddenly looks flattened or trapped, you have almost certainly caught a petal — pull back a few stitches and let it spring free before continuing",
          "raw_text": "When you move from the flower rounds to the rounds that build the square, fold the petals forward toward you and insert your hook into the stitches or spaces sitting behind them. If your flower suddenly looks flattened or trapped, you have almost certainly caught a petal — pull back a few stitches and let it spring free before continuing",
          "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": "Leaving the center ring loose, which",
          "value": "After the first round, pull the starting tail firmly until the center closes completely, then work the next round before it can relax. Weave that tail through the round-one stitches once more with your darning needle to lock it — the flower center is the focal point of the whole square, so it deserves the extra thirty seconds",
          "raw_text": "After the first round, pull the starting tail firmly until the center closes completely, then work the next round before it can relax. Weave that tail through the round-one stitches once more with your darning needle to lock it — the flower center is the focal point of the whole square, so it deserves the extra thirty seconds",
          "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": "Miscounting the corner chain spaces, so",
          "value": "Drop a stitch marker into each ch-2 corner space as soon as you make it during the squaring rounds. Before fastening off each round, count the clusters along each side — all four sides must match. Catching a missed corner one round late means ripping back one round; catching it at round 8 means ripping back three",
          "raw_text": "Drop a stitch marker into each ch-2 corner space as soon as you make it during the squaring rounds. Before fastening off each round, count the clusters along each side — all four sides must match. Catching a missed corner one round late means ripping back one round; catching it at round 8 means ripping back three",
          "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": "Skipping blocking, so squares come out",
          "value": "Pin each finished square to 4.13 x 4.13 inches and hover a steamer or steam iron above it — never press down, or you will flatten the petals you worked so hard to build. While the fabric is warm and damp, shape each petal upward with your fingers. Blocked squares join flat and the blanket edges stay straight",
          "raw_text": "Pin each finished square to 4.13 x 4.13 inches and hover a steamer or steam iron above it — never press down, or you will flatten the petals you worked so hard to build. While the fabric is warm and damp, shape each petal upward with your fingers. Blocked squares join flat and the blanket edges stay straight",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 6,
      "card_type": "materials",
      "code": "materials",
      "title": "Materials",
      "raw_heading": "",
      "quantity": 1,
      "groups": [
        {
          "order": 1,
          "group_code": "group-1",
          "group_name": "",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-1-1",
              "label": "",
              "value": "Yarn of your choice- 2 colors",
              "raw_text": "Yarn of your choice- 2 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",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain stitch",
          "raw_text": "ch = chain stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain stitch"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-dc",
          "label": "dc",
          "value": "double crochet",
          "raw_text": "dc = double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc",
          "meaning": "double crochet"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-hdc",
          "label": "hdc",
          "value": "half double crochet",
          "raw_text": "hdc = half double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "hdc",
          "meaning": "half double crochet"
        },
        {
          "order": 4,
          "row_type": "abbrev",
          "code": "abbrev-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-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": 6,
          "row_type": "abbrev",
          "code": "abbrev-ch-sp",
          "label": "ch-sp",
          "value": "chain space",
          "raw_text": "ch-sp = chain space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch-sp",
          "meaning": "chain space"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-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,
          "row_type": "abbrev",
          "code": "abbrev-st",
          "label": "st",
          "value": "stitch",
          "raw_text": "st = stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st",
          "meaning": "stitch"
        },
        {
          "order": 9,
          "row_type": "abbrev",
          "code": "abbrev-bo",
          "label": "bo",
          "value": "bobble stitch",
          "raw_text": "bo = bobble stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "bo",
          "meaning": "bobble 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": 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": "ch2(count as hdc)+15hdc in a magic loop, sl st to the top of ch2.",
          "raw_text": "Round 1 ch2(count as hdc)+15hdc in a magic loop, sl st to the top of ch2.",
          "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 loop. ch2 as a standing st (count as hdc); 15 hdc in the loop; Pull the tail tightly; Sl st to the top of the first ch2. Round 1 finished.",
          "raw_text": "Step by step: Start with a magic loop. ch2 as a standing st (count as hdc); 15 hdc in the loop; Pull the tail tightly; Sl st to the top of the first ch2. 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": "ch2, sl st to next st, [sl st to next st, ch2, sl st to next st] repeat 7 times, fasten off.",
          "raw_text": "Round 2 ch2, sl st to next st, [sl st to next st, ch2, sl st to next st] repeat 7 times, 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": "ch2; sl st to the next st.",
          "raw_text": "Step by step: ch2; sl st to the next st.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "instruction",
          "code": "main-pattern-info-3",
          "label": "Steps",
          "value": "[sl st to the next st, ch2, sl st to the next st] repeat 7 times, fasten off. Round 2 finished.",
          "raw_text": "[sl st to the next st, ch2, sl st to the next st] repeat 7 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": 6,
          "row_type": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "New yarn in ch-sp, ch+sc+hdc+2dc in this ch-sp, 2dc+hdc+sc in next ch-sp, [sc+hdc+2dc, 2dc+hdc+sc] repeat 3 times, sl st to the first sc.",
          "raw_text": "Round 3 New yarn in ch-sp, ch+sc+hdc+2dc in this ch-sp, 2dc+hdc+sc in next ch-sp, [sc+hdc+2dc, 2dc+hdc+sc] repeat 3 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": 7,
          "row_type": "instruction",
          "code": "main-pattern-info-4",
          "label": "Steps",
          "value": "Join new yarn into any ch-sp. ch as a standing st. sc+hdc+2dc in this ch-sp, 2dc+hdc+sc in the next ch-sp.",
          "raw_text": "Step by step: Join new yarn into any ch-sp. ch as a standing st. sc+hdc+2dc in this ch-sp, 2dc+hdc+sc in the next ch-sp.",
          "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-5",
          "label": "Steps",
          "value": "[sc+hdc+2dc in the next ch-sp, 2dc+hdc+sc in the next ch-sp] repeat 3 times, sl st to the first sc. Round 3 finished.",
          "raw_text": "[sc+hdc+2dc in the next ch-sp, 2dc+hdc+sc in the next ch-sp] repeat 3 times, 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": "ch+sc, hdc, dc, dc+tr, tr+dc, dc, hdc, sc, [sc, hdc, dc, dc+tr, tr+dc, dc, hdc, sc] repeat 3 times, sl st to the first sc, fasten off.",
          "raw_text": "Round 4 ch+sc, hdc, dc, dc+tr, tr+dc, dc, hdc, sc, [sc, hdc, dc, dc+tr, tr+dc, dc, hdc, sc] repeat 3 times, sl st to the first sc, 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-6",
          "label": "Steps",
          "value": "ch as a standing st. sc in the same st, hdc in the next st, dc, dc+tr, tr+dc, dc, hdc, sc.",
          "raw_text": "Step by step: ch as a standing st. sc in the same st, hdc in the next st, dc, dc+tr, tr+dc, dc, hdc, sc.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "instruction",
          "code": "main-pattern-info-7",
          "label": "Steps",
          "value": "[sc, hdc, dc, dc+tr, tr+dc, dc, hdc, sc] repeat 3 times, sl st to the first sc, fasten off. Round 4 finished.",
          "raw_text": "[sc, hdc, dc, dc+tr, tr+dc, dc, hdc, sc] repeat 3 times, sl st to the first sc, 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": 12,
          "row_type": "round",
          "code": "main-pattern-round-5",
          "label": "Round 5",
          "value": "Third loop(tl) only, new yarn in the tl of the second tr st, ch2, sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to next tl, [sl st to next tl, ch2, sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to next tl] repeat 3 times.",
          "raw_text": "Round 5 Third loop(tl) only, new yarn in the tl of the second tr st, ch2, sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to next tl, [sl st to next tl, ch2, sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to next tl] repeat 3 times.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "info",
          "code": "main-pattern-info-8",
          "label": "Info",
          "value": "Working in the third loop (tl) helps the flower petals pop forward from the background, giving the square its distinctive dimensional quality. Step by step: Third loop only(tl) for this round. Add new yarn in the tl of the second tr st. Make ch2. sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to the next tl. [sl st to the next tl, ch2, sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to the next tl] repeat 3 times. Round 5 finished.",
          "raw_text": "Working in the third loop (tl) helps the flower petals pop forward from the background, giving the square its distinctive dimensional quality. Step by step: Third loop only(tl) for this round. Add new yarn in the tl of the second tr st. Make ch2. sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to the next tl. [sl st to the next tl, ch2, sk1, 2-dc-bo, ch1, sk1, 2-tr-bo, ch3, 2-tr-bo, ch1, sk1, 2-dc-bo, ch1, sk1, sl st to the next tl] repeat 3 times. Round 5 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "round",
          "code": "main-pattern-round-6",
          "label": "Round 6",
          "value": "Sl st to next tl, ch2(count as hdc), hdc in next ch-sp, sk1, hdc in ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in the corner, sk1, hdc in ch-sp, sk1, hdc in ch-sp, hdc in next tl, [hdc in next tl, hdc in next two ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in corner, sk1, hdc in next two ch-sp, hdc in next tl] repeat 3 times, sl st to the top of the first ch2, fasten off.",
          "raw_text": "Round 6 Sl st to next tl, ch2(count as hdc), hdc in next ch-sp, sk1, hdc in ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in the corner, sk1, hdc in ch-sp, sk1, hdc in ch-sp, hdc in next tl, [hdc in next tl, hdc in next two ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in corner, sk1, hdc in next two ch-sp, hdc in next tl] repeat 3 times, sl st to the top of the first ch2, fasten off.",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 15,
          "row_type": "instruction",
          "code": "main-pattern-info-9",
          "label": "Steps",
          "value": "Sl st to the next tl to begin this round from the st you added yarn in the previous round. ch2 as a standing st(count as hdc).",
          "raw_text": "Step by step: Sl st to the next tl to begin this round from the st you added yarn in the previous round. ch2 as a standing st(count as hdc).",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 16,
          "row_type": "instruction",
          "code": "main-pattern-info-10",
          "label": "Steps",
          "value": "hdc in the next two ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in the corner space, sk1, hdc in the next two ch-sp, hdc in next tl.",
          "raw_text": "hdc in the next two ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in the corner space, sk1, hdc in the next two ch-sp, hdc in next tl.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 17,
          "row_type": "instruction",
          "code": "main-pattern-info-11",
          "label": "Steps",
          "value": "[hdc in next tl, hdc in next two ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in the corner space, sk1, hdc in next two ch-sp, hdc in next tl] repeat 3 times, sl st to the top of the first ch2, fasten off. Round 6 finished.",
          "raw_text": "[hdc in next tl, hdc in next two ch-sp, sk1, hdc+2dc+ch3+2dc+hdc in the corner space, sk1, hdc in next two ch-sp, hdc in next tl] repeat 3 times, sl st to the top of the first ch2, 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": 18,
          "row_type": "round",
          "code": "main-pattern-round-7",
          "label": "Round 7",
          "value": "New yarn in corner, ch2(count as hdc)+2hdc+ch2+3hdc, 2hdc in the next 5 gaps,  [3hdc+ch2+3hdc in the corner, 2hdc in next 5 gaps] repeat 3 times, sl st to the top of the first ch2, fasten off.",
          "raw_text": "Round 7 New yarn in corner, ch2(count as hdc)+2hdc+ch2+3hdc, 2hdc in the next 5 gaps,  [3hdc+ch2+3hdc in the corner, 2hdc in next 5 gaps] repeat 3 times, sl st to the top of the first ch2, fasten off.",
          "round_start": 7,
          "round_end": 7,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 19,
          "row_type": "instruction",
          "code": "main-pattern-info-13",
          "label": "Steps",
          "value": "Add new yarn in any corner space. ch2 as a standing st(count as hdc). 2hdc+ch2+3hdc in this corner space, sk3, 2hdc in the next 5 gaps. [3hdc+ch2+3hdc in the next corner space, 2hdc in the next 5 gaps] repeat 3 times, sl st to the top of the first ch2, fasten off. Round 7 finished.",
          "raw_text": "Step by step: Add new yarn in any corner space. ch2 as a standing st(count as hdc). 2hdc+ch2+3hdc in this corner space, sk3, 2hdc in the next 5 gaps. [3hdc+ch2+3hdc in the next corner space, 2hdc in the next 5 gaps] repeat 3 times, sl st to the top of the first ch2, 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": "New yarn in corner, ch3(count as dc)+dc+ch2+2dc, 16dc, [2dc+ch2+2dc in next corner, 16dc] repeat 3 times, sl st to the top of the first ch3, fasten off.",
          "raw_text": "Round 8 New yarn in corner, ch3(count as dc)+dc+ch2+2dc, 16dc, [2dc+ch2+2dc in next corner, 16dc] repeat 3 times, sl st to the top of the first ch3, 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-14",
          "label": "Steps",
          "value": "Add new yarn in any corner space. ch3 as a standing st(count as dc). dc+ch2+2dc in this corner space, dc in the next 16 sts. [2dc+ch2+2dc in the next corner space, dc in the next 16 sts] repeat 3 times, sl st to the top of the first ch3, fasten off. Round 8 finished.",
          "raw_text": "Step by step: Add new yarn in any corner space. ch3 as a standing st(count as dc). dc+ch2+2dc in this corner space, dc in the next 16 sts. [2dc+ch2+2dc in the next corner space, dc in the next 16 sts] repeat 3 times, sl st to the top of the first ch3, 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": "💡 Gauge check first: work rounds 1 through 8 of one test square and measure it. If you are not close to 4.13 inches, go up or down a hook size rather than fighting your tension — the exact size only truly matters if you are joining many squares into one project",
          "raw_text": "💡 Gauge check first: work rounds 1 through 8 of one test square and measure it. If you are not close to 4.13 inches, go up or down a hook size rather than fighting your tension — the exact size only truly matters if you are joining many squares into one project",
          "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": "💡 Get comfortable finding the third loop before round 5. Tilt the tops of your round-4 stitches toward you — the third loop is the horizontal bar sitting behind the usual front and back loops. Working the petal round into it is exactly what makes the flower pop forward from the background",
          "raw_text": "💡 Get comfortable finding the third loop before round 5. Tilt the tops of your round-4 stitches toward you — the third loop is the horizontal bar sitting behind the usual front and back loops. Working the petal round into it is exactly what makes the flower pop forward from the background",
          "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": "💡 Place a stitch marker in the first stitch of every round and in each ch-2 corner space of the squaring rounds. The layered flower makes the round beginnings harder to spot than on a flat granny, and markers save a lot of squinting",
          "raw_text": "💡 Place a stitch marker in the first stitch of every round and in each ch-2 corner space of the squaring rounds. The layered flower makes the round beginnings harder to spot than on a flat granny, and markers save a lot of squinting",
          "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": "💡 Manage your two colors deliberately: cut the flower color after its final round, leave a six-inch tail, and use your darning needle to weave it into the wrong side directly behind the petals, where the dimensional texture hides every trace",
          "raw_text": "💡 Manage your two colors deliberately: cut the flower color after its final round, leave a six-inch tail, and use your darning needle to weave it into the wrong side directly behind the petals, where the dimensional texture hides every trace",
          "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 you are making a whole blanket, work assembly-line style — crochet all the flowers first, then add all the squaring rounds. Your petal tension stays consistent across the set, and the repetitive border rounds become lovely mindless evening crochet",
          "raw_text": "💡 If you are making a whole blanket, work assembly-line style — crochet all the flowers first, then add all the squaring rounds. Your petal tension stays consistent across the set, and the repetitive border rounds become lovely mindless evening crochet",
          "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": "💡 Position each square the same way before joining, with the color-change point tucked into the same corner every time. It keeps the seams tidy and makes the flowers line up in a neat grid across the finished blanket",
          "raw_text": "💡 Position each square the same way before joining, with the color-change point tucked into the same corner every time. It keeps the seams tidy and makes the flowers line up in a neat grid across the finished 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": "I have never crocheted into the third",
          "value": "Yes — the third loop is simply the horizontal bar that sits behind the two loops you normally work into. Tilt the top of the stitch toward you and it is easy to spot. Round 5 works into it to push the petals forward, and most crocheters find it feels natural after the first repeat",
          "raw_text": "Yes — the third loop is simply the horizontal bar that sits behind the two loops you normally work into. Tilt the top of the stitch toward you and it is easy to spot. Round 5 works into it to push the petals forward, and most crocheters find it feels natural after the first repeat",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "I have never crocheted into the third loop before — can I still manage this pattern?",
          "answer": "Yes — the third loop is simply the horizontal bar that sits behind the two loops you normally work into. Tilt the top of the stitch toward you and it is easy to spot. Round 5 works into it to push the petals forward, and most crocheters find it feels natural after the first repeat",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "What yarn weight and hook size should I use?",
          "value": "The pattern is written for the yarn of your choice with a matching hook, and the 4.13-inch finished measurement reflects a DK-to-light-worsted weight. Whatever you pick, keep the same yarn weight and hook across all squares in one project so they join evenly",
          "raw_text": "The pattern is written for the yarn of your choice with a matching hook, and the 4.13-inch finished measurement reflects a DK-to-light-worsted weight. Whatever you pick, keep the same yarn weight and hook across all squares in one project so they join evenly",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What yarn weight and hook size should I use?",
          "answer": "The pattern is written for the yarn of your choice with a matching hook, and the 4.13-inch finished measurement reflects a DK-to-light-worsted weight. Whatever you pick, keep the same yarn weight and hook across all squares in one project so they join evenly",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "How much yarn does one square use?",
          "value": "Very little — this is a fantastic scrap-buster. Expect roughly 15-20 grams total in DK weight, split between the flower color and the border color, so a single ball of each will produce a whole stack of squares",
          "raw_text": "Very little — this is a fantastic scrap-buster. Expect roughly 15-20 grams total in DK weight, split between the flower color and the border color, so a single ball of each will produce a whole stack of squares",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How much yarn does one square use?",
          "answer": "Very little — this is a fantastic scrap-buster. Expect roughly 15-20 grams total in DK weight, split between the flower color and the border color, so a single ball of each will produce a whole stack of squares",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Will the 3D flower flatten when I wash the blanket?",
          "value": "Hand wash or use a gentle machine cycle in a mesh bag, then reshape the petals with your fingers while the square is damp and dry it flat. The textured petals bounce back beautifully; the main thing to avoid is a hot tumble dryer, which can permanently crush the texture",
          "raw_text": "Hand wash or use a gentle machine cycle in a mesh bag, then reshape the petals with your fingers while the square is damp and dry it flat. The textured petals bounce back beautifully; the main thing to avoid is a hot tumble dryer, which can permanently crush the texture",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Will the 3D flower flatten when I wash the blanket?",
          "answer": "Hand wash or use a gentle machine cycle in a mesh bag, then reshape the petals with your fingers while the square is damp and dry it flat. The textured petals bounce back beautifully; the main thing to avoid is a hot tumble dryer, which can permanently crush the texture",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "How many squares do I need for a baby blanket?",
          "value": "roughly 4.13 inches per square, a six-by-eight grid of 48 squares gives you about 25 by 33 inches before edging. Add a simple border of two or three granny rounds and you land at a lovely stroller-blanket size",
          "raw_text": "roughly 4.13 inches per square, a six-by-eight grid of 48 squares gives you about 25 by 33 inches before edging. Add a simple border of two or three granny rounds and you land at a lovely stroller-blanket size",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How many squares do I need for a baby blanket?",
          "answer": "roughly 4.13 inches per square, a six-by-eight grid of 48 squares gives you about 25 by 33 inches before edging. Add a simple border of two or three granny rounds and you land at a lovely stroller-blanket size",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/love-knot-flower-granny-square-hero.webp",
    "data/images/love-knot-flower-granny-square-step-2.webp",
    "data/images/love-knot-flower-granny-square-step-3.webp",
    "data/images/love-knot-flower-granny-square-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/love-knot-flower-granny-square-hero.webp",
      "alt": "Love Knot Flower Granny Square: Free 3D Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/love-knot-flower-granny-square-hero.webp",
      "alt": "Love Knot Flower Granny Square: Free 3D Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/love-knot-flower-granny-square-step-2.webp",
      "alt": "Love Knot Flower Granny Square: Free 3D Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/love-knot-flower-granny-square-step-3.webp",
      "alt": "Love Knot Flower Granny Square: Free 3D Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/love-knot-flower-granny-square-step-4.webp",
      "alt": "Love Knot Flower Granny Square: Free 3D Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 1
}