Design a KDS screen layout
Build the kitchen-display card — pick fields, size and density — then assign it to your screen stations.
A KDS screen layout controls what shows on a kitchen-display ticket and how it's arranged. You build it right on the card itself — the same card the kitchen screen draws — dragging the real order number, table and dishes around, so what you build is what the kitchen sees.
The three parts of the card
The editor has three panes: Blocks on the left, the card in the middle, and the settings rail on the right.
The card in the middle is the real card, filled with a sample order. Click anything on it to change it; drag anything on it to move it. It has three parts, in the order they appear on a kitchen screen:
- Header — the coloured bar at the top of each ticket, shown once. Order-wide variables go here, plus your business and location details.
- Dishes — the first dish is the pattern every dish follows: drag its quantity, name, modifiers and notes to reorder them. Per-item variables go here. This part can't be removed: allergen pills, voided lines and cross-contamination warnings all live on the dish line.
- Footer — under the dish list, on the white part of the card. It takes the same variables as the header. Use it for things the kitchen reads second — covers, the server's name, a collection time.
Sections and columns
The header and footer are made of sections, like the ticket editor. A section is either One line (the classic header: things packed to the left, centre and right) or 1, 2, 3 or 4 columns of equal width, each a top-to-bottom stack. Drag a section shape from the Blocks pane onto the card, or click Add section at the bottom of the header or footer. Grab the handle beside a section to move it; click the handle to change its columns or remove it. Going down to fewer columns never loses anything — blocks from a column that goes join the last one.
Four columns on a narrow kitchen card are about 70 px each — right for short things like a table number, covers or a time. Use the Narrow / Wide switch above the card to check both ends of a real screen.
Drag a block from the Blocks pane into the column you want it in, or just click it and it lands next to whatever you have selected. Drag the blocks already on the card to move them, and use Remove block in the settings rail to take one off. A variable only lands where it makes sense, so you can't accidentally put an item variable in the header — if you try, the editor says so instead of doing nothing.
Text block adds your own wording, and can mix variables into it — e.g.
Table {{order.table}} · {{order.covers}}. Use the Insert a variable
picker in the settings rail rather than typing the code by hand.
To move a block without dragging, click it and use the Move arrows in the settings rail — left and right between columns, up and down the card (across the dishes too).
One card per table
If a screen groups a table's whole order onto one card, your header and footer still apply — the header replaces what normally sits in the coloured bar along the top, and the footer sits under the last course.
One card holds several rounds, so the three variables that describe a single round — time, order number and course — show the oldest round that's still cooking. That's the same round the card's own clock counts from, so the time you place always matches the colour of the bar it sits in.
Leave the header empty and the card keeps its built-in table name and clock; a card grouped by table always names its table.
For the full list of variables available in each part, see Screen layout fields.
Some variables replace an automatic badge
A few things already show on the card on their own: the Takeaway badge, the collection time, the course badge, the guest's note and their guest tags. Put one of those on the card yourself, as its own variable block, and the automatic version switches off — it shows only where you placed it, once. Leave it off and nothing changes. Click the block and the settings rail tells you which way round you are.
Naming one inside a Text block doesn't count. A line reading
Ready {{order.pickup_time}} fills in the time, but the automatic badge
stays, so the time shows in both places. Only a variable block moves a value.
Per-field and card-level controls
Click a block on the card and the settings rail shows its alignment (left, centre, right — in a one-line section this picks its slot), font size (Small, Medium, Large, Extra large) and Bold on or off — and, on a Text block, the wording itself. Use this to make, say, the order number and table large and bold so the kitchen reads them at a glance.
Shows as
A few variables can be written more than one way, because the form that reads well on its own is not the form that reads well inside a sentence. Select one and the rail offers a Shows as choice:
| Variable | Normally | Also available |
| --- | --- | --- |
| Covers | 4 covers | 4 |
| Date & time | 23/09/2026 17:42 | 17:42 · 23/09/2026 |
| Elapsed | 06:14 | 6m 14s |
| Takeaway number | #007 | 7 |
You pick the shape you can see, and the card changes as you pick it. Everything else has one form, so most blocks show no such choice.
Combined fields
Under Combined in the Blocks pane are three ready-made lines that put two values together:
- Table (covers) —
Table 6 (2) - Time ordered (elapsed) —
17:42 (6m 14s)
They are Text blocks that have already been written for you, so you can edit them, shorten them or delete half.
If you want one line saying where an order came from, you no longer need a
combined field for it — the Placed by variable does that on its own. It
reads QR, Takeaway, or the name of whoever took the order. The useful part is what happens when a
value is missing: the punctuation goes with it. On a takeaway there is no
table and no covers, so the whole line disappears rather than printing
Table (). On a QR order nobody rang it in, so there is no team member and
the line reads just Dine in.
That is the difference between a combined field and a column. Columns put two values side by side, each with its own size and alignment, and an empty one leaves a gap. A combined field puts them in one line of text that tidies up after itself. Use whichever suits the value.
The Card section sets four things for the whole ticket:
- Density — line spacing. Comfortable gives roomier padding; Compact tightens everything up to fit more tickets on screen.
- Group items by parent category — when on, the card's items are grouped under small headings taken from your top-level menu categories (e.g. Food then Drinks), in your category order. Items whose category can't be determined collect in a trailing Other group. Handy for a single station that receives both food and drinks. Off by default — the card stays a single flat list.
- Font scale — the base text size for the whole card: Small, Medium, Large or Extra large. The whole card scales together, so a screen a few feet from the line can be set Large or Extra large without breaking the layout. This is the single most useful control for readability.
- Show "Cancelled" banner — when on, a cancelled ticket shows a prominent red "Cancelled" banner so the kitchen can't miss it. Individual cancelled items always render struck through and dimmed (not hidden), so staff can see what was removed.
Check it before you assign
The card you are editing is the preview — there is no second copy to compare. Toggle it between Active and Cancelled sample data to check both states. Full screen gives the whole editor the window when you want more room.
The sample deliberately shows a worst-case ticket: one carrying a diner's declared allergy and a cross-contamination warning. Those always render and can't be removed, so the preview shows you the space they take before you meet one on a busy pass. For the final word, open the station's screen link on the actual kitchen device once the layout is assigned.
Order type switches the sample between the four ways an order reaches a kitchen: Dine in, Collection, QR and Bar tab. Each one is a real order of that kind, so the card changes as you switch — a dine-in has a table, covers and a course; a collection has a takeaway number and a pickup time instead, and no table at all; an online order is a table order the guest placed from their own phone, so it has a table but no till and nobody's name against it; a bar tab is named rather than numbered.
That is the honest picture, and it means no single order carries every variable. If a block you have placed shows nothing, switch the order type before assuming it is broken: a variable with nothing to say takes up no room on the card at all, which is exactly what a real kitchen wants. Between the four you can see every variable the editor offers.
Create and assign
- 1
Open Screen editor
Screen editor sits in the KDS section of the sidebar. You can also reach it from a station's settings.
- 2
Create a layout
Click New layout and pick a starting point — Standard (today's built-in card), Compact, Big kitchen or Minimal — each previewed exactly as the kitchen screen will render it. Name it and click Create & design. The editor opens on that layout.
- 3
Build it
Add sections, drag blocks into them, and adjust each one's look in the settings rail. The card updates as you go — then save.
- 4
Assign it to a station
Open a screen station and pick this layout in its Screen card layout setting. One layout can be assigned to many stations. Stations with no layout use the built-in default.
The list shows how many stations each layout is assigned to. Changes apply to assigned stations on their next screen load — no restart needed.
Related
- Screen layout fields — what each field is.
- Design a printer ticket — the other kind of layout.
- Set up kitchen stations — where to pick the layout.
- Pacing alerts: ready, late, and recall — how the elapsed-timer field colour changes.