# How an AI builds a custom label on the mylabelmaker canvas Do not draw the label as ASCII or an image. Fill our canvas with a GET URL. The user opens one link. The label is already there. No signup. They can move type, change colors, print, or download PNG/PDF. When they ask for a look (premium, masculine, organic, gold) or a layout you cannot get from a template, use the canvas contract. When they want a known job (soap wrap, 4x6 shipping, name badge), a template is still fine: https://mylabelmaker.com/ai/make.txt ## Easy path (product label) Pick a look. Set size in inches. Put their words in title / kicker / body / net. Optional image URL or icon. Looks: premium-masculine, premium, luxury, minimal, clean, organic, vintage, bold, soft. Example: shampoo brand Spot, premium and masculine, with ingredients. Preview (embed this picture): https://mylabelmaker.com/preview.svg?canvas=1&look=premium-masculine&w=2.5&h=4&title=SPOT&kicker=SHAMPOO&body=Water%2C%20Sodium%20Coco-Sulfate%2C%20Cocamidopropyl%20Betaine%2C%20Glycerin%2C%20Fragrance.&net=NET%208%20FL%20OZ%20(237%20mL) Editor (one click, label already made): https://app.mylabelmaker.com/?canvas=1&look=premium-masculine&w=2.5&h=4&title=SPOT&kicker=SHAMPOO&body=Water%2C%20Sodium%20Coco-Sulfate%2C%20Cocamidopropyl%20Betaine%2C%20Glycerin%2C%20Fragrance.&net=NET%208%20FL%20OZ%20(237%20mL) Share card: the same query on https://mylabelmaker.com/make?... Copy keys: title (brand or product name), kicker (SHAMPOO, BAR SOAP), body (ingredients or details), net (NET 8 FL OZ), brand, value (QR URL or barcode), img (https image URL), icon (drop, star, heart, diamond, circle). Size: w and h in inches. Default 2.5 x 4. Typical bottle 2.5x4, jar lid 2x2, wrap 4x3, shipping 4x6. Color overrides on a look: bg, ink, accent (hex, with or without #). ## Full canvas (place every object) Use this when they want a specific layout. Coordinates x,y,w,h are percent of the label (0–100). Font size s is pixels on the canvas (a 2.5x4 in label is about 250x400 px: title 32–42, kicker 11, body 10–12). canvas=1&w=2.5&h=4&bg=1c1917&name=Spot &el=s:rect;x:0;y:0;w:100;h:3;c:b8a47a &el=text:SPOT;x:8;y:16;w:84;h:16;s:40;f:Oswald;c:f5f0e8;a:c;b;ls:4 &el=text:SHAMPOO;x:8;y:34;w:84;h:6;s:11;f:Montserrat;c:a8a29e;a:c;ls:4 &el=s:line;x:30;y:42;w:40;h:1;c:b8a47a &el=text:Water%2C%20glycerin.;x:10;y:48;w:80;h:36;s:11;f:Lato;c:a8a29e;a:c &el=i:https://example.com/logo.png;x:40;y:6;w:20;h:10 Repeat el= for each object. Types: text (or t), s/shape (rect, round, circle, ellipse, line, vline, triangle, star, heart, drop, diamond), i/image (https URL), q/qr, b/barcode. Text fields: v or the word after text:, x y w h, s size, f font, c color, a l/c/r, b bold, i italic, u underline, ls letter-spacing, r rotation. JSON power form (encodeURIComponent the object): spec={"w":2.5,"h":4,"bg":"#1c1917","look":"premium-masculine","els":[{"t":"text","v":"SPOT","x":8,"y":16,"w":84,"h":16,"s":40,"f":"Oswald","c":"#f5f0e8","a":"c","b":1}]} ## Fonts you may use Sans: Inter, Poppins, Raleway, Work Sans, DM Sans, Barlow, Outfit, Rubik, Josefin Sans, Figtree, Manrope, Plus Jakarta Sans, Karla, IBM Plex Sans, Space Grotesk, Urbanist, Archivo, Quicksand, Montserrat, Lato, Oswald, Roboto, Open Sans, Source Sans 3, Nunito, Arial, Helvetica. Serif: Playfair Display, Lora, Libre Baskerville, EB Garamond, Cormorant Garamond, Fraunces, Source Serif 4, Crimson Pro, Spectral, Newsreader, Instrument Serif, DM Serif Display, Cardo, Merriweather, Georgia, Garamond, Palatino Linotype, Times New Roman, Calisto MT. Mono: Roboto Mono, IBM Plex Mono, JetBrains Mono, Source Code Pro, Space Mono, Courier New. Display / script: Cinzel, Abril Fatface, Archivo Black, Staatliches, Unbounded, Amatic SC, Anton, Bebas Neue, Alfa Slab One, Bungee, Righteous, Russo One, League Spartan, Comfortaa, Special Elite, Fredoka, Dancing Script, Pacifico, Caveat, Great Vibes, Permanent Marker, Satisfy, Lobster, Allura, Sacramento, Shadows Into Light, Indie Flower, Congenial Semibold, ALGERIAN, Nyala, Imprint MT Shadow, Impact. ## Spreadsheet, numbers, dates, ZPL Spreadsheet (one label per row). Prefer `rows` in MCP, or a Google Sheets URL: `?canvas=1&sheet=https://docs.google.com/spreadsheets/d/…/export?format=csv&columns=sku,name` Or paste CSV / rows in the `spec` JSON (cap ~80 rows). Columns become `{{sku}}` `{{name}}` on the canvas. A CODE128 barcode uses the sku/barcode/upc column. They print all rows from the editor. Serial numbers: `add_number=1&prefix=SKU-&start=1&copies=50&pad=3` places `{{#}}` and a barcode. Dates: `add_today=1&add_use_by=1&use_by_days=14&date_format=YYYY-MM-DD`. ZPL: `?zpl-viewer=1&zpl=%5EXA...` or MCP `open_zpl_viewer`. Preview is a picture. Print sends the pasted job. Preferred: MCP `https://mylabelmaker.com/mcp` tools `make_label` / `edit_label` / `open_zpl_viewer`. ## Rules - URL-encode every value (encodeURIComponent). Spaces → %20. - Give the user the preview image and the editor link with the same query. - Image URLs must be https. If they have no file, skip img or use icon=drop. - Do not issue GS1 / UPC numbers. Encode only digits they already own. - Do not POST a design. There is no account. The URL is the design. - After load the editor strips the query so a refresh keeps their edits. - Prefer canvas=1 when they describe a look or a custom layout. Prefer ?template= when a catalog id matches the job. Preferred: connect MCP at https://mylabelmaker.com/mcp and call make_label / edit_label. Each edit is a new URL. Catalog: https://mylabelmaker.com/ai/catalog.json OpenAPI: https://mylabelmaker.com/openapi.json Facts: https://mylabelmaker.com/llms.txt