{
  "configVersion": 1,
  "designId": "recipe-print",
  "rendererVersion": "recipe-print/3.0.0",
  "service": {
    "origin": "",
    "savePath": "/v1/designs",
    "analyticsPath": "/v1/analytics/events",
    "previewDebounceMs": 120
  },
  "sheet": {
    "width": 1000,
    "height": 1500
  },
  "assetVersion": "2026-11-11.6",
  "preview": {
    "exampleAsset": "design-recipe-print-example.jpg",
    "exampleAlt": "A handwritten lemon drizzle recipe in blue biro filling a white print inside a red gingham border, captioned Auntie Pat’s Lemon Drizzle with a little red heart.",
    "seed": {
      "kind": "ink",
      "layout": "big",
      "colourway": "chalk",
      "ink": "blueblack",
      "typeface": "classic",
      "ornament": "heart",
      "border": "gingham-red",
      "pictures": "none",
      "sample": "biro",
      "title": "Auntie Pat’s Lemon Drizzle",
      "kitchen": "From the kitchen of Patricia Doyle",
      "line": "Every birthday since 1978",
      "serves": "Makes one loaf",
      "ingredients": "225 g (8 oz) self-raising flour\n225 g (8 oz) caster sugar\n225 g (8 oz) soft margarine\n4 eggs\nZest of 2 lemons\nJuice of 2 lemons and 115 g (4 oz) sugar, for the drizzle",
      "method": "Heat the oven to 180°C (gas 4).\nBeat it all together until smooth.\nBake in a loaf tin for 45 minutes.\nWhile it is warm, poke holes in the cake and pour over the lemon juice and sugar."
    }
  },
  "fields": {
    "requiredLabel": "Make it yours",
    "required": [
      {
        "key": "kind",
        "type": "thumbnails",
        "label": "Their handwriting, or typed?",
        "default": "ink",
        "affects": "render",
        "options": [
          {
            "value": "card",
            "label": "Their card, as it is",
            "description": "the card itself, its own edges and paper tone, with a soft shadow",
            "thumbnail": "design-recipe-print-kind-card.jpg"
          },
          {
            "value": "ink",
            "label": "Their writing, ink only",
            "description": "the paper taken away, the writing printed in one of our inks",
            "thumbnail": "design-recipe-print-kind-ink.jpg"
          },
          {
            "value": "typeset",
            "label": "Typed recipe",
            "description": "type the recipe and we set it like a page from a fine cookbook",
            "thumbnail": "design-recipe-print-kind-typeset.jpg"
          }
        ]
      },
      {
        "key": "recipeBoxes",
        "type": "columns",
        "$comment": "One column, full width: the shell caps the top-level required fields at four, so the photo boxes and the typed recipe boxes (title, kitchen, line, serves, ingredients, method) sit in one group and each keeps its own showWhen. Without it the boxes after the fourth were never built and Typed recipe had nothing to type in.",
        "columns": [
          [
            {
              "key": "photo",
              "type": "file",
              "label": "Add a photo of the handwriting",
              "hint": "A recipe card, a notebook page, a letter or a note. Lay it flat in daylight and take the photo from straight above, the card filling most of it: for a sharp 30 x 45 cm print the card needs about 2000 pixels across. We straighten it and cut it to its own edges. The preview is exactly what prints: nothing is redrawn.",
              "accept": "image/*",
              "maxBytes": 26214400,
              "reading": "Cleaning the photo…",
              "tooLarge": "That photo is too large. Try one under 25 MB.",
              "removeLabel": "Remove this photo",
              "optional": true,
              "affects": "render",
              "showWhen": {
                "key": "kind",
                "equals": [
                  "card",
                  "ink"
                ]
              },
              "ownFileResets": {
                "title": "",
                "kitchen": "",
                "line": "",
                "serves": "",
                "ingredients": "",
                "method": ""
              },
              "$comment": "ownFileResets (round 3): the example card's words describe the example card, so the buyer's own card clears every caption and recipe box they have not written in. The hand looks carry no words; the example's own words show only while the example card shows."
            },
            {
              "key": "photoBack",
              "type": "file",
              "label": "The back of the card (optional)",
              "hint": "If the recipe carries on over the page, add the back too: the two sides print together.",
              "accept": "image/*",
              "maxBytes": 26214400,
              "reading": "Cleaning the photo…",
              "tooLarge": "That photo is too large. Try one under 25 MB.",
              "removeLabel": "Remove the back",
              "optional": true,
              "affects": "render",
              "showWhen": {
                "all": [
                  {
                    "key": "kind",
                    "equals": [
                      "card",
                      "ink"
                    ]
                  },
                  {
                    "key": "photo",
                    "notEmpty": true
                  }
                ]
              }
            },
            {
              "key": "title",
              "type": "text",
              "label": "Title",
              "hint": "The dish, or whose it is: Nan’s Apple Crumble, Dad’s Sunday Gravy. Leave it empty under a note to let their words speak.",
              "maxLength": 40,
              "optional": true,
              "affects": "render"
            },
            {
              "key": "kitchen",
              "type": "text",
              "label": "Whose kitchen",
              "hint": "From the kitchen of Margaret Hill · Mum · Joan Ellis",
              "maxLength": 48,
              "optional": true,
              "affects": "render"
            },
            {
              "key": "line",
              "type": "text",
              "label": "A short line",
              "hint": "Made with love since 1962 · Every birthday since 1978 · 1941 – 2023",
              "maxLength": 48,
              "optional": true,
              "affects": "render"
            },
            {
              "key": "serves",
              "type": "text",
              "label": "Serves and time",
              "hint": "Serves 6 · 1 hour",
              "maxLength": 40,
              "optional": true,
              "affects": "render",
              "showWhen": {
                "key": "layout",
                "equals": [
                  "recipe",
                  "columns",
                  "stacked"
                ]
              }
            },
            {
              "key": "ingredients",
              "type": "paragraph",
              "label": "Ingredients",
              "hint": "One on each line. Under their card, the recipe set out in full for today’s kitchen; leave it empty for the card alone.",
              "maxLength": 700,
              "rows": 7,
              "optional": true,
              "affects": "render",
              "showWhen": {
                "key": "layout",
                "equals": [
                  "recipe",
                  "columns",
                  "stacked"
                ]
              }
            },
            {
              "key": "method",
              "type": "paragraph",
              "label": "Method",
              "hint": "One step on each line. We number them.",
              "maxLength": 1500,
              "rows": 7,
              "optional": true,
              "affects": "render",
              "showWhen": {
                "key": "layout",
                "equals": [
                  "recipe",
                  "columns",
                  "stacked"
                ]
              }
            }
          ]
        ]
      }
    ],
    "optionsLabel": "The look",
    "options": [
      {
        "key": "layout",
        "type": "thumbnails",
        "label": "Layout",
        "default": "big",
        "affects": "render",
        "options": [
          {
            "value": "recipe",
            "label": "Card and recipe",
            "thumbnail": "design-recipe-print-layout-recipe.jpg",
            "showWhen": {
              "key": "kind",
              "equals": [
                "card",
                "ink"
              ]
            }
          },
          {
            "value": "plate",
            "label": "Card alone",
            "thumbnail": "design-recipe-print-layout-plate.jpg",
            "showWhen": {
              "key": "kind",
              "equals": [
                "card",
                "ink"
              ]
            }
          },
          {
            "value": "herbs",
            "label": "Herb corners",
            "thumbnail": "design-recipe-print-layout-herbs.jpg",
            "showWhen": {
              "key": "kind",
              "equals": [
                "ink"
              ]
            }
          },
          {
            "value": "big",
            "label": "Writing filling the sheet",
            "thumbnail": "design-recipe-print-layout-big.jpg",
            "showWhen": {
              "key": "kind",
              "equals": [
                "ink"
              ]
            }
          },
          {
            "value": "columns",
            "label": "Cookbook page",
            "thumbnail": "design-recipe-print-layout-columns.jpg",
            "showWhen": {
              "key": "kind",
              "equals": [
                "typeset"
              ]
            }
          },
          {
            "value": "stacked",
            "label": "Stacked poster",
            "thumbnail": "design-recipe-print-layout-stacked.jpg",
            "showWhen": {
              "key": "kind",
              "equals": [
                "typeset"
              ]
            }
          }
        ]
      },
      {
        "key": "colourway",
        "type": "thumbnails",
        "label": "Paper",
        "default": "chalk",
        "affects": "render",
        "options": [
          {
            "value": "cream",
            "label": "Cream",
            "thumbnail": "design-recipe-print-colourway-cream.jpg"
          },
          {
            "value": "chalk",
            "label": "Soft white",
            "thumbnail": "design-recipe-print-colourway-chalk.jpg"
          },
          {
            "value": "oat",
            "label": "Oat & terracotta",
            "thumbnail": "design-recipe-print-colourway-oat.jpg"
          },
          {
            "value": "charcoal",
            "label": "Chalkboard",
            "thumbnail": "design-recipe-print-colourway-charcoal.jpg"
          },
          {
            "value": "navy",
            "label": "Navy",
            "thumbnail": "design-recipe-print-colourway-navy.jpg"
          },
          {
            "value": "forest",
            "label": "Forest green",
            "thumbnail": "design-recipe-print-colourway-forest.jpg"
          }
        ]
      },
      {
        "key": "ink",
        "type": "thumbnails",
        "label": "Ink",
        "hint": "The lettering, and the writing when it is printed ink only. On the chalkboard, navy and forest papers it prints in chalk cream or white.",
        "default": "blueblack",
        "affects": "render",
        "options": [
          {
            "value": "blueblack",
            "label": "Blue-black",
            "thumbnail": "design-recipe-print-ink-blueblack.jpg"
          },
          {
            "value": "sepia",
            "label": "Sepia",
            "thumbnail": "design-recipe-print-ink-sepia.jpg"
          },
          {
            "value": "green",
            "label": "Kitchen green",
            "thumbnail": "design-recipe-print-ink-green.jpg"
          },
          {
            "value": "charcoal",
            "label": "Charcoal",
            "thumbnail": "design-recipe-print-ink-charcoal.jpg"
          },
          {
            "value": "terracotta",
            "label": "Terracotta",
            "thumbnail": "design-recipe-print-ink-terracotta.jpg"
          },
          {
            "value": "cream",
            "label": "Chalk cream",
            "thumbnail": "design-recipe-print-ink-cream.jpg"
          },
          {
            "value": "white",
            "label": "Chalk white",
            "thumbnail": "design-recipe-print-ink-white.jpg"
          }
        ]
      },
      {
        "key": "typeface",
        "type": "thumbnails",
        "label": "Lettering",
        "default": "classic",
        "affects": "render",
        "options": [
          {
            "value": "classic",
            "label": "Classic italic",
            "thumbnail": "design-recipe-print-typeface-classic.jpg"
          },
          {
            "value": "editorial",
            "label": "Editorial",
            "thumbnail": "design-recipe-print-typeface-editorial.jpg"
          },
          {
            "value": "modern",
            "label": "Modern capitals",
            "thumbnail": "design-recipe-print-typeface-modern.jpg"
          },
          {
            "value": "soft",
            "label": "Soft serif",
            "thumbnail": "design-recipe-print-typeface-soft.jpg"
          }
        ]
      },
      {
        "key": "ornament",
        "type": "thumbnails",
        "label": "Ornament",
        "default": "heart",
        "affects": "render",
        "options": [
          {
            "value": "rosemary",
            "label": "Rosemary",
            "thumbnail": "design-recipe-print-ornament-rosemary.jpg"
          },
          {
            "value": "wheat",
            "label": "Wheat",
            "thumbnail": "design-recipe-print-ornament-wheat.jpg"
          },
          {
            "value": "whisk",
            "label": "Whisk",
            "thumbnail": "design-recipe-print-ornament-whisk.jpg"
          },
          {
            "value": "heart",
            "label": "Little red heart",
            "thumbnail": "design-recipe-print-ornament-heart.jpg"
          },
          {
            "value": "none",
            "label": "None",
            "thumbnail": "design-recipe-print-ornament-none.jpg"
          }
        ]
      },
      {
        "key": "border",
        "type": "thumbnails",
        "label": "Border",
        "default": "gingham-red",
        "affects": "render",
        "options": [
          {
            "value": "none",
            "label": "No border",
            "thumbnail": "design-recipe-print-border-none.jpg"
          },
          {
            "value": "gingham-red",
            "label": "Red gingham",
            "thumbnail": "design-recipe-print-border-gingham-red.jpg"
          },
          {
            "value": "gingham-blue",
            "label": "Blue gingham",
            "thumbnail": "design-recipe-print-border-gingham-blue.jpg"
          },
          {
            "value": "gingham-sage",
            "label": "Sage gingham",
            "thumbnail": "design-recipe-print-border-gingham-sage.jpg"
          },
          {
            "value": "stripe",
            "label": "Tea-towel stripe",
            "thumbnail": "design-recipe-print-border-stripe.jpg"
          },
          {
            "value": "plate",
            "label": "Plate rim",
            "thumbnail": "design-recipe-print-border-plate.jpg"
          }
        ]
      },
      {
        "key": "pictures",
        "type": "thumbnails",
        "label": "Pictures",
        "default": "none",
        "affects": "render",
        "showWhen": {
          "key": "kind",
          "equals": [
            "typeset"
          ]
        },
        "options": [
          {
            "value": "none",
            "label": "None",
            "thumbnail": "design-recipe-print-pictures-none.jpg"
          },
          {
            "value": "round",
            "label": "Pictures round the recipe",
            "thumbnail": "design-recipe-print-pictures-round.jpg"
          }
        ]
      }
    ]
  },
  "presets": {
    "label": "Try a starting point",
    "options": [
      {
        "id": "gingham",
        "label": "Their writing, gingham border",
        "values": {
          "kind": "ink",
          "layout": "big",
          "colourway": "chalk",
          "ink": "blueblack",
          "typeface": "classic",
          "ornament": "heart",
          "border": "gingham-red",
          "pictures": "none",
          "sample": "biro",
          "title": "",
          "kitchen": "",
          "line": "",
          "serves": "",
          "ingredients": "",
          "method": ""
        },
        "thumbnail": "design-recipe-print-preset-gingham.jpg"
      },
      {
        "id": "chalkboard",
        "label": "Chalkboard",
        "values": {
          "kind": "ink",
          "layout": "big",
          "colourway": "charcoal",
          "ink": "cream",
          "typeface": "classic",
          "ornament": "rosemary",
          "border": "none",
          "pictures": "none",
          "sample": "fountain",
          "title": "",
          "kitchen": "",
          "line": "",
          "serves": "",
          "ingredients": "",
          "method": ""
        },
        "thumbnail": "design-recipe-print-preset-chalkboard.jpg"
      },
      {
        "id": "cookbook",
        "label": "Cookbook page",
        "values": {
          "kind": "typeset",
          "layout": "columns",
          "colourway": "forest",
          "ink": "sepia",
          "typeface": "editorial",
          "ornament": "whisk",
          "border": "none",
          "pictures": "round",
          "sample": "fountain",
          "title": "Nan’s Victoria Sponge",
          "kitchen": "From the kitchen of Margaret Hill",
          "line": "Made with love since 1962",
          "serves": "Serves 8 · 1 hour",
          "ingredients": "225 g (8 oz) soft butter\n225 g (8 oz) caster sugar\n4 large eggs\n225 g (8 oz) self-raising flour\n2 tbsp milk\n4 tbsp strawberry jam\nIcing sugar, to dust",
          "method": "Heat the oven to 180°C (gas 4) and line two 20 cm tins.\nBeat the butter and sugar until pale and fluffy, then beat in the eggs one at a time.\nFold in the flour and the milk.\nBake for 25 minutes, until golden and springy.\nSandwich with the jam, dust with icing sugar and serve with a pot of tea."
        },
        "thumbnail": "design-recipe-print-preset-cookbook.jpg"
      },
      {
        "id": "note",
        "label": "A note in their hand",
        "values": {
          "kind": "card",
          "layout": "plate",
          "colourway": "chalk",
          "ink": "charcoal",
          "typeface": "classic",
          "ornament": "none",
          "border": "none",
          "pictures": "none",
          "sample": "note",
          "title": "",
          "kitchen": "",
          "line": "",
          "serves": "",
          "ingredients": "",
          "method": ""
        },
        "thumbnail": "design-recipe-print-preset-note.jpg"
      }
    ]
  },
  "recipes": {
    "label": "Ready-made looks",
    "items": [
      {
        "id": "kitchen-wall",
        "label": "Kitchen wall",
        "look": {
          "kind": "typeset",
          "layout": "stacked",
          "colourway": "cream",
          "ink": "green",
          "typeface": "classic",
          "ornament": "rosemary",
          "border": "gingham-sage",
          "pictures": "none"
        }
      }
    ]
  },
  "cart": {
    "summary": "{kind.label} · {layout.label}"
  },
  "merch": {
    "$comment": "The mug, as the house and coat of arms: 11oz and 15oz beside Poster and Framed print; the writing printed ink only (the card tone would read as a sticker on the glaze); the order lane prints it with the master's --product mug | large-mug, laid out by values.mugPrint.",
    "groups": {
      "mug": "Mug"
    }
  }
}
