Label Designer
Design labels in the browser. The preview comes from the real print renderer — not a CSS approximation.
The Designer: object tree left, registry-generated properties right, Dot-Preview at 203 dpi. The linter flags a quiet-zone violation in real time.
What you see is what prints.
The preview in the Designer is not a drawing on screen — it comes from the same ZPL renderer that sends dots to your thermal printer. If you see it here, it will look exactly like that on paper.
- Snap-to-grid keeps objects aligned without manual pixel-pushing
- Full undo/redo means you can experiment safely
- Complete keyboard operation — no mouse required for any action
- Sample data bar shows your label with realistic values before printing
- Linter catches GS1 violations (quiet zones, font size, overflow) as you type
Declarative JSON under the hood.
Labels are stored as label.json — schema-versioned, patchable, designed as an LLM tool-use target. No proprietary binary format.
{
"schemaVersion": "1.3",
"kind": "label",
"id": "lbl_tpl_gs1_palette",
"media": { "widthMm": 148, "heightMm": 105 },
"variables": [
{ "name": "sscc", "type": "string", "required": true }
],
"objects": [
{
"type": "barcode",
"symbology": "gs1-128",
"value": "${gs1.ai('00', sscc)}",
"moduleWidthMm": 0.33,
"quietZone": { "enforce": true }
}
]
}| Feature | Detail |
|---|---|
| Seven object types | Text, barcode, shape, image, line, box, rich text — all generated from the registry schema, not hard-coded UI panels. |
| Dot-Preview toggle | See the exact dot raster at 203, 300 or 600 dpi. Toggle off to see the clean vector view. |
| Linter panel | GS1 check digits, quiet zones, minimum font sizes, label boundary overflow — with jump-to-object links. |
| AI diff overlay | Side-by-side comparison of draft vs approved versions. Requires explicit accept/reject — no silent changes. |
| Approval workflow | Vier-Augen: the creator cannot approve their own design. Distribution follows approval automatically. |
Freigabe-Diff: Vorher/Nachher mit Vier-Augen-Prinzip. Der Ersteller kann nicht selbst freigeben.
AI Copilot: Describe the label. Review every dot.
Describe what you need — “GS1 palette label with SSCC, batch and best-before date” — and the copilot drafts the label as label.json. The preview comes from the real renderer at every iteration. Nothing goes live without your review.
Shipped today: lint explanation and log Q&A. The copilots are designed, specified — and honestly marked v1.x.