Repository navigation
Layout elements and limits
github-actions[bot] edited this page Nov 2, 2026
·
4 revisions
What a layout made in the Label designer can hold.
-
Text fields: up to six per layout, sent by your software with each update. Six fonts (and more as font files), aligned left, centre or right, up to three lines, in black, white, inverted or highlighted. Text that does not fit can drop to a smaller font or be cut with "…". A text field can also format a number such as a price: two, none or automatic decimals (
199,90,199,199,-), or rounded to whole kroner with,-(199,49shows as199,-, so use it only when your prices are whole kroner; needs an AP on 0.9.0 or newer), and a thousands separator (1 299,90), whatever form your software sends it in. A price is never cut short: if it fits in none of the element's fonts, the AP refuses the update, so make the box wide enough for your longest price. Text can be turned 90°, 180° or 270° (More, Turn in the designer), for example a narrow label reading up the edge of a 2.9" label; turned 90° or 270°, the box must be at least as wide as the font is high, and the lines run along its height. Needs an AP newer than 0.9.2. -
Fixed text that is part of the layout, such as "inkl. mva". It can hold date fields that the access point fills in when it draws the label:
{weekday}(Thursday),{date}(29 October 2026),{date_short}(29.10.2026) and{week}(44), for example "Week {week}" over a weekly menu or "Updated {date_short}". The date is the access point's, in the time zone set under Settings, General (UTC until you set one), and after a restart the label keeps what it shows until the access point knows the time. A label with them is redrawn once a day (once a week with only{week}), and its panel refreshes only when the text changed. At most 4 per layout; the designer has a button for each under the text and shows today's date in the preview. - Boxes in black or white, filled or only a border, with round corners if you like. A black area with white text is a black box with white text on it, or inverted text.
- Lines: straight or slanted, 1 to 16 px wide. A straight line is exactly as thick as its width, with square ends; a slanted line has round ends.
- Icons: small pictures, made from a PNG, JPEG, GIF or SVG with the Icon button in the designer. Dark pixels are drawn, up to 128 px.
- Barcode: one per layout, Code 128 or EAN-13, from a field.
-
QR code: one per layout, from a field, for example a link to the product. The box includes a white border (the quiet zone) of 2 modules on every side, drawn white even on a black background, so phones can read it. The box must be at least 25 px wide and high (21 modules of 1 px plus the border). The code grows with the text: if the text is too long for the largest code the box holds, the AP refuses the update with
422, and the designer says so under the preview.
The AP does not calculate anything, such as VAT: send both prices as fields.
- Up to 16 layouts per label model, in one layout file. The built-in
priceandtextcan always be used as well. - Up to 16 fields per layout, and about 250 characters of text in all per label (one field can hold 255, enough for a long link in a QR code), after æøå and the like are converted to Latin-1. An AP with 0.9.2 or older takes 6 fields and about 90 characters.
- The AP limits how many lines of text, boxes, lines and icons one layout can draw, and how big it is when compiled. These are limits of the AP, not of the label: the AP draws the picture, and the label only shows it. The status bar under the preview in the designer shows how much of each the layout uses, counted the same way as the AP does.
- The limits depend on the AP. An ESP32-C6 AP allows 32 lines of text, 20 boxes (inverted and highlighted text count as boxes), 16 lines and 8 icons per layout. An AP with PSRAM (ESP32-S3, ESP32-C5) allows twice as many, so a layout made for one can be too big for a C6. Once the designer is connected to your AP (Send to your AP), it shows that AP's limits; before that it shows the C6's, and says so.
When the AP cannot draw a layout, it refuses the file with 422 and the reason, the same message the designer shows under the preview.
| Layout | Fields |
|---|---|
price |
name, price, unit price; price_highlight draws the price inverted |
text |
up to four lines; frame draws a frame around the screen |
OpenESL is released under the MIT licence. These pages are made from the wiki/ folder in the repository: to fix something, send a pull request there, or open an issue.
Getting started
Access point
Labels
Layouts
Sending content
- Overview
- HTTP API
- esl-client
- Price lists from CSV
- Scheduled prices
- Home Assistant
- Weather on a label
Running it
- Dashboard
- Health and webhook
- Updating the AP
- Updating labels
- Upgrading from older versions
- Backup and restore
- Moving to a new AP
Help
Developers