Restaurant Menu Widget Widget
Type your menu as plain lines and embed it as a menu that looks like it came from your printer: serif section headings, dotted price leaders, dietary badges that always carry their letters, a key, section shortcuts, search for long menus, and an allergen note worded on the UK Food Standards Agency model.
Live preview
Under the widget on your page: Powered by A2Z Tools
Embed code
<iframe src="https://a2z.tools/embed/w/restaurant-menu-widget" title="Restaurant Menu Widget by A2Z Tools" width="100%" height="1780" style="border:0;width:100%" loading="lazy" allow="clipboard-write"></iframe>
A plain iframe. Works everywhere, including site builders that strip scripts. Adjust height if your content needs more room.
<div data-a2z-widget="restaurant-menu-widget" data-height="1780"></div> <script async src="https://a2z.tools/embed.js"></script>
Adds a small script (what it does) that sizes the widget to fit its content, loads it lazily and keeps it isolated from your page's CSS.
Works with
How it works
Sections start with '## Starters' or '## Mains | 12:00 - 21:00' (the part after the bar becomes an italic note). Each dish is one line: name | price | description | tags. Prices may be a single number (4.50 or 4,50), variants such as '4.50 / 6.00', labelled variants such as 'Glass 6.50 / Bottle 24', or words such as Market price, which are shown as typed; currency signs you type are ignored and replaced by the currency you choose, formatted for its locale - £4.50 in en-GB, $4.50 in en-US, 4,50 € in de-DE. When every price on the menu is a whole number the decimals are dropped (£14 rather than £14.00). Tags are short codes: v vegetarian, vg vegan, gf gluten-free, df dairy-free, n contains nuts, s spicy, and * for a chef's pick; a star at either end of the dish name also works. Each tag becomes a small coloured badge with an icon and its letters, never colour or icon alone, and a key lists only the marks you used. More than three sections adds jump chips; more than 25 dishes adds a search box.
Method
- Line '## Name | note' = section; 'dish | price | description | tags' = dish (bars inside the last column are kept)
- Price cell split on '/'; each part = optional label + number (comma before 1-2 digits = decimal, before 3 digits = thousands)
- Displayed price = number formatted in the chosen currency and locale; 0 decimals when all menu prices are whole
- Tags: v, vg, gf, df, n, s, * (aliases vegan, vegetarian, gluten-free, dairy-free, nuts, spicy accepted); unknown words shown as plain labels (max 2)
Worked examples
Coffee with two sizes
Inputs: Flat white | Regular 3.20 / Large 3.80 | Double shot; currency GBP
Result: Regular £3.20 / Large £3.80
Each variant keeps its label and is formatted for en-GB pounds.
Whole-number menu in euros
Inputs: Prices 9, 14, 24 only; currency EUR; locale de-DE
Result: 9 €, 14 €, 24 €
No price has decimals, so the whole menu drops them; the German locale puts the euro sign after the number.
Thai green curry tags
Inputs: Thai green curry | 13.50 | Vegetables, jasmine rice | vg gf s
Result: Badges VG Vegan, GF Gluten-free, S Spicy; key lists the same three
Tags are shown in a fixed order and each badge carries its letters.
A menu display, not an allergen declaration: keep complete, current allergen information available for every dish.
Limitations
- Dietary marks are whatever the publisher types; the widget cannot verify recipes or cross-contact in a kitchen.
- No ordering, basket or online payment; for distance selling the FSA guidance also requires allergen information before purchase and at delivery, which this menu alone does not provide.
- Prices are displayed, not converted; a menu in one currency is not translated into another.
- Photos per dish are not supported, to keep the menu fast and readable on phones.
Where publishers use it
- A cafe's own website on Wix, Squarespace or WordPress, replacing a PDF menu that phones struggle to read
- A pub's Food page with separate lunch and evening sections and price variants for half portions
- A wine bar listing drinks by the glass and bottle with the same widget in the compact layout
- A food truck's link-in-bio page, updated weekly by editing the embed text
- A hotel restaurant page next to the Hotel Amenities widget and a booking button
Questions
What must a UK restaurant tell customers about allergens?
The Food Standards Agency's allergen guidance for food businesses says information on the 14 allergens in non-prepacked food can be given in writing (on a menu, chalkboard or information pack) or verbally, as long as a written notice in a clearly visible position tells customers how to get it. The widget's UK note does that job: it asks diners to tell staff about allergies before ordering and says full information on the 14 major allergens is available on request. You still need the information itself, accurate and up to date, behind that sentence.
Are the dietary badges an allergen declaration?
No. They describe each recipe as you write it (v, vg, gf, df, n, s), and the menu says so in small print under the key: marks cannot rule out traces from shared equipment. 'Contains nuts' covers only what you tag; the 14 UK allergens include celery, mustard, sesame, sulphites, lupin and molluscs, which a short badge set does not cover. Keep the full allergen matrix available for staff and customers.
How are prices shown in other currencies?
Choose the currency in the builder and the widget formats every number with Intl rules for its locale: 12.50 becomes £12.50 for GBP (en-GB), $12.50 for USD, €12.50 for EUR (en-IE) and $12.50 for AUD (en-AU), or 12,50 € if you also set a German locale. It does not convert between currencies - type the prices you actually charge.
Can I show half and full portions or glass and bottle prices?
Yes. Separate variants with a slash: '4.50 / 6.00' shows £4.50 / £6.00, and 'Glass 6.50 / Bottle 24.00' keeps the labels. Up to four variants per dish are shown, and each one wraps as a unit on narrow screens so a price never breaks across lines.
Is it accessible?
Badges are text first: each shows its letters (V, VG, GF) next to the icon and screen readers hear the full word, such as Vegan. Section headings are real headings, each section is a labelled list, the jump chips move keyboard focus to the chosen section, and the search box announces how many dishes match. Colour is never the only signal.
How long can the menu be?
Up to 400 lines, roughly 30 sections or 350 dishes. Very long text in a single field is cut at 120 characters for a dish name and 300 for a description. Long menus get a search box automatically once there are more than 25 dishes, and the section chips appear when there are more than three sections.
Sources
- Allergen guidance for food businesses - Food Standards Agency (GOV.UK) . Section 2.5 non-prepacked food: allergen information in writing, or verbally with a clearly visible written notice; the list of 14 allergens; section 3.2 distance selling. Last updated 17 July 2026; checked 2026-10-01.
Cite or recommend this tool
If you reference this tool in an article, course or documentation, these formats are ready to copy. They are optional - nothing is added to your site unless you paste it.
A2Z Tools Restaurant Menu Widget https://a2z.tools/embed/restaurant-menu-widget
<a href="https://a2z.tools/embed/restaurant-menu-widget">A2Z Tools Restaurant Menu Widget</a>
[A2Z Tools Restaurant Menu Widget](https://a2z.tools/embed/restaurant-menu-widget)
Restaurant Menu Widget by A2Z Tools - https://a2z.tools/embed/restaurant-menu-widget
Related widgets
-
A menu price for one dish from its plate cost, by target food-cost % or markup, rounded to a tidy ending.
-
Period food cost percentage from opening stock, purchases, closing stock and food sales, against a target.
-
Shows Open now or Closed and when you open next, in your business's own time zone.
-
Ingredient-by-ingredient batch cost, cost per serving and a suggested price, allowing for trim and waste.
-
Check-in and check-out times, grouped amenities with drawn icons, unavailable items and house rules.
-
Paste an ingredient list and rescale it by servings or a factor, with kitchen fractions for cups and spoons.