Skip to content

Label Layouts & Print Physics ​

Shelf ships eleven built-in physical label layouts across three tape widths, and every measurement below has already been checked against two printers' real dot pitch so a printed QR code actually scans when someone points a phone at it. This page is generated straight from that print-physics code β€” nobody typed these numbers into a table by hand, so a size below is wrong only if the code that prints the label is also wrong.

A few terms, in plain language: a QR's module is one of its small black/white squares β€” shrink it too far and a camera can't resolve individual squares any more. The quiet zone is the blank border a scanner needs around the code to know where it starts; a quiet zone with something printed into it is the single most common reason a QR that looks fine to the eye fails to scan. Footprint is the whole printed box (code + quiet zone); visible code is the scannable pattern on its own.

Scannability floors, by tape width ​

These are the numbers that matter when you're not sure a layout will scan reliably: the absolute smallest a QR module is allowed to be, the smallest size that's actually achievable once BOTH printers round it down to their own whole dots, and the size Shelf aims for by default (bigger scans from further away).

Tape widthAbsolute floorSmallest size safe on both printersDesign target
12mm0.4mm0.5mm10mm
25mm0.6mm0.649mm18mm
50mm0.9mm1.001mm34mm

Every built-in layout ​

12mm horizontal (12-h) ​

Small gear and cable reels on a wide sticking surface.

  • Tape: 12mm wide Γ— 42mm long
  • Brands: All brands
  • QR module: 0.487mm (~6 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 10.23mm (clears the 10mm target)
  • Carries: QR code, Asset ID caption, found-host line

12mm vertical (12-v) ​

Same content as 12mm horizontal, for a narrow vertical surface.

  • Tape: 12mm wide Γ— 42mm long
  • Brands: All brands
  • QR module: 0.487mm (~6 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 10.23mm (clears the 10mm target)
  • Carries: QR code, Asset ID caption, found-host line

12mm square (12-sq) ​

Gear too small for any caption text β€” scan only, nothing printed to read.

  • Tape: 12mm wide Γ— 12mm long
  • Brands: All brands
  • QR module: 0.487mm (~6 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 10.23mm (clears the 10mm target)
  • Carries: QR code

12mm continuous stack (Artefact only) (12-stack) ​

Cases identified over the phone as often as by camera β€” carries the speakable Shelf code and its barcode alongside the QR.

  • Tape: 12mm wide Γ— 68.92mm long
  • Brands: Artefact only
  • QR module: 0.487mm (~6 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 10.23mm (clears the 10mm target)
  • Carries: QR code, Shelf code (stacked), Barcode (Code 128), found-host line

25mm horizontal (25-h) ​

The default for most cases and flight packs.

  • Tape: 25mm wide Γ— 64mm long
  • Brands: All brands
  • QR module: 0.892mm (~11 printer dots at 313dpi), quiet zone 2 modules
  • QR visible code: 18.73mm (clears the 18mm target)
  • Carries: QR code, Asset ID caption, found-host line, phone, logo

25mm vertical (25-v) ​

Same content as 25mm horizontal, for a narrow vertical panel.

  • Tape: 25mm wide Γ— 58mm long
  • Brands: All brands
  • QR module: 0.892mm (~11 printer dots at 313dpi), quiet zone 2 modules
  • QR visible code: 18.73mm (clears the 18mm target)
  • Carries: QR code, Asset ID caption, found-host line, logo

25mm square (25-sq) ​

A compact square footprint where a horizontal strip won't fit.

  • Tape: 25mm wide Γ— 25mm long
  • Brands: All brands
  • QR module: 0.891mm (~11 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 18.72mm (clears the 18mm target)
  • Carries: QR code, Asset ID caption, found-host line

25mm pool code (25-pool) ​

The only layout "Get a label" prints β€” a bare, unassigned code for stock you'll link to an asset later.

  • Tape: 25mm wide Γ— 25mm long
  • Brands: All brands
  • QR module: 0.891mm (~11 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 18.72mm (clears the 18mm target)
  • Carries: QR code, Asset ID caption, found-host line

50mm horizontal (50-h) ​

Big cases and road cases with room for a full contact block.

  • Tape: 50mm wide Γ— 110mm long
  • Brands: All brands
  • QR module: 1.622mm (~20 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 34.06mm (clears the 34mm target)
  • Carries: QR code, Asset ID caption, found-host line, phone, email, address, stored location, logo

50mm vertical (50-v) ​

Same content as 50mm horizontal, for a tall panel.

  • Tape: 50mm wide Γ— 88mm long
  • Brands: All brands
  • QR module: 1.622mm (~20 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 34.06mm (clears the 34mm target)
  • Carries: QR code, Asset ID caption, found-host line, phone, email, address, stored location, logo

50mm square (50-sq) ​

Square 50mm where the full contact block doesn't fit β€” carries location and found-host instead.

  • Tape: 50mm wide Γ— 50mm long
  • Brands: All brands
  • QR module: 1.622mm (~20 printer dots at 313dpi), quiet zone 1 module
  • QR visible code: 34.06mm (clears the 34mm target)
  • Carries: QR code, found-host line, stored location, logo

The 12mm stack's barcode ​

The 12-stack layout is the one built-in that also prints a Code 128 barcode of the bare six-character Shelf code, underneath the QR. It runs rotated 90Β° β€” along the label's length instead of across its 12mm width β€” because at that width the bars would otherwise be too thin to scan (a straight, unrotated run needs about a 1-dot-wide bar on 12mm tape; rotated, it gets the label's whole running length to work with instead).

A six-character code encodes as 121 Code 128 modules (11 start + 6 Γ— 11 data + 11 check + 13 stop + 20 quiet zone). Each printer renders that at its own whole-dot module size:

PrinterModule widthBar height
Brother (313dpi)0.243mm6.82mm
Zebra (203dpi)0.25mm7.01mm

The barcode's printed width is sized to the wider of the two printers' whole-dot runs, so a label designed once prints correctly β€” and scans β€” on either printer.

Designing your own label ​

Beyond the eleven built-ins above, a workspace can design its own label layout in the browser (elements placed in millimetres, bound to live asset data). It is validated against the same physical floors as the built-ins before you're allowed to save or print it:

  • Text below 1.5mm is rejected outright β€” the built-ins can (rarely) go smaller for one hand-tuned, known-short string, but a custom label's author gets no such guarantee about their own content.
  • A Code 128 barcode shorter than 6mm tall is rejected β€” below that it prints but doesn't reliably scan.
  • A QR module is checked against both printers independently (a size can clear the floor on the Brother and fall under it on the Zebra once each snaps it down to its own whole dots) β€” the smallest size guaranteed to pass both, per tape width, is the "safe module" column in the table above.

Everything on this site is written by Artefact Group for our own installation. Shelf is a fork of the AGPL-3.0 licensed Shelf.nu project β€” for upstream’s own documentation, see docs.shelf.nu.