Overview
QuickMunch is a complete HTML template for a food ordering and delivery
business — the public storefront customers order from, the account area they manage
their orders in, and two full back-office dashboards.
Every page is static HTML. There is no build step, no package manager and no server-side
language: open a file in a browser and it works. All content is written into the markup, so
changing a price, a dish or a chart means editing HTML rather than wiring up a database.
257HTML pages
33Storefront pages
13Account pages
152Dashboard pages
6Homepage layouts
What it covers
- Restaurant discovery — browse, filter, search, cuisine pages and a map-based location finder
- Ordering — menus with item options, cart, checkout, order tracking and per-order reviews
- Table service — reservations, a QR table-ordering page and a self-order kiosk screen
- Customer account — orders, favourites, addresses, payment methods, loyalty and notifications
- Admin dashboard — restaurants, orders, users, analytics, monetisation, content and settings
- Restaurant dashboard — menu, inventory, POS, kitchen display, devices, staff, payouts and analytics
- Design studio — TV menu boards, QR cards, printable menus and receipt layouts, each with a live preview
No jQuery. Every interaction is written in vanilla JavaScript. The only framework in
the package is Bootstrap 5.3.8, used for its grid and utility classes.
Getting started
Nothing needs installing. Pick whichever of the two suits you.
1. Open it directly
Unzip the package and double-click index.html. Every page, menu, chart and map
works straight from the file system in Chrome, Firefox, Edge and Safari.
2. Put it on a server
Upload the whole folder to any web host over FTP or your control panel's file manager.
There is no PHP, no database and no configuration file — the folder is the site.
Any static host works, including GitHub Pages, Netlify and Cloudflare Pages.
Map tiles need a connection. Maps draw their background tiles from OpenStreetMap at
runtime, so those areas stay blank while offline. Everything else is contained in the package.
3. Make it yours
- Set your brand colour — see Colours & branding.
- Replace
assets/images/logo.webp and assets/images/logo-light.webp.
- Edit page text directly in the HTML.
- Swap the photography in
assets/images/ for your own.
Any code editor will do. VS Code with the Live Server extension gives you automatic
reloading while you edit.
File structure
Storefront and account pages sit at the root. Everything else is grouped in two folders.
quickmunch/
├── index.html Homepage (marketplace layout)
├── *.html Storefront pages - 33 in total
├── client-*.html Customer account pages - 13 in total
│
├── dashboard/
│ ├── admin/ Platform administration - 83 pages
│ │ └── previews/ Live design-studio previews
│ └── restaurant/ Restaurant back office - 69 pages
│ └── previews/ Live design-studio previews
│
├── assets/
│ ├── css/ 26 stylesheets, 10 of them RTL builds
│ ├── icon-fonts/ Font Awesome, stylesheet and faces
│ ├── images/ 1,290 images
│ ├── js/ 88 modules, one per feature
│ ├── libs/ 25 third-party libraries, one folder each
│ ├── fonts/ 17 self-hosted font files
│ └── video/ 7 clips
│
└── documentation/ This file
Stylesheets
| File | Loaded by |
| app.min.css | Every page — the entire design system |
| libs/bootstrap/bootstrap.min.css | Every page — grid and utilities |
| fonts.css | Every page — self-hosted typefaces |
| icon-fonts/font-awesome.css | Every page — icon set |
| tv.css, qr-card.css, print-menu.css | Design studio editors and previews |
| pos.css, kiosk.css, pay.css | POS, kiosk and payment screens |
| *.rtl.css | Right-to-left builds of the above |
app.css is the readable source and app.min.css is what the pages
load. Edit the source and minify it into place — or edit the minified file directly if you
are only changing a value or two.
Storefront pages
Six homepage layouts are included. Point your domain at whichever you prefer by renaming it
to index.html.
| Page | Purpose |
| index.html | Homepage — marketplace layout |
| cuisine-spotlight.html | Homepage — organised by cuisine |
| restaurant-spotlight.html | Homepage — featured restaurants |
| hungry-man.html | Homepage — bold, appetite-led layout |
| order-builder.html | Homepage — build an order from the landing page |
| classic.html | Homepage — restrained, traditional layout |
| restaurants.html | Browse and filter every restaurant |
| restaurant-details-style1.html | Restaurant page — modern style |
| restaurant-details-style2.html | Restaurant page — classic style |
| cuisines.html | All cuisines |
| find-location.html | Map-based restaurant finder |
| deals.html | Offers and promotions |
| cart.html, checkout.html | Cart and multi-step checkout |
| order-track.html | Order tracking with delivery map |
| reserve.html | Table reservation |
| table.html | Dine-in ordering — where a table QR code leads |
| kiosk.html | In-venue self-order kiosk screen |
| blog.html | Blog index |
blog-details-style1.html blog-details-style2.html | Article layouts, modern and classic |
| about.html, contact.html, help.html | Company pages |
| partner.html, vendor-signup.html | Restaurant recruitment and sign-up |
| login.html, register.html | Sign in and account creation |
forgot-password.html reset-password.html | Password recovery, both steps |
| privacy.html, terms.html | Legal pages |
| unsubscribe.html | Email preferences |
Customer account
Thirteen pages, all prefixed client- so they sort together and never collide
with a storefront file name. client-account.html is the entry point.
| Page | Purpose |
| client-account.html | Account home |
| client-orders.html | Order history, active and past |
| client-order-review.html | Leave a review for a delivered order |
| client-reviews.html | Reviews the customer has written |
| client-favorites.html | Saved restaurants |
| client-reservations.html | Table bookings |
| client-addresses.html | Saved delivery addresses |
| client-payment.html | Payment methods |
client-loyalty.html client-perks.html | Points, rewards and member perks |
| client-notifications.html | Notification inbox |
| client-notification-settings.html | Notification preferences |
| client-two-factor.html | Two-step verification setup |
Dashboards
Two complete back offices share one sidebar design. A switcher at the top of the sidebar
moves between them, so both are reachable from any dashboard page. The same pair also appears
in the storefront's mega menu.
Admin — dashboard/admin/
83 pages for whoever runs the platform, in thirteen sections: Operations, Analytics,
Monetisation, Growth, Media, Content, Design templates, Communications, Blog, Appearance,
Settings, Logs and System.
Restaurant — dashboard/restaurant/
69 pages for a venue owner, in nine sections: Operations, Menu, Media, Devices,
Design & print, Finance, Analytics, Growth and Settings. The POS till, kitchen display,
floor plan and device management live here.
One page per type, not per record
The template ships one representative page for each kind of detail screen rather than one
per record — a single order detail, a single restaurant profile, a single menu-item form.
Every list links to that representative, which keeps the package small and leaves you one file
to restyle instead of dozens.
The screen editors are the exception. Each TV menu board under Design templates,
and each screen under Devices, has its own editor page carrying that board’s own layout,
so opening one from the gallery shows the columns, orientation and media it actually uses.
Design studio
The template galleries under Design templates and Design & print show live previews
rather than screenshots: each thumbnail is a real page rendered in an iframe, so videos play
and the slideshow board rotates through its slides. Those preview documents live in the
previews/ folder beside each dashboard.
Colours & branding
The palette is built from a single value. Every other shade — hovers, tints, borders,
gradients — is derived from it with CSS color-mix(), so changing one line
recolours the entire template.
Each page carries the brand colour in a small block in its <head>:
<style>:root{--qm-primary: #ff003d;}</style>
Change that value to your own colour. To apply it everywhere at once, use your editor's
find-and-replace across all .html files — the line is identical on every page.
Going further
assets/css/app.css defines 118 custom properties on :root. The
ones worth knowing:
| Property | Controls |
| --qm-primary | Brand colour, and every shade derived from it |
| --qm-on-primary | Text colour used on brand-coloured surfaces |
| --qm-grad | The brand gradient on buttons and active states |
| --ink-900 … --ink-300 | Text and heading colours, darkest to lightest |
| --line | Border and divider colour |
| --ok, --warn, --danger, --info | Status colours for pills and badges |
| --r-sm, --r-md, --r-lg, --r-pill | Corner radii |
Logo
Replace assets/images/logo.webp and assets/images/logo-light.webp
(the light version is used on the dark dashboard sidebar). Keep the same file names and no
markup changes are needed. assets/images/favicon.png is the browser tab icon.
Editing content
All content is written into the HTML. There is nothing to import and no admin panel to log
into — open the page and edit the text.
- Text, prices, dish names — edit the markup directly.
- Photography — replace files in
assets/images/ keeping the same names,
or point the src at your own.
- Header, mega menu and footer — these repeat on every page. Edit one page, then
find-and-replace the block across the rest.
- Forms — every form is inert by design, so nothing submits or navigates away.
Add your own
action attribute, or wire the form to whatever service you use.
Images are WebP. Photographs use WebP for size, which every current browser supports.
JPEG or PNG work equally well if you prefer — just update the file extension in the markup.
Charts
Analytics screens use ApexCharts. Each chart reads its configuration from a
data-chart attribute on its own container, so the numbers sit in the HTML beside
the chart rather than in a separate script.
<div class="qm-chart"
data-chart='{"type":"area","height":260,
"colors":["#ff003d"],
"categories":["Mon","Tue","Wed","Thu","Fri"],
"series":[{"name":"Revenue","data":[420,510,470,660,720]}]}'>
</div>
Edit the series values to change what a chart shows. Charts that offer a period
selector carry a second attribute, data-ranges, holding one dataset per period;
assets/js/dashboard-charts.js swaps between them when a period is chosen.
Maps
Every map in the template — the location finder, contact page, delivery tracking and the
dashboard maps — is drawn by one shared engine, assets/js/qm-map.js, built on
Leaflet. The provider is chosen with a meta tag in the page head:
<meta name="qm-map-provider" content="osm">
The template ships with osm (OpenStreetMap), which needs no account and no API
key. The engine also understands mapbox and google; both need a key of
your own, added as <meta name="qm-map-key" content="…">.
Marker positions are written into the page. On the order tracking page, for instance, the
destination and the rider sit in a small config block:
window.QM_MAP = { destLat: 40.748554, destLng: -73.985663,
driverLat: 40.744900, driverLng: -73.990500 };
RTL & fonts
Right-to-left
Eleven mirrored stylesheets ship alongside the standard ones. To switch a page to RTL, set
the direction on the <html> element and load the .rtl.css build
in place of the default:
<html lang="ar" dir="rtl">
<link rel="stylesheet" href="assets/css/app.min.rtl.css">
Noto Sans Arabic is included and picked up automatically in RTL mode.
Typefaces
All fonts are self-hosted in assets/fonts/ — no external requests, and the
template works offline. Poppins carries the interface; Anton, Bebas Neue, Bitter, Cinzel,
Cormorant Garamond, EB Garamond, Oswald and Playfair Display are available for display
headings and the printable menu designs.
To change the interface font, edit the @font-face blocks in
assets/css/fonts.css and the font stack in assets/css/app.css.
Libraries
Everything below is bundled in the package. Nothing is fetched from a CDN, so the template
runs offline and makes no third-party requests other than map tiles.
| Library | Version | Used for |
| Bootstrap | 5.3.8 | Grid and utility classes |
| Font Awesome | 5 | Icons |
| ApexCharts | 3.42.0 | Analytics charts |
| Leaflet | 1.9.4 | Maps |
| SweetAlert2 | 11.7.27 | Confirmation dialogs |
| FilePond | 4.30.4 | File uploads, with five plugins |
| Cropper.js | 1.6.2 | Image cropping |
| flatpickr | 4.6.13 | Date and time pickers |
| FullCalendar | 5.11.5 | Reservation calendar |
| Quill | 1.3.7 | Rich text editing |
| Choices.js | — | Enhanced select inputs |
| noUiSlider | — | Range sliders |
| Pickr | 1.8.2 | Colour picker |
| html2canvas | 1.5.11 | Exporting designs as images |
| QRCode.js | — | QR codes for tables and payment |
| interact.js | 1.10.27 | Drag and resize on the floor plan |
| Panzoom | 4.6.1 | Pan and zoom on design surfaces |
| KioskBoard | 2.3.0 | On-screen keyboard for the kiosk |
Photography is licensed for use within this template. Replace it with your own before launch
if you would rather not ship the demo imagery.
Support
If something is not behaving as it should, or you would like a hand adapting a page, get in
touch through our ThemeForest profile and include the page name along with a description of
what you are seeing.
Support covers questions about the template, help with the included
files, and fixes for defects. It does not cover customisation work, third-party integration
or hosting setup — though we are always glad to point you in the right direction.
Thank you for choosing QuickMunch.