A restaurant site in Tailwind: menu with anchor sections, table booking form, gallery, hours and contact, plus a private-dining page and a 404 in Pro. Schema.org markup for the venue and the menu.
A shop site with a counter price list, a week of dated events and opening hours, in a 1970s ledger-book style: warm paper, oxblood ink, dotted-leader rows, squared corners. Plain HTML and one stylesheet, no images, no build step.
The home page and its CSS — enough to publish a one-pager. A credit link stays in the footer.
Every page, the Pro-only pages, the source files, no attribution, and 12 months of updates and email support.
Use it in unlimited personal and commercial projects, including client work.
Do not resell the template itself, alone or in a bundle.
A small shop with a counter, a programme of evenings, and hours that change on Sunday. The three things a visitor wants are the price list, what is on this week, and whether you are open — so those are the first three things on the page, in that order, above anything about the shop’s history.
It suits a café, a bakery, a bookshop, a bike workshop, a record shop: anywhere with a short list of prices and a handful of dated events.
The style is a 1970s annual report. Warm paper rather than white, oxblood rather than blue, and rules instead of shadows. Three decisions carry it:
border-radius, not once.Keep those and you can change everything else. Change --brand alone and the logo square,
the section numbers, the links, the newsletter band and the 404 numeral all follow.
The signature row is a label, a run of dots, and a figure — the way a menu or a balance sheet sets its numbers:
<ul class="leaders">
<li><span>Filter coffee, Kenyan</span><span class="fill"></span><span class="figure">£3.10</span></li>
</ul>
The middle span stretches, so the figures stay in a column however long the labels get. The counter, the opening hours and the ticket tiers on the events page are all the same row.
Nothing is loaded except the two fonts. Every photo slot is a striped box carrying a
monospace label that names what belongs in it — book cover, loaf photo,
map embed — 14 montrose st. That means the template looks finished before you have
photographs, and it tells whoever fills it in what to shoot.
Swap in an <img> at the same box when the pictures arrive.
The programme page puts one event per row: a bordered date chip, the title, one line of
detail, and the price with what is left beside it. Anything longer sits in a native
<details> — so the page opens short, and nothing needs JavaScript to expand.
Warm brown, not grey — a shop after closing, not a code editor. The switch writes
data-theme on <html> and remembers the choice. It is the only JavaScript in the
template, eighteen lines; delete it and the site stays in the light palette, which is a
fine fallback rather than a broken one.
Plain HTML. Open index.html and type. If you would rather keep the header and footer in
one place, edit src/pages/ and run node build.mjs — twenty lines, no dependencies, no
node_modules.
First release
A restaurant site in Tailwind: menu with anchor sections, table booking form, gallery, hours and contact, plus a private-dining page and a 404 in Pro. Schema.org markup for the venue and the menu.
A one-page SaaS landing template with pricing, testimonials and FAQ, plus a full pricing page and a 404 in Pro. Tailwind, dark mode, zero external dependencies.
A portfolio for a few pieces of work worth a story: work list, two case-study layouts, about, plus a contact page with an enquiry form and a 404 in Pro. Plain HTML and CSS, no build step, no JavaScript, dark mode follows the system.