← The library

Bunfire

Marketing site for a restaurant

Full template Members only Open the demo
Preview of the Bunfire template: the hero section of a restaurant site, a large burger photo, a forest-green heading and a lime button.

What it is

A restaurant site, complete: hero, categories, menu, reviews, booking banner, FAQ, footer. One page, one HTML file.

The design follows that of a commercial template, of which only the photos have been kept. The original code was minified, riddled with inline styles and opaque identifiers — impossible to learn anything from. All of it has been rewritten, block by block, with a comment above each one.

It's the more approachable of the two templates: half as much code as Havenwatt, and the same habits inside. Start with this one if you're just beginning.

What you change first

The colours — six lines

Right at the top of assets/css/style.css:

--color-primary:       #1f4d3a;  /* forest green: panels, headings */
--color-primary-dark:  #14382a;  /* text on the lime accent */
--color-accent:        #d7f25a;  /* lime: buttons, highlights */
--color-surface:       #f2f5ec;  /* page background */
--color-surface-light: #f7fbef;  /* text on dark panels */
--color-ink:           #12211a;  /* body text */

Change the lime accent for any other bright colour: buttons, highlights and category circles all follow, without touching anything else. It's the 60-30-10 rule from the “Visual direction” module, applied.

The name

Search for “Bunfire” in index.html — title, header, marquees, reviews, footer. No CSS class carries the brand name, unlike the original export: a find-and-replace can't break anything.

The fonts

Three roles, three variables: --font-heading, --font-body et --font-hand, the handwritten one for accents. To change them, drop the files into fonts/ and declare them in the same place as the others.

The twelve effects, and how they're built

All measured one by one in the original export — durations, curves, offsets, angles — then rewritten as readable CSS and JavaScript.

EffectWhereHow
Marqueeshero, band, footerCSS animation, number of copies and duration as variables
Scroll revealheadings, text, cardsIntersectionObserver, 3 variants and 5 offsets
Hero: zoom and blurphoto and buttonscale and blur returning to zero, button delayed by 300 ms
Mouse parallaxhero photothe JS writes the pointer position, the CSS transition smooths it
Buttonseverywherea dark disc rising, label flipping over
Category circlesBattle of the Burgersa fill rising behind the dish
Menu cardsCustomer Favoritesa cream panel sliding out, dish rotating by 10°
Falling labelsstatement bandfalling from the top, 7 angles and 7 delays
Review carouselBites Worth Talking Aboutnative scroll-snap: dragging, swiping and the keyboard all work without JS
FAQquestions<details> native, lime background when open

What you should know

  • No external requests. Self-hosted fonts, no CDN, no tracker. Nothing goes out to a third party, so there's nothing to ask consent for.
  • Scroll reveals can't hide the content. The hidden state only exists once the JavaScript has run. That's exactly the trap that made a section invisible in the original export.
  • Zero inline styles, zero inline scripts. The template honours the site's strict security policy — never drop the raw export of a visual tool next to it without checking this again.
  • Accessibility: skip link, menu state announced, visible focus, decorative marquees hidden from screen readers, a native FAQ that works without JavaScript, animations switched off if the system asks.
  • Responsive checked at 390 px, with no horizontal overflow.

What isn't perfect

Better said here than left for you to find out.

  • The photos come from the original template. The code is yours; for the visuals, check the licence or replace them before publishing a real site.
  • The copy is in English, as in the reference. That makes a ready-made first exercise: translating it in index.html without breaking anything.

Take it, open it, break it.

Bunfire is free. The full library — the other templates and the sixteen components — comes with the subscription, alongside the course.

Immediate access · No commitment · Cancel in one click