{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "african-flower-granny-square",
  "title": "African Flower Granny Square - Free Crochet Pattern",
  "meta_description": "Crochet the classic African Flower granny square with this free 7-round pattern. Four cheerful colors, a 3.5mm hook, and a 5.5 inch square in one evening",
  "published_at": "2026-07-11",
  "updated_at": "2026-07-11",
  "author": "Ruby",
  "thumbnail_url": "data/images/african-flower-granny-square-hero.webp",
  "meta": {
    "title": "African Flower Granny Square - Free Crochet Pattern",
    "pattern_name": "African Flower Granny Square - Free Crochet Pattern",
    "difficulty": "Easy",
    "time_needed": "1-2 Hours",
    "rating": 4.8,
    "made_count": "2.3K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Confident Beginner",
      "yarn_weight": "DK",
      "tags": [
        "african flower",
        "granny square",
        "free crochet pattern",
        "flower motif",
        "dk yarn",
        "blanket square",
        "stash buster",
        "crochet flowers",
        "vintage crochet",
        "colorwork crochet"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "African Flower Granny Square - Free Crochet Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Confident Beginner",
          "value": "Basic stitches, simple color changes, and one easy long-stitch round",
          "raw_text": "Basic stitches, simple color changes, and one easy long-stitch 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 Square",
          "value": "About 60-90 minutes of relaxing crochet per square",
          "raw_text": "About 60-90 minutes 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": "Heirloom Blanket Star",
          "value": "A blooming flower motif that joins beautifully into throws, cushions, and bags",
          "raw_text": "A blooming flower motif that joins beautifully into throws, cushions, 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": "The African Flower granny square takes one of crochet's most beloved motifs — a blooming, petal-packed flower — and frames it inside a tidy square, ready for blankets, cushions, and bags. The African Flower motif was designed by Heidi Bears, a South African designer who drew inspiration from the vibrant colors and natural beauty of African wildlife and landscapes, and it quickly spread through the online crochet community to become a modern classic. Worked over seven rounds in four colors, this free pattern turns a simple ring of stitches into a dimensional bloom with a crisp squared-off border. It is perfect for crocheters who adore vintage flower motifs but want a square shape that joins neatly, without any fiddly hexagon math or awkward gap-filling between motifs",
          "raw_text": "The African Flower granny square takes one of crochet's most beloved motifs — a blooming, petal-packed flower — and frames it inside a tidy square, ready for blankets, cushions, and bags. The African Flower motif was designed by Heidi Bears, a South African designer who drew inspiration from the vibrant colors and natural beauty of African wildlife and landscapes, and it quickly spread through the online crochet community to become a modern classic. Worked over seven rounds in four colors, this free pattern turns a simple ring of stitches into a dimensional bloom with a crisp squared-off border. It is perfect for crocheters who adore vintage flower motifs but want a square shape that joins neatly, without any fiddly hexagon math or awkward gap-filling between motifs",
          "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": "Skill-wise, this sits comfortably in confident-beginner territory. You will use chains, double crochet shells, and simple petal clusters, plus two techniques that add the wow factor: clean color changes between rounds and long stitches worked down into an earlier round to outline each petal. Nothing here is difficult, but counting matters — each round builds on the spokes and spaces of the one before it. Expect your first square to take around 60 to 90 minutes; once the sequence clicks, you will finish one in well under an hour",
          "raw_text": "Skill-wise, this sits comfortably in confident-beginner territory. You will use chains, double crochet shells, and simple petal clusters, plus two techniques that add the wow factor: clean color changes between rounds and long stitches worked down into an earlier round to outline each petal. Nothing here is difficult, but counting matters — each round builds on the spokes and spaces of the one before it. Expect your first square to take around 60 to 90 minutes; once the sequence clicks, you will finish one in well under an hour",
          "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": "Worked in DK sport weight yarn on a 3.50mm hook, the finished square measures a tidy 5.5 by 5.5 inches — an ideal size for blankets, cushion fronts, and bag panels. The petals have gentle dimension and a lovely squish, while the squared border keeps everything flat and easy to seam. A stack of these in coordinated colors makes a wonderful gift-in-progress for a wedding or new baby, and even a single square, backed in felt, becomes a sweet coaster or pincushion top",
          "raw_text": "Worked in DK sport weight yarn on a 3.50mm hook, the finished square measures a tidy 5.5 by 5.5 inches — an ideal size for blankets, cushion fronts, and bag panels. The petals have gentle dimension and a lovely squish, while the squared border keeps everything flat and easy to seam. A stack of these in coordinated colors makes a wonderful gift-in-progress for a wedding or new baby, and even a single square, backed in felt, becomes a sweet coaster or pincushion top",
          "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 have made more African Flower motifs than I can count, and this squared-off version is the one I keep coming back to. The early rounds are pure fun — a little ring blooms into petal bases, and then the petal round transforms the whole thing into a dimensional flower almost instantly. My favorite moment is the round of long stitches that dip down between the petals: they outline each petal like hand-drawn ink and make your color choices pop dramatically. And because the final rounds square the flower off, you get all the romance of the motif with none of the awkward hexagon joining — these 5.5 inch squares line up and whip-stitch together beautifully. With four color changes per square, it is also a glorious stash-buster; I keep a basket of DK remnants just for these. One square is a quick evening treat, and a growing stack of them is honestly the most cheerful thing in my project bag",
          "raw_text": "I have made more African Flower motifs than I can count, and this squared-off version is the one I keep coming back to. The early rounds are pure fun — a little ring blooms into petal bases, and then the petal round transforms the whole thing into a dimensional flower almost instantly. My favorite moment is the round of long stitches that dip down between the petals: they outline each petal like hand-drawn ink and make your color choices pop dramatically. And because the final rounds square the flower off, you get all the romance of the motif with none of the awkward hexagon joining — these 5.5 inch squares line up and whip-stitch together beautifully. With four color changes per square, it is also a glorious stash-buster; I keep a basket of DK remnants just for these. One square is a quick evening treat, and a growing stack of them is honestly the most cheerful thing in my project bag",
          "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 four-color recipe is where this square really plays. For the classic look, keep strong contrast between the flower center and the petals, then calm everything down with a soft border. The designer suggests a gorgeous wildflower palette — a lavender flower with dark purple base, a bright yellow center, and a sage green border — and it is stunning for spring-themed projects. For autumn, try burnt orange petals, a mustard center, cream long stitches, and a deep brown frame. A cranberry, ivory, and forest green version makes wonderful festive cushion fronts, and an all-blues coastal mix with a sandy beige border feels calm and beachy. Yarn swaps are easy: Stylecraft Special DK, Paintbox Simply DK, or Scheepjes Colour Crafter all match the DK weight of the sample and come in huge color ranges. Bump up to worsted weight — Basic Stitch or Knit Picks Brava — with a 4.5mm or 5mm hook and each square grows to roughly 6.5 to 7 inches, so a blanket needs far fewer motifs. In crisp cotton DK, the petals get beautiful stitch definition for tote bag panels or pillow covers. For sizing tweaks, the squaring-off rounds are your friend: work one or two extra granny-style border rounds, keeping a corner group at each of the four corners, and each added round grows the square by roughly half an inch — handy for matching this motif to 6-inch squares in a sampler blanket. Or stop before the border rounds entirely and you have a flower medallion to applique onto hats, bags, and cardigan pockets",
          "raw_text": "The four-color recipe is where this square really plays. For the classic look, keep strong contrast between the flower center and the petals, then calm everything down with a soft border. The designer suggests a gorgeous wildflower palette — a lavender flower with dark purple base, a bright yellow center, and a sage green border — and it is stunning for spring-themed projects. For autumn, try burnt orange petals, a mustard center, cream long stitches, and a deep brown frame. A cranberry, ivory, and forest green version makes wonderful festive cushion fronts, and an all-blues coastal mix with a sandy beige border feels calm and beachy. Yarn swaps are easy: Stylecraft Special DK, Paintbox Simply DK, or Scheepjes Colour Crafter all match the DK weight of the sample and come in huge color ranges. Bump up to worsted weight — Basic Stitch or Knit Picks Brava — with a 4.5mm or 5mm hook and each square grows to roughly 6.5 to 7 inches, so a blanket needs far fewer motifs. In crisp cotton DK, the petals get beautiful stitch definition for tote bag panels or pillow covers. For sizing tweaks, the squaring-off rounds are your friend: work one or two extra granny-style border rounds, keeping a corner group at each of the four corners, and each added round grows the square by roughly half an inch — handy for matching this motif to 6-inch squares in a sampler blanket. Or stop before the border rounds entirely and you have a flower medallion to applique onto hats, bags, and cardigan pockets",
          "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": "Starting ring worked too tight or left",
          "value": "Work your first-round stitches loosely enough to slide along the ring, then pull the starting tail firmly to snug the center closed before joining. Crochet over the tail in round 2 so it stays locked and invisible",
          "raw_text": "Work your first-round stitches loosely enough to slide along the ring, then pull the starting tail firmly to snug the center closed before joining. Crochet over the tail in round 2 so it stays locked and invisible",
          "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 chain spaces between the",
          "value": "Count your spokes and chain spaces after each of the first two rounds — every petal of the flower grows out of one of those spaces. Pop a removable stitch marker in the first space of the round so you never accidentally work past your join",
          "raw_text": "Count your spokes and chain spaces after each of the first two rounds — every petal of the flower grows out of one of those spaces. Pop a removable stitch marker in the first space of the round so you never accidentally work past your join",
          "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": "Pulling the long stitches between the",
          "value": "When you work each long stitch down between the petals, draw the loop all the way up to the height of the current round before finishing it. It should lie flat against the petals like an outline, not cinch them together",
          "raw_text": "When you work each long stitch down between the petals, draw the loop all the way up to the height of the current round before finishing it. It should lie flat against the petals like an outline, not cinch them together",
          "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": "Messy color changes with knots and",
          "value": "Fasten off the old color and join the new one with the final yarn-over of the last stitch, or with a standing stitch in a chain space. Leave 6-inch tails and weave each one as you finish the round — with four colors per square, saving them all for the end is misery",
          "raw_text": "Fasten off the old color and join the new one with the final yarn-over of the last stitch, or with a standing stitch in a chain space. Leave 6-inch tails and weave each one as you finish the round — with four colors per square, 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": "mistake",
          "code": "mistake-5",
          "label": "Treating all sides the same during the",
          "value": "Mark the four corner points with stitch markers before you start the border rounds and double-check that each corner gets its taller corner group with the extra chains. If one side has more stitch groups than its opposite side, frog back to the corner and recount",
          "raw_text": "Mark the four corner points with stitch markers before you start the border rounds and double-check that each corner gets its taller corner group with the extra chains. If one side has more stitch groups than its opposite side, frog back to the corner and recount",
          "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": "Tension shifting between the dense",
          "value": "Keep the same 3.50mm hook and a relaxed, even tension throughout, then wet-block or steam-block the finished square to 5.5 inches. Blocking evens out almost every minor wobble and makes joining dramatically easier",
          "raw_text": "Keep the same 3.50mm hook and a relaxed, even tension throughout, then wet-block or steam-block the finished square to 5.5 inches. Blocking evens out almost every minor wobble and makes joining dramatically easier",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 6,
      "card_type": "materials",
      "code": "materials",
      "title": "Materials",
      "raw_heading": "",
      "quantity": 1,
      "groups": [
        {
          "order": 1,
          "group_code": "group-1",
          "group_name": "",
          "rows": [
            {
              "order": 1,
              "row_type": "item",
              "code": "mat-1-1",
              "label": "",
              "value": "Yarn of your choice- 4 color, the sample is made with DK sports",
              "raw_text": "Yarn of your choice- 4 color, the sample is made with DK sports"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "Crochet hook – we are using a 3.50mm hook",
              "raw_text": "Crochet hook – we are using a 3.50mm hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Darning Needle",
              "raw_text": "Darning Needle"
            },
            {
              "order": 4,
              "row_type": "item",
              "code": "mat-1-4",
              "label": "",
              "value": "Scissors",
              "raw_text": "Scissors"
            }
          ]
        }
      ],
      "rows": []
    },
    {
      "order": 7,
      "card_type": "abbreviations",
      "code": "abbreviations",
      "title": "Abbreviations",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "abbrev",
          "code": "abbrev-rep",
          "label": "rep",
          "value": "repeat",
          "raw_text": "rep = repeat",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "rep",
          "meaning": "repeat"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-ch",
          "label": "ch",
          "value": "chain stitch",
          "raw_text": "ch = chain stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain stitch"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-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-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": 5,
          "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": 6,
          "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": 7,
          "row_type": "abbrev",
          "code": "abbrev-ch-sp",
          "label": "ch-sp",
          "value": "chain space",
          "raw_text": "ch-sp = chain space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch-sp",
          "meaning": "chain space"
        },
        {
          "order": 8,
          "row_type": "abbrev",
          "code": "abbrev-yo",
          "label": "yo",
          "value": "yarn over",
          "raw_text": "yo = yarn over",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "yo",
          "meaning": "yarn over"
        },
        {
          "order": 9,
          "row_type": "abbrev",
          "code": "abbrev-st",
          "label": "st",
          "value": "stitch",
          "raw_text": "st = stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st",
          "meaning": "stitch"
        },
        {
          "order": 10,
          "row_type": "abbrev",
          "code": "abbrev-sk",
          "label": "sk",
          "value": "skip",
          "raw_text": "sk = skip",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sk",
          "meaning": "skip"
        },
        {
          "order": 11,
          "row_type": "abbrev",
          "code": "abbrev-sl-st",
          "label": "sl st",
          "value": "slip stitch for joining to a different round.",
          "raw_text": "sl st = slip stitch for joining to a different round.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sl st",
          "meaning": "slip stitch for joining to a different round."
        }
      ]
    },
    {
      "order": 8,
      "card_type": "part",
      "code": "main-pattern",
      "title": "Main Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "round",
          "code": "main-pattern-round-1",
          "label": "Round 1",
          "value": "magic ring, ch3(count as dc)+dc+ch1, [2dc+ch1] repeat 7 times, slst into top of ch3, fasten off.",
          "raw_text": "Round 1 magic ring, ch3(count as dc)+dc+ch1, [2dc+ch1] repeat 7 times, slst into top of ch3, fasten off.",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "instruction",
          "code": "main-pattern-info-1",
          "label": "Steps",
          "value": "Start with a magic ring; make ch3 as standing stitch (count as dc); another dc in the loop, ch1; [2dc+ch1] repeat 7 times, slst into top of ch3, fasten off. Round 1 finished.",
          "raw_text": "Step by step: Start with a magic ring; make ch3 as standing stitch (count as dc); another dc in the loop, ch1; [2dc+ch1] repeat 7 times, slst into top of ch3, fasten off. Round 1 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "main-pattern-round-2",
          "label": "Round 2",
          "value": "Join dark blue yarn in any ch-sp, ch3(count as dc), 2dc in same ch-sp, ch, [3dc in next ch-sp, ch] rep 7 times, slst into top of ch3, fasten off.",
          "raw_text": "Round 2 Join dark blue yarn in any ch-sp, ch3(count as dc), 2dc in same ch-sp, ch, [3dc in next ch-sp, ch] rep 7 times, slst into top of ch3, 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-3",
          "label": "Steps",
          "value": "Join dark blue yarn in any ch-sp; make ch3 as standing st (count as dc); another dc in same ch-sp; another dc in same ch-sp; ch; [3dc in next ch-sp, ch] repeat 7 times, slst into top of ch3, fasten off. Round 2 finished.",
          "raw_text": "Step by step: Join dark blue yarn in any ch-sp; make ch3 as standing st (count as dc); another dc in same ch-sp; another dc in same ch-sp; ch; [3dc in next ch-sp, ch] repeat 7 times, slst into top of ch3, fasten off. Round 2 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "main-pattern-round-3",
          "label": "Round 3",
          "value": "Join light blue yarn, pull the yarn through any ch-sp, ch3(count as dc), (dc+ch+2dc) in same ch-sp, ch, [(2dc+ch+2dc) in next ch-sp, ch] rep 7 times, slst into top of ch3.",
          "raw_text": "Round 3 Join light blue yarn, pull the yarn through any ch-sp, ch3(count as dc), (dc+ch+2dc) in same ch-sp, ch, [(2dc+ch+2dc) in next ch-sp, ch] rep 7 times, slst into top of ch3.",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 6,
          "row_type": "instruction",
          "code": "main-pattern-info-4",
          "label": "Steps",
          "value": "Join light blue yarn, pull the yarn through any ch-sp; make ch3 as standing stitch (count as dc); another dc in same ch-sp; ch; 2dc in same ch-sp, now we finished a shell stitch; ch, [(2dc+ch+2dc) in next ch-sp, ch] repeat 7 times, slst into top of ch3. Round 3 finished.",
          "raw_text": "Step by step: Join light blue yarn, pull the yarn through any ch-sp; make ch3 as standing stitch (count as dc); another dc in same ch-sp; ch; 2dc in same ch-sp, now we finished a shell stitch; ch, [(2dc+ch+2dc) in next ch-sp, ch] repeat 7 times, slst into top of ch3. Round 3 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-4",
          "label": "Round 4",
          "value": "ch3(count as dc), 6dc in same ch-sp, ch, [7dc, ch] rep 7 times, slst into top of ch3, fasten off.",
          "raw_text": "Round 4 ch3(count as dc), 6dc in same ch-sp, ch, [7dc, ch] rep 7 times, slst into top of ch3, fasten off.",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "instruction",
          "code": "main-pattern-info-5",
          "label": "Steps",
          "value": "Make ch3 as standing stitch (count as dc); dc in same ch-sp; 5dc in same ch-sp, this is a first shell stitch; ch, [7dc, ch] repeat 7 times, slst into top of ch3, fasten off. Round 4 finished.",
          "raw_text": "Step by step: Make ch3 as standing stitch (count as dc); dc in same ch-sp; 5dc in same ch-sp, this is a first shell stitch; ch, [7dc, ch] repeat 7 times, slst into top of ch3, 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": 9,
          "row_type": "round",
          "code": "main-pattern-round-5",
          "label": "Round 5",
          "value": "Join yellow yarn in top of ch3, ch1+sc, 6sc, sc in ch-sp from round 3 to encase round 3 and 4, [7sc, encasing sc] repeat 7 times, slst into first sc, fasten off.",
          "raw_text": "Round 5 Join yellow yarn in top of ch3, ch1+sc, 6sc, sc in ch-sp from round 3 to encase round 3 and 4, [7sc, encasing sc] repeat 7 times, slst into first sc, fasten off.",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "instruction",
          "code": "main-pattern-info-6",
          "label": "Steps",
          "value": "Join yellow yarn, pull the yarn through top of ch3; ch1 as standing st; sc; 6sc; insert your needle into ch-sp between 2 shell st from round 3; work sc in the ch-sp to encase round 3 and 4; [7sc, sc in ch-sp from round 3 to encase round 3 and 4] repeat 7 times, slst into first sc, fasten off. Round 5 finished.",
          "raw_text": "Step by step: Join yellow yarn, pull the yarn through top of ch3; ch1 as standing st; sc; 6sc; insert your needle into ch-sp between 2 shell st from round 3; work sc in the ch-sp to encase round 3 and 4; [7sc, sc in ch-sp from round 3 to encase round 3 and 4] repeat 7 times, slst into first sc, fasten off. Round 5 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "round",
          "code": "main-pattern-round-6",
          "label": "Round 6",
          "value": "Join white yarn in the rightmost gap between a normal sc and encasing sc of a petal, ch3(count as dc), dc, hdc, 4sc, hdc, 4sc, hdc, 2dc, (tr+ch3+tr) in next tr st, [2dc, hdc, 4sc, hdc, 4sc, hdc, 2dc,(tr+ch3+tr) in next tr st]  rep 3 times, slst into top of ch3.",
          "raw_text": "Round 6 Join white yarn in the rightmost gap between a normal sc and encasing sc of a petal, ch3(count as dc), dc, hdc, 4sc, hdc, 4sc, hdc, 2dc, (tr+ch3+tr) in next tr st, [2dc, hdc, 4sc, hdc, 4sc, hdc, 2dc,(tr+ch3+tr) in next tr st]  rep 3 times, slst into top of ch3.",
          "round_start": 6,
          "round_end": 6,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 12,
          "row_type": "instruction",
          "code": "main-pattern-info-7",
          "label": "Steps",
          "value": "Join white yarn, pull the yarn through the gap between normal sc and encasing sc; make ch3 as standing stitch (count as dc); dc; hdc; 4sc; hdc; 4sc; hdc; 2dc, (tr+ch3+tr) in next tr st; [2dc, hdc, 4sc, hdc, 4sc, hdc, 2dc, (tr+ch3+tr) in next tr st] repeat 3 times, slst into top of ch3. Round 6 finished.",
          "raw_text": "Step by step: Join white yarn, pull the yarn through the gap between normal sc and encasing sc; make ch3 as standing stitch (count as dc); dc; hdc; 4sc; hdc; 4sc; hdc; 2dc, (tr+ch3+tr) in next tr st; [2dc, hdc, 4sc, hdc, 4sc, hdc, 2dc, (tr+ch3+tr) in next tr st] repeat 3 times, slst into top of ch3. Round 6 finished.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 13,
          "row_type": "round",
          "code": "main-pattern-round-7",
          "label": "Round 7",
          "value": "ch2 as standings st, 13sc, 2hdc, (2hdc+ch2+2hdc) in next corner sp, [2hdc, 13sc, 2hdc, (2hdc+ch2+2hdc) in next corner sp] rep 3 times, slst into top of ch2, fasten off and weave in ends.",
          "raw_text": "Round 7 ch2 as standings st, 13sc, 2hdc, (2hdc+ch2+2hdc) in next corner sp, [2hdc, 13sc, 2hdc, (2hdc+ch2+2hdc) in next corner sp] rep 3 times, slst into top of ch2, fasten off and weave in ends.",
          "round_start": 7,
          "round_end": 7,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 14,
          "row_type": "instruction",
          "code": "main-pattern-info-8",
          "label": "Steps",
          "value": "Make ch2 as standings st; sc; 12sc; 2hdc; (2hdc+ch2+2hdc) in next corner space; [2hdc, 13sc, 2hdc, (2hdc+ch2+2hdc) in next corner space] repeat 3 times, slst into top of ch2, fasten off and weave in ends. Now we finished the African flower granny square.",
          "raw_text": "Step by step: Make ch2 as standings st; sc; 12sc; 2hdc; (2hdc+ch2+2hdc) in next corner space; [2hdc, 13sc, 2hdc, (2hdc+ch2+2hdc) in next corner space] repeat 3 times, slst into top of ch2, fasten off and weave in ends. Now we finished the African flower granny square.",
          "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: with DK sport yarn and a 3.50mm hook the square should finish at 5.5 by 5.5 inches. Make one complete square and measure it before starting a blanket batch — if yours runs large, drop to a 3.25mm hook; if small, go up to 4mm",
          "raw_text": "💡 Gauge check: with DK sport yarn and a 3.50mm hook the square should finish at 5.5 by 5.5 inches. Make one complete square and measure it before starting a blanket batch — if yours runs large, drop to a 3.25mm hook; if small, go up to 4mm",
          "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": "💡 Change colors on the very last yarn-over of the round's final stitch so the new color sits cleanly on top. Joining new colors in a chain space rather than the middle of a shell hides the transition almost completely",
          "raw_text": "💡 Change colors on the very last yarn-over of the round's final stitch so the new color sits cleanly on top. Joining new colors in a chain space rather than the middle of a shell hides the transition almost completely",
          "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": "💡 With four colors per square, tail management is everything. Crochet over each tail for a few stitches in the following round, then secure the end with a darning needle — a blanket's worth of unwoven ends is the fastest way to abandon a project",
          "raw_text": "💡 With four colors per square, tail management is everything. Crochet over each tail for a few stitches in the following round, then secure the end with a darning needle — a blanket's worth of unwoven ends is the fastest way to abandon a project",
          "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": "💡 Place removable stitch markers at the four corner points before the squaring-off rounds begin. The flower is round for most of its life, and markers are the easiest way to keep the corners stacked vertically as the border grows",
          "raw_text": "💡 Place removable stitch markers at the four corner points before the squaring-off rounds begin. The flower is round for most of its life, and markers are the easiest way to keep the corners stacked vertically as the border grows",
          "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": "💡 Keep your four yarn cakes in separate zip bags or a divided project box while you work. The frequent color swaps in this pattern tangle loose balls surprisingly fast, especially if you batch-make squares",
          "raw_text": "💡 Keep your four yarn cakes in separate zip bags or a divided project box while you work. The frequent color swaps in this pattern tangle loose balls surprisingly fast, especially if you batch-make squares",
          "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": "💡 Care for finished squares gently: always hand wash in cool to lukewarm water — never hot, as it can cause felting or shrinking — and never wring or twist the square to remove water; dry flat instead. For long-term storage, place squares in a breathable cotton bag or acid-free tissue paper. A light steam block sharpens the square's corners, but hover the iron rather than pressing so you do not flatten the petals' lovely dimension",
          "raw_text": "💡 Care for finished squares gently: always hand wash in cool to lukewarm water — never hot, as it can cause felting or shrinking — and never wring or twist the square to remove water; dry flat instead. For long-term storage, place squares in a breathable cotton bag or acid-free tissue paper. A light steam block sharpens the square's corners, but hover the iron rather than pressing so you do not flatten the petals' lovely dimension",
          "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 size is the finished African Flower granny square?",
          "value": "Made with DK sport weight yarn and a 3.50mm hook, each square measures 5.5 by 5.5 inches. Yarn brand and personal tension can shift that slightly, so measure your first square before planning a full blanket layout. Blocking helps every square settle to a consistent size",
          "raw_text": "Made with DK sport weight yarn and a 3.50mm hook, each square measures 5.5 by 5.5 inches. Yarn brand and personal tension can shift that slightly, so measure your first square before planning a full blanket layout. Blocking helps every square settle to a consistent size",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What size is the finished African Flower granny square?",
          "answer": "Made with DK sport weight yarn and a 3.50mm hook, each square measures 5.5 by 5.5 inches. Yarn brand and personal tension can shift that slightly, so measure your first square before planning a full blanket layout. Blocking helps every square settle to a consistent size",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "Can I use worsted weight yarn instead of DK?",
          "value": "Absolutely — pair worsted weight with a 4.5mm or 5mm hook and each square will come out around 6.5 to 7 inches. The flower keeps its shape at any scale; just make every square in your project with the same yarn weight and hook so they match for joining",
          "raw_text": "Absolutely — pair worsted weight with a 4.5mm or 5mm hook and each square will come out around 6.5 to 7 inches. The flower keeps its shape at any scale; just make every square in your project with the same yarn weight and hook so they match for joining",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I use worsted weight yarn instead of DK?",
          "answer": "Absolutely — pair worsted weight with a 4.5mm or 5mm hook and each square will come out around 6.5 to 7 inches. The flower keeps its shape at any scale; just make every square in your project with the same yarn weight and hook so they match for joining",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "How many squares do I need for a blanket?",
          "value": "5.5 inches per square, a 6 by 8 layout of 48 squares makes a roughly 33 by 44 inch baby blanket. For a generous 55 by 66 inch throw, plan on 120 squares in a 10 by 12 grid, plus a simple border round to tie it all together",
          "raw_text": "5.5 inches per square, a 6 by 8 layout of 48 squares makes a roughly 33 by 44 inch baby blanket. For a generous 55 by 66 inch throw, plan on 120 squares in a 10 by 12 grid, plus a simple border round to tie it all together",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How many squares do I need for a blanket?",
          "answer": "5.5 inches per square, a 6 by 8 layout of 48 squares makes a roughly 33 by 44 inch baby blanket. For a generous 55 by 66 inch throw, plan on 120 squares in a 10 by 12 grid, plus a simple border round to tie it all together",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Is this pattern suitable for beginners?",
          "value": "It is a great confident-beginner project — if you can chain, double crochet, and work into chain spaces, you have everything you need. The long stitches that outline the petals are the only new-feeling technique, and they are genuinely easy once you relax your tension. Take the color-change rounds slowly the first time and you will be fine",
          "raw_text": "It is a great confident-beginner project — if you can chain, double crochet, and work into chain spaces, you have everything you need. The long stitches that outline the petals are the only new-feeling technique, and they are genuinely easy once you relax your tension. Take the color-change rounds slowly the first time and you will be fine",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Is this pattern suitable for beginners?",
          "answer": "It is a great confident-beginner project — if you can chain, double crochet, and work into chain spaces, you have everything you need. The long stitches that outline the petals are the only new-feeling technique, and they are genuinely easy once you relax your tension. Take the color-change rounds slowly the first time and you will be fine",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "Do I have to use four colors?",
          "value": "Not at all — the sample uses four, but two or three colors look beautiful, and even a single color gives you a lovely textured square with far fewer ends to weave. If you want the signature outlined-petal effect, just keep good contrast between the petal color and the long-stitch color",
          "raw_text": "Not at all — the sample uses four, but two or three colors look beautiful, and even a single color gives you a lovely textured square with far fewer ends to weave. If you want the signature outlined-petal effect, just keep good contrast between the petal color and the long-stitch color",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Do I have to use four colors?",
          "answer": "Not at all — the sample uses four, but two or three colors look beautiful, and even a single color gives you a lovely textured square with far fewer ends to weave. If you want the signature outlined-petal effect, just keep good contrast between the petal color and the long-stitch color",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/african-flower-granny-square-hero.webp",
    "data/images/african-flower-granny-square-step-2.webp",
    "data/images/african-flower-granny-square-step-3.webp",
    "data/images/african-flower-granny-square-step-4.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/african-flower-granny-square-hero.webp",
      "alt": "African Flower Granny Square - Free Crochet Pattern — photo 1",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/african-flower-granny-square-hero.webp",
      "alt": "African Flower Granny Square - Free Crochet Pattern — photo 1",
      "is_featured": true
    },
    {
      "url": "data/images/african-flower-granny-square-step-2.webp",
      "alt": "African Flower Granny Square - Free Crochet Pattern — photo 2",
      "is_featured": false
    },
    {
      "url": "data/images/african-flower-granny-square-step-3.webp",
      "alt": "African Flower Granny Square - Free Crochet Pattern — photo 3",
      "is_featured": false
    },
    {
      "url": "data/images/african-flower-granny-square-step-4.webp",
      "alt": "African Flower Granny Square - Free Crochet Pattern — photo 4",
      "is_featured": false
    }
  ],
  "_sanitized_holiday_count": 0
}