{
  "spec": "quick-html/v0",
  "id": "name-badges",
  "version": "0.1.0",
  "name": "Name Badges",
  "description": "A4 sheet of eight event name badges, 90 × 54 mm and 2 × 4 multi-up with crop marks for cutting: attendee name, role, organisation, an event colour band and a colour-coded track chip. Pick this to print badges for a conference, workshop or symposium.",
  "useWhen": [
    "name badges",
    "conference badges",
    "event badges",
    "badges to print and cut",
    "attendee badges",
    "delegate name tags",
    "naambadges printen",
    "badges voor een congres",
    "Namensschilder drucken",
    "badges nominatifs"
  ],
  "format": "printable",
  "theme": "events",
  "audience": [
    "admin",
    "marketing-team",
    "hr"
  ],
  "tags": [
    "badges",
    "conference",
    "cut-out",
    "attendees",
    "multi-up"
  ],
  "language": "en",
  "page": {
    "size": "A4",
    "orientation": "portrait"
  },
  "modules": [
    "edit-overlay",
    "print-helper"
  ],
  "slots": [
    {
      "name": "doc-title",
      "type": "text",
      "required": true,
      "example": "Name badges — Ontwerpdag Utrecht 2026 (sheet 1)",
      "notes": "Browser tab title; used as the download filename. Include the sheet number when printing several sheets."
    },
    {
      "name": "sheet-note",
      "type": "text",
      "required": true,
      "example": "Ontwerpdag Utrecht 2026 · sheet 1 of 3 · print at 100%, do not scale",
      "notes": "Header line above the grid, in the page margin — it is never cut out with a badge. Keep under ~80 chars and keep the scaling warning in it."
    },
    {
      "name": "cutting-note",
      "type": "text",
      "required": false,
      "example": "Cut along the corner marks. Print single-sided at 100% on 200–250 g/m² card; each badge then fits a standard holder.",
      "notes": "Inside the instructions optional block. One line only — keep under ~120 chars or it wraps."
    },
    {
      "name": "footer-line",
      "type": "text",
      "required": false,
      "example": "Ontwerpdag Utrecht 2026 · 24 Sep 2026 · Werkspoorkathedraal, Utrecht",
      "notes": "Tiny muted line outside the grid: event, date, venue or organiser contact."
    }
  ],
  "repeats": [
    {
      "name": "badge",
      "description": "One badge = one grid cell of the fixed 2 × 4 multi-up sheet, trimmed to 90 × 54 mm. Duplicate once per attendee, never more than eight per sheet.",
      "min": 1,
      "max": 8,
      "slots": [
        {
          "name": "badge-event",
          "type": "text",
          "required": true,
          "example": "Ontwerpdag Utrecht 2026",
          "notes": "Event name in the colour band. Write the SAME value into every badge. Set in caps by CSS; keep under ~28 chars or it is trimmed with an ellipsis."
        },
        {
          "name": "badge-date",
          "type": "date",
          "required": true,
          "example": "24 Sep 2026",
          "notes": "Event date at the right of the band, format '24 Sep 2026'. Write the SAME value into every badge."
        },
        {
          "name": "attendee-name",
          "type": "text",
          "required": true,
          "example": "Hanneke Prinsen",
          "notes": "The hero line, one line only — it never wraps. Keep under ~20 chars: shorten to first name + surname rather than let it be trimmed with an ellipsis."
        },
        {
          "name": "attendee-role",
          "type": "text",
          "required": true,
          "example": "Service Designer",
          "notes": "Job title, muted. Under ~28 chars — abbreviate long titles ('Lead UX Researcher', not 'Lead User Experience Researcher')."
        },
        {
          "name": "attendee-org",
          "type": "text",
          "required": true,
          "example": "Kade Digitaal",
          "notes": "Company, institution or team. Under ~24 chars; the chip takes the rest of the line."
        },
        {
          "name": "badge-track",
          "type": "text",
          "required": true,
          "example": "Speaker",
          "notes": "Track label in the chip: Speaker, Attendee or Crew. Set in caps by CSS — write it in normal case."
        },
        {
          "name": "badge-track-class",
          "type": "text",
          "required": true,
          "example": "chip chip-speaker",
          "notes": "Attribute slot: the chip's class, which sets its colour. Exactly one of 'chip chip-speaker', 'chip chip-attendee', 'chip chip-crew' — must match badge-track."
        }
      ]
    }
  ],
  "optionals": [
    {
      "name": "instructions",
      "description": "One-line cutting and printing note under the grid; drop it when the sheet goes straight to a print shop that already knows."
    }
  ],
  "changelog": [
    {
      "version": "0.1.0",
      "date": "2026-08-19",
      "notes": "Initial release: 8-up A4 badge sheet, 90 × 54 mm cells with crop marks, colour-coded track chips."
    }
  ],
  "agentInstructions": "Delete the seven data-example badges first — they are preview filler. Then duplicate the 'badge' block once per attendee, MAXIMUM 8 per sheet: the 2 × 4 grid is fixed geometry and a ninth badge pushes the sheet onto a second page. For more than 8 attendees, output several filled copies of the whole document (sheet 1, sheet 2, …) and number them in sheet-note — never stretch one sheet. Write the SAME badge-event and badge-date into every badge; they sit inside the repeat only because slot names must be unique. Dates as '24 Sep 2026'. badge-track-class must be exactly one of 'chip chip-speaker', 'chip chip-attendee', 'chip chip-crew' and must agree with badge-track. Shorten long names to first name + surname (drop middle names and initials) so attendee-name stays on one line (~20 chars fit); keep attendee-role under ~28 characters. SAY THIS IN YOUR REPLY: print single-sided at 100% scale with 'fit to page' / 'shrink to fit' switched OFF, or the badges will not be 90 × 54 mm and will not fit the holders. Drop the instructions block if no cutting note is wanted. If the event name, date or venue are unknown, leave placeholders like [EVENT NAME] and tell the user to fix them with the built-in Edit button.",
  "license": "MIT",
  "authors": [
    {
      "github": "bvrln"
    }
  ]
}
