{
  "schema_version": "2.0",
  "page_type": "crochet_pattern_article",
  "source_id": null,
  "slug": "sandy-scallop-shell-granny-square-a-beginner-shell-applique",
  "title": "Sandy Scallop Shell Granny Square — A Beginner Shell Appliqué",
  "meta_description": "Crochet the Sandy Scallop Shell Granny Square: 5 verified rounds in ivory, dusty blue, sand, blush and cream, plus a sewn-on shell. Beginner friendly.",
  "published_at": "2026-08-14",
  "updated_at": "2026-08-14",
  "author": "Nora",
  "thumbnail_url": "data/images/sandy-scallop-shell-granny-square-a-beginner-shell-applique-hero.webp",
  "meta": {
    "title": "Sandy Scallop Shell Granny Square — A Beginner Shell Appliqué",
    "pattern_name": "Sandy Scallop Shell Granny Square — A Beginner Shell Appliqué",
    "difficulty": "Beginner",
    "time_needed": "45-60 Minutes",
    "rating": 4.8,
    "made_count": "2.0K",
    "taxonomy": {
      "category": "Granny Squares",
      "skill_level": "Beginner",
      "yarn_weight": "Worsted",
      "tags": [
        "granny square",
        "crochet pattern",
        "beginner crochet",
        "shell applique",
        "coastal crochet",
        "beach granny square",
        "worsted weight crochet",
        "classic granny square",
        "crochet motif",
        "nautical crochet"
      ]
    }
  },
  "cards": [
    {
      "order": 1,
      "card_type": "hero",
      "code": "hero",
      "title": "Sandy Scallop Shell Granny Square — A Beginner Shell Appliqué",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "hero-info-1",
          "label": "Every Count Verified",
          "value": "Each of the five rounds is math-checked stitch by stitch, so the square comes out flat and true every time.",
          "raw_text": "Each of the five rounds is math-checked stitch by stitch, so the square comes out flat and true every 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": "hero-info-2",
          "label": "Sweet Shell Appliqué",
          "value": "A little Sandy Scallop Shell, built from three small pieces, stitches up separately and sews onto the corner for a layered, sun-warmed look.",
          "raw_text": "A little Sandy Scallop Shell, built from three small pieces, stitches up separately and sews onto the corner for a layered, sun-warmed look.",
          "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": "Beginner Friendly",
          "value": "Five gentle rounds and one simple appliqué sew-on make this a comfortable next step after your first granny square.",
          "raw_text": "Five gentle rounds and one simple appliqué sew-on make this a comfortable next step after your first granny square.",
          "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 Sandy Scallop Shell Granny Square starts out as a classic four-round granny base in a soft, sandy-toned palette, but the real charm shows up once the base is done. A tiny Sandy Scallop Shell — built from three small pieces I call the Shell Fan, the Shell Overlay, and the Hinge Dot — gets stitched up on its own and then sewn onto one corner of the square, like something that washed up and settled there on purpose.",
          "raw_text": "The Sandy Scallop Shell Granny Square starts out as a classic four-round granny base in a soft, sandy-toned palette, but the real charm shows up once the base is done. A tiny Sandy Scallop Shell — built from three small pieces I call the Shell Fan, the Shell Overlay, and the Hinge Dot — gets stitched up on its own and then sewn onto one corner of the square, like something that washed up and settled there on purpose.",
          "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": "Every round uses the same comfortable double crochet grouping you'd expect from a traditional granny square, so if you've made one before, this one will feel instantly familiar. The shell appliqué adds one new skill — sewing a finished piece neatly onto a background — which makes this a lovely next project for a beginner who's ready to move past the basic square and try a bit of finishing work.",
          "raw_text": "Every round uses the same comfortable double crochet grouping you'd expect from a traditional granny square, so if you've made one before, this one will feel instantly familiar. The shell appliqué adds one new skill — sewing a finished piece neatly onto a background — which makes this a lovely next project for a beginner who's ready to move past the basic square and try a bit of finishing work.",
          "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": "Finished, the square measures about 6 by 6 inches, with the shell sitting quietly against ivory, dusty blue, sand, blush, and cream. It's a sweet one to make in a stack for a beach-toned throw, to scatter across a plain blanket as an accent square, or to finish on its own as a little coaster or hot pad for a sunroom shelf.",
          "raw_text": "Finished, the square measures about 6 by 6 inches, with the shell sitting quietly against ivory, dusty blue, sand, blush, and cream. It's a sweet one to make in a stack for a beach-toned throw, to scatter across a plain blanket as an accent square, or to finish on its own as a little coaster or hot pad for a sunroom shelf.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 3,
      "card_type": "why_love",
      "code": "why-love",
      "title": "Why You'll Love This Pattern",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "why-love-1",
          "label": "",
          "value": "I fell for this one the moment the little shell came together. There's something so satisfying about building a plain, honest granny square in soft ivory and dusty blue, then setting it aside to fuss over a tiny separate piece — the Shell Fan, the Overlay, that one perfect Hinge Dot — before sewing the whole sandy little bundle onto a corner. It feels like two small projects in one evening. The colors do the real work here: sand and blush layered close together read like light catching the ridges of a real shell. I love handing this square to anyone who says granny squares are all the same, because this one clearly isn't.",
          "raw_text": "I fell for this one the moment the little shell came together. There's something so satisfying about building a plain, honest granny square in soft ivory and dusty blue, then setting it aside to fuss over a tiny separate piece — the Shell Fan, the Overlay, that one perfect Hinge Dot — before sewing the whole sandy little bundle onto a corner. It feels like two small projects in one evening. The colors do the real work here: sand and blush layered close together read like light catching the ridges of a real shell. I love handing this square to anyone who says granny squares are all the same, because this one clearly isn't.",
          "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": "This square is easy to make your own. Swap dusty blue for a soft seafoam or a warm coral and the whole shell mood shifts from calm morning beach to bright afternoon one. If you want a plainer background, work all four base rounds in a single ivory or cream and let the shell appliqué carry all the color and contrast on its own. A finer cotton yarn with a smaller hook shrinks the shell down into a delicate brooch or bag charm, while a bulkier yarn puffs the whole motif up for a statement pillow. You can also finish the border round in whatever shade ties your other squares together.",
          "raw_text": "This square is easy to make your own. Swap dusty blue for a soft seafoam or a warm coral and the whole shell mood shifts from calm morning beach to bright afternoon one. If you want a plainer background, work all four base rounds in a single ivory or cream and let the shell appliqué carry all the color and contrast on its own. A finer cotton yarn with a smaller hook shrinks the shell down into a delicate brooch or bag charm, while a bulkier yarn puffs the whole motif up for a statement pillow. You can also finish the border round in whatever shade ties your other squares together.",
          "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": "Losing the corner ch-2 spaces",
          "value": "Work every stitch group directly into the ch-2 space, not around the whole chain, or the square will curl instead of lying flat.",
          "raw_text": "Work every stitch group directly into the ch-2 space, not around the whole chain, or the square will curl instead of lying flat.",
          "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": "Sewing the shell on crooked",
          "value": "Pin the Shell Fan and Overlay in place first and step back to check the angle before you take a single stitch.",
          "raw_text": "Pin the Shell Fan and Overlay in place first and step back to check the angle before you take a single stitch.",
          "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": "Skipping the color-change tails",
          "value": "Leave a few extra inches on every color change so you have something to weave in later instead of a knot working loose.",
          "raw_text": "Leave a few extra inches on every color change so you have something to weave in later instead of a knot working loose.",
          "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": "Crowding the Hinge Dot",
          "value": "Keep the Hinge Dot small and centered where the shell pieces overlap — it's a quiet accent, not a bulky lump under the fan.",
          "raw_text": "Keep the Hinge Dot small and centered where the shell pieces overlap — it's a quiet accent, not a bulky lump under the fan.",
          "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": "Worsted-weight yarn in 5 colors (ivory, dusty blue, sand, blush, cream) — about 25–40 g total per square",
              "raw_text": "Worsted-weight yarn in 5 colors (ivory, dusty blue, sand, blush, cream) — about 25–40 g total per square"
            },
            {
              "order": 2,
              "row_type": "item",
              "code": "mat-1-2",
              "label": "",
              "value": "5.0 mm crochet hook",
              "raw_text": "5.0 mm crochet hook"
            },
            {
              "order": 3,
              "row_type": "item",
              "code": "mat-1-3",
              "label": "",
              "value": "Yarn needle for weaving in ends",
              "raw_text": "Yarn needle for weaving in ends"
            },
            {
              "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",
          "raw_text": "ch = chain",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "ch",
          "meaning": "chain"
        },
        {
          "order": 2,
          "row_type": "abbrev",
          "code": "abbrev-dc",
          "label": "dc",
          "value": "double crochet",
          "raw_text": "dc = double crochet",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "dc",
          "meaning": "double crochet"
        },
        {
          "order": 3,
          "row_type": "abbrev",
          "code": "abbrev-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-sl-st",
          "label": "sl st",
          "value": "slip stitch",
          "raw_text": "sl st = slip stitch",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sl st",
          "meaning": "slip stitch"
        },
        {
          "order": 5,
          "row_type": "abbrev",
          "code": "abbrev-sp",
          "label": "sp",
          "value": "space",
          "raw_text": "sp = space",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "sp",
          "meaning": "space"
        },
        {
          "order": 6,
          "row_type": "abbrev",
          "code": "abbrev-st-s",
          "label": "st(s)",
          "value": "stitch(es)",
          "raw_text": "st(s) = stitch(es)",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "st(s)",
          "meaning": "stitch(es)"
        },
        {
          "order": 7,
          "row_type": "abbrev",
          "code": "abbrev-rnd",
          "label": "rnd",
          "value": "round",
          "raw_text": "rnd = round",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "rnd",
          "meaning": "round"
        },
        {
          "order": 8,
          "row_type": "abbrev",
          "code": "abbrev-mr",
          "label": "MR",
          "value": "magic ring",
          "raw_text": "MR = magic ring",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": "MR",
          "meaning": "magic ring"
        }
      ]
    },
    {
      "order": 8,
      "card_type": "part",
      "code": "the-background-square",
      "title": "The Background Square",
      "raw_heading": "The Background Square",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "part-info-1",
          "label": "Info",
          "value": "Work the plain background square first — the sandy scallop shell pieces are sewn on at the end. Every count below is math-verified.",
          "raw_text": "Work the plain background square first — the sandy scallop shell pieces are sewn on at the end. Every count below is math-verified.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "part-round-1",
          "label": "Round 1",
          "value": "With ivory, in a magic ring: ch 3, 2 dc, ch 2, [3 dc, ch 2] 3 times; sl st to top of ch-3 to join (12)",
          "raw_text": "With ivory, in a magic ring: ch 3, 2 dc, ch 2, [3 dc, ch 2] 3 times; sl st to top of ch-3 to join (12)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "info",
          "code": "part-step-1",
          "label": "Step by step",
          "value": "Step by step: Using ivory yarn, in a magic ring: make 3 chain stitches, 2 double crochet, make 2 chain stitches, [3 double crochet, make 2 chain stitches] 3 times; slip stitch to top of ch-3 to join.",
          "raw_text": "Step by step: Using ivory yarn, in a magic ring: make 3 chain stitches, 2 double crochet, make 2 chain stitches, [3 double crochet, make 2 chain stitches] 3 times; slip stitch to top of ch-3 to join.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "part-round-2",
          "label": "Round 2",
          "value": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, ] 3 times; sl st to join (24)",
          "raw_text": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, ] 3 times; sl st to join (24)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 24,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "info",
          "code": "part-step-2",
          "label": "Step by step",
          "value": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "raw_text": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "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": "part-round-3",
          "label": "Round 3",
          "value": "With dusty blue, sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (36)",
          "raw_text": "With dusty blue, sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (36)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 36,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "part-step-3",
          "label": "Step by step",
          "value": "Step by step: Using dusty blue yarn, slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "raw_text": "Step by step: Using dusty blue yarn, slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 8,
          "row_type": "round",
          "code": "part-round-4",
          "label": "Round 4",
          "value": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (48)",
          "raw_text": "sl st to corner sp, ch 3, 2 dc, ch 2, 3 dc in same corner, ch 1, 3 dc, ch 1, 3 dc, ch 1, [(3 dc, ch 2, 3 dc) in corner sp, ch 1, 3 dc, ch 1, 3 dc, ch 1, ] 3 times; sl st to join (48)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": 48,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 9,
          "row_type": "info",
          "code": "part-step-4",
          "label": "Step by step",
          "value": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "raw_text": "Step by step: Slip stitch to corner space, make 3 chain stitches, 2 double crochet, make 2 chain stitches, 3 double crochet in same corner, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, [(3 double crochet, make 2 chain stitches, 3 double crochet) in corner space, make 1 chain stitch, 3 double crochet, make 1 chain stitch, 3 double crochet, make 1 chain stitch, ] 3 times; slip stitch to join.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 10,
          "row_type": "round",
          "code": "part-round-5",
          "label": "Border",
          "value": "With ivory, sl st into the corner ch-2 sp, ch 1, [3 sc in the corner sp, (sc in next 3 sts, sc in next sp) 3 times, sc in next 3 sts] 4 times; sl st to the first sc (72)",
          "raw_text": "With ivory, sl st into the corner ch-2 sp, ch 1, [3 sc in the corner sp, (sc in next 3 sts, sc in next sp) 3 times, sc in next 3 sts] 4 times; sl st to the first sc (72)",
          "round_start": 5,
          "round_end": 5,
          "is_range": false,
          "stitch_count": 72,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 11,
          "row_type": "info",
          "code": "part-step-5",
          "label": "Step by step",
          "value": "Step by step: Using ivory yarn, slip stitch into the corner ch-2 space, make 1 chain stitch, [3 single crochet in the corner space, (single crochet in next 3 stitches, single crochet in next space) 3 times, single crochet in next 3 stitches] 4 times; slip stitch to the first single crochet.",
          "raw_text": "Step by step: Using ivory yarn, slip stitch into the corner ch-2 space, make 1 chain stitch, [3 single crochet in the corner space, (single crochet in next 3 stitches, single crochet in next space) 3 times, single crochet in next 3 stitches] 4 times; slip stitch to the first single crochet.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 9,
      "card_type": "part",
      "code": "the-shell-fan",
      "title": "The Shell Fan",
      "raw_heading": "The Shell Fan",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "pc1-info",
          "label": "Info",
          "value": "Worked in sand. Leave a long tail for sewing.",
          "raw_text": "Worked in sand. Leave a long tail for sewing.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "pc1-round-1",
          "label": "Round 1",
          "value": "ch 7, sc in 2nd ch from hook, sc in next 5 sts (6)",
          "raw_text": "ch 7, sc in 2nd ch from hook, sc in next 5 sts (6)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 6,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "pc1-round-2",
          "label": "Round 2",
          "value": "ch 1, turn, inc in first st, sc in next 4 sts, inc in last st (8)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 4 sts, inc in last st (8)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 8,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "pc1-round-3",
          "label": "Round 3",
          "value": "ch 1, turn, inc in first st, sc in next 6 sts, inc in last st (10)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 6 sts, inc in last st (10)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 10,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "round",
          "code": "pc1-round-4",
          "label": "Round 4",
          "value": "ch 1, turn, inc in first st, sc in next 8 sts, inc in last st (12)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 8 sts, inc in last st (12)",
          "round_start": 4,
          "round_end": 4,
          "is_range": false,
          "stitch_count": 12,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 10,
      "card_type": "part",
      "code": "the-shell-overlay",
      "title": "The Shell Overlay",
      "raw_heading": "The Shell Overlay",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "pc2-info",
          "label": "Info",
          "value": "Worked in blush. Leave a long tail for sewing.",
          "raw_text": "Worked in blush. Leave a long tail for sewing.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "pc2-round-1",
          "label": "Round 1",
          "value": "ch 5, sc in 2nd ch from hook, sc in next 3 sts (4)",
          "raw_text": "ch 5, sc in 2nd ch from hook, sc in next 3 sts (4)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 4,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "round",
          "code": "pc2-round-2",
          "label": "Round 2",
          "value": "ch 1, turn, inc in first st, sc in next 2 sts, inc in last st (6)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 2 sts, inc in last st (6)",
          "round_start": 2,
          "round_end": 2,
          "is_range": false,
          "stitch_count": 6,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "round",
          "code": "pc2-round-3",
          "label": "Round 3",
          "value": "ch 1, turn, inc in first st, sc in next 4 sts, inc in last st (8)",
          "raw_text": "ch 1, turn, inc in first st, sc in next 4 sts, inc in last st (8)",
          "round_start": 3,
          "round_end": 3,
          "is_range": false,
          "stitch_count": 8,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 11,
      "card_type": "part",
      "code": "the-hinge-dot",
      "title": "The Hinge Dot",
      "raw_heading": "The Hinge Dot",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "pc3-info",
          "label": "Info",
          "value": "Worked in cream. Leave a long tail for sewing.",
          "raw_text": "Worked in cream. Leave a long tail for sewing.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "round",
          "code": "pc3-round-1",
          "label": "Round 1",
          "value": "6 sc in a magic ring (6)",
          "raw_text": "6 sc in a magic ring (6)",
          "round_start": 1,
          "round_end": 1,
          "is_range": false,
          "stitch_count": 6,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 12,
      "card_type": "part",
      "code": "assembly",
      "title": "Assembly — Bringing It Together",
      "raw_heading": "Assembly",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "info",
          "code": "asm-1",
          "label": "Step 1",
          "value": "Pin the Shell Fan (sand) onto the background square just off-center, narrow foundation-chain edge pointing toward the bottom so the wide row-4 edge fans upward like an open scallop shell",
          "raw_text": "Pin the Shell Fan (sand) onto the background square just off-center, narrow foundation-chain edge pointing toward the bottom so the wide row-4 edge fans upward like an open scallop shell",
          "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": "asm-2",
          "label": "Step 2",
          "value": "Sew the Shell Fan down around its outer curve and sides with matching sand thread, leaving the fan's top edge slightly loose for a bit of dimension",
          "raw_text": "Sew the Shell Fan down around its outer curve and sides with matching sand thread, leaving the fan's top edge slightly loose for a bit of dimension",
          "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": "asm-3",
          "label": "Step 3",
          "value": "Layer the Shell Overlay (blush) on top of the Shell Fan, aligning its narrow foundation edge with the same bottom point, and sew it in place around its edges with blush thread",
          "raw_text": "Layer the Shell Overlay (blush) on top of the Shell Fan, aligning its narrow foundation edge with the same bottom point, and sew it in place around its edges with blush thread",
          "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": "asm-4",
          "label": "Step 4",
          "value": "Sew the Hinge Dot (cream) directly over the point where the two fans meet at the bottom, covering the join and forming the shell's hinge",
          "raw_text": "Sew the Hinge Dot (cream) directly over the point where the two fans meet at the bottom, covering the join and forming the shell's hinge",
          "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": "asm-5",
          "label": "Step 5",
          "value": "Work the embroidered ridge lines from the Hinge Dot up through both layered fans to finish the shell's fluted texture",
          "raw_text": "Work the embroidered ridge lines from the Hinge Dot up through both layered fans to finish the shell's fluted texture",
          "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": "asm-6",
          "label": "Embroidery",
          "value": "With cream thread, work 4-5 short straight stitches fanning out from the Hinge Dot up to the top curved edge of the Shell Fan, like the ridge lines of a real scallop shell",
          "raw_text": "With cream thread, work 4-5 short straight stitches fanning out from the Hinge Dot up to the top curved edge of the Shell Fan, like the ridge lines of a real scallop shell",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        },
        {
          "order": 7,
          "row_type": "info",
          "code": "asm-7",
          "label": "Embroidery",
          "value": "Add 2-3 tiny straight stitches along the top edge of the Shell Overlay in sand thread to echo the ridges on the smaller layer",
          "raw_text": "Add 2-3 tiny straight stitches along the top edge of the Shell Overlay in sand thread to echo the ridges on the smaller layer",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 13,
      "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: the finished square is about 6 x 6 inches in Worsted weight yarn with a 5.0 mm hook. Tight crocheters can go up half a hook size; loose ones down half.",
          "raw_text": "💡 Gauge: the finished square is about 6 x 6 inches in Worsted weight yarn with a 5.0 mm hook. Tight crocheters can go up half a hook size; loose ones down half.",
          "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": "💡 Color plan: the sample uses ivory, dusty blue, sand, blush, cream in round order — change colors with a slip-stitch join in the first stitch of the new round.",
          "raw_text": "💡 Color plan: the sample uses ivory, dusty blue, sand, blush, cream in round order — change colors with a slip-stitch join in the first stitch of the new round.",
          "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": "💡 Block the background square with a light steam before sewing on the shell so the appliqué sits on a flat, even surface.",
          "raw_text": "💡 Block the background square with a light steam before sewing on the shell so the appliqué sits on a flat, even surface.",
          "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": "💡 Weave in all your ivory and dusty blue tails on the wrong side before you start sewing, so the finished piece stays tidy front and back.",
          "raw_text": "💡 Weave in all your ivory and dusty blue tails on the wrong side before you start sewing, so the finished piece stays tidy front and back.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": null,
          "answer": null,
          "abbr": null,
          "meaning": null
        }
      ]
    },
    {
      "order": 14,
      "card_type": "faq",
      "code": "faq",
      "title": "FAQ",
      "raw_heading": "",
      "quantity": 1,
      "groups": [],
      "rows": [
        {
          "order": 1,
          "row_type": "faq",
          "code": "faq-1",
          "label": "What yarn and hook do I need for this square?",
          "value": "This pattern uses a worsted weight yarn with a 5.0 mm hook, which is a comfortable, easy-to-find combination for a beginner square. Any worsted weight yarn you love in these five shades will work beautifully.",
          "raw_text": "This pattern uses a worsted weight yarn with a 5.0 mm hook, which is a comfortable, easy-to-find combination for a beginner square. Any worsted weight yarn you love in these five shades will work beautifully.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "What yarn and hook do I need for this square?",
          "answer": "This pattern uses a worsted weight yarn with a 5.0 mm hook, which is a comfortable, easy-to-find combination for a beginner square. Any worsted weight yarn you love in these five shades will work beautifully.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 2,
          "row_type": "faq",
          "code": "faq-2",
          "label": "Do I need special skills to make the shell appliqué?",
          "value": "Not really — the shell pieces use the same basic stitches as the background rounds, just worked separately and then sewn on with a yarn needle. If you can already crochet a granny square, you have everything you need.",
          "raw_text": "Not really — the shell pieces use the same basic stitches as the background rounds, just worked separately and then sewn on with a yarn needle. If you can already crochet a granny square, you have everything you need.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Do I need special skills to make the shell appliqué?",
          "answer": "Not really — the shell pieces use the same basic stitches as the background rounds, just worked separately and then sewn on with a yarn needle. If you can already crochet a granny square, you have everything you need.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 3,
          "row_type": "faq",
          "code": "faq-3",
          "label": "How big is the finished square?",
          "value": "It blocks out to about 6 by 6 inches, which is a friendly size for joining into a blanket or using on its own. A light steam block will help it hold that shape.",
          "raw_text": "It blocks out to about 6 by 6 inches, which is a friendly size for joining into a blanket or using on its own. A light steam block will help it hold that shape.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How big is the finished square?",
          "answer": "It blocks out to about 6 by 6 inches, which is a friendly size for joining into a blanket or using on its own. A light steam block will help it hold that shape.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 4,
          "row_type": "faq",
          "code": "faq-4",
          "label": "Can I change the colors?",
          "value": "Absolutely — the five-color sequence is really about contrast, so any palette that moves from a light background to a deeper accent shade will show off the shell shaping. Try warm sand tones or cool seaside blues depending on the mood you want.",
          "raw_text": "Absolutely — the five-color sequence is really about contrast, so any palette that moves from a light background to a deeper accent shade will show off the shell shaping. Try warm sand tones or cool seaside blues depending on the mood you want.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "Can I change the colors?",
          "answer": "Absolutely — the five-color sequence is really about contrast, so any palette that moves from a light background to a deeper accent shade will show off the shell shaping. Try warm sand tones or cool seaside blues depending on the mood you want.",
          "abbr": null,
          "meaning": null
        },
        {
          "order": 5,
          "row_type": "faq",
          "code": "faq-5",
          "label": "How do I attach the shell to the background square?",
          "value": "Pin the appliqué pieces where you want them, check the placement in good light, then sew around the edges with a yarn needle and a length of matching yarn. Weave in the sewing tail the same way you would any other yarn end.",
          "raw_text": "Pin the appliqué pieces where you want them, check the placement in good light, then sew around the edges with a yarn needle and a length of matching yarn. Weave in the sewing tail the same way you would any other yarn end.",
          "round_start": null,
          "round_end": null,
          "is_range": false,
          "stitch_count": null,
          "question": "How do I attach the shell to the background square?",
          "answer": "Pin the appliqué pieces where you want them, check the placement in good light, then sew around the edges with a yarn needle and a length of matching yarn. Weave in the sewing tail the same way you would any other yarn end.",
          "abbr": null,
          "meaning": null
        }
      ]
    }
  ],
  "conflicts": [],
  "validation_warnings": [],
  "images": [
    "data/images/sandy-scallop-shell-granny-square-a-beginner-shell-applique-hero.webp"
  ],
  "source_url": null,
  "thumbnail_images": [
    {
      "url": "data/images/sandy-scallop-shell-granny-square-a-beginner-shell-applique-hero.webp",
      "alt": "Sandy Scallop Shell Granny Square — A Beginner Shell Appliqué — finished granny square",
      "is_featured": true
    }
  ],
  "gallery_images": [
    {
      "url": "data/images/sandy-scallop-shell-granny-square-a-beginner-shell-applique-hero.webp",
      "alt": "Sandy Scallop Shell Granny Square — A Beginner Shell Appliqué — finished granny square",
      "is_featured": true
    }
  ],
  "_squarelab": {
    "original_design": true,
    "square_id": "sandy-scallop-shell-granny-square--0b70cb23",
    "family": "classic",
    "path": "classic",
    "recipe": [
      "classic_center",
      "granny_grow",
      "granny_grow",
      "granny_grow",
      "sc_border"
    ],
    "verdict": "ship",
    "all_counts_verified": true
  },
  "_sanitized_holiday_count": 0
}