Overview

Daylia template home pages

An elegant, animated HTML template for all-day restaurants, brasseries and bars that serve from breakfast to late, in black and cream with a peach sun. Daylia ships three home pages, a day (light) and a night (dark) theme, right-to-left support, and restaurant logic that is worked out rather than typed in: the menu follows the clock, a sharing-plates planner for groups, event nights with the seats left, table booking by service and time, group booking with a deposit, and a shop for collection or delivery.

What’s included

  • 3 home pages, each with its own scroll moment: a clock whose hands sweep from 8 am to midnight while the menu under it changes service by service, sharing plates sliding to the middle of a table, and four glasses meeting in a toast
  • The menu follows the clock: breakfast, weekend brunch, lunch, dinner and the late bar, the one being served now opening first, with diet filters and search
  • Sharing plates: guests × appetite → the plates for the table, a spread drawn course by course, priced against the set Feast
  • Table booking in five steps: guests and a date, the services open that day with their free times, seating, details, confirm
  • Group booking with a deposit: the area (capacity and minimum spend), a menu per head, arrival, and the deposit and balance worked out
  • Event nights from repeat rules (supper club, DJ nights, jazz brunch, live music, wine nights) with the seats left and tickets
  • The doors, the service on now and the bar’s Golden Hour, live in every header
  • Day and night mode on one switch in every header, remembered between visits and applied before the page paints
  • Right-to-left stylesheets and a flag language picker in every header
  • WebGL Golden Hour light under the night bands and a disc turning from sun to moon in the footer
  • Day Cycle preloader, Awning Roll reveals, the awning-stripe hover, Swiper sliders, Fancybox
  • The shop: filters, sort and search, product, bag, coupon, free-delivery meter, tax, checkout with an order number, wishlist
  • About, our day hour by hour, team and profile, gallery, journal with six post formats, FAQ with search, accounts, coming soon, 404
  • Fully responsive, zero console errors
📄 30 HTML files

Getting Started

Thank you for choosing Daylia. Follow the steps below to get your site live.

1. Open locally

Unzip the downloaded package and open daylia/index.html in any modern browser (Chrome, Firefox, Edge, Safari). No build tools or server are required — the menus, the planner, both bookings, the events and the shop all work straight from the files.

2. Deploy to a server

Upload the contents of the daylia/ folder to your hosting provider using an FTP client (such as FileZilla) or your hosting control panel. Once uploaded, navigate to your domain and the template will load immediately.

3. Customise

All custom styling lives in assets/css/style.css (with a numbered Table of CSS at the top) and assets/css/responsive.css. Colours and fonts are controlled by CSS variables — see Colors & Fonts. Hours, services, dishes, plates, events, groups and products live in one place — see Restaurant Logic.

Tip: Replace the neutral placeholder images in assets/img/ with your own photography at the same dimensions for the best result. Portrait photos suit the arches and ovals; plates seen from above suit the sharing table.

File Structure

Below is an overview of the key files and folders included in this template.

index.html / homepage-2.html / homepage-3.htmlThree home pages: All Day on the night (the clock), Day & Table on cream with the wordmark centred (the sharing table), Bar & Late (the toast)
menu.html / brunch.html / bar-menu.htmlThe all-day menu with service tabs, diet filters and search; the weekend brunch; the bar and late menu with Golden Hour
sharing-plates.htmlThe sharing-plates planner and the sharing menu
book-a-table.html / group-booking.htmlTable booking in five steps; group booking with the area, the menu, the deposit and the balance
events.html / event-details.htmlEvent nights with the next dates and seats, the ninety-day calendar; the supper club with tickets
about.html / our-day.htmlThe story, the facts, the team and guests’ words; the day service by service with the doors and last orders
team.html / team-details.htmlThe team; a profile with skills and signature dishes
gallery.htmlGallery with filter tabs and a lightbox
faq.htmlQuestions by topic with search
shop.html / product-details.html / cart.html / checkout.html / wishlist.htmlOrder online: filters, sort and search, product, bag, checkout, wishlist
blog.html / blog-details.htmlThe journal with six post formats, an article with share and comments
contact.htmlContact cards with the doors’ live status, the week’s hours, the form and the map
login.html / register.html / forgot-password.htmlAccount pages
coming-soon.html / 404.htmlCountdown to the rooftop’s opening, error page
sendmail.phpAJAX mail handler for the contact and comment forms (see Contact Form)
assets/css/style.cssAll custom styles, numbered Table of CSS (18 sections)
assets/css/responsive.cssDesktop-first breakpoints 1399 / 1199 / 991 / 767 / 575, plus wide screens from 1600 and 1960
assets/css/style.rtl.css / responsive.rtl.cssThe right-to-left twins (see RTL)
assets/css/plugins/Bootstrap (LTR and RTL), Swiper, Fancybox (vendor CSS)
assets/js/main.jsAll custom scripts, numbered JS INDEX (36 blocks)
assets/js/plugins/jQuery, Bootstrap, Swiper, Fancybox, GSAP, ScrollTrigger
assets/img/Images, one folder per section (see Images)
assets/fonts/theme-icons/The sun and moon of the theme switch, loaded locally
assets/webfonts/ + assets/css/fontawesome-all.cssFont Awesome Free, loaded locally

Folder Structure

The package unzips to two folders: Documentation/ (this guide) and daylia/, the template. Every page sits in the template’s root; everything the pages load sits under assets/:

daylia/
├── *.html                              the 30 pages, all in the root (see File Structure)
├── sendmail.php                        the AJAX mail handler for the forms
└── assets/
    ├── css/
    │   ├── style.css                   all custom styles, numbered Table of CSS (18 sections)
    │   ├── style.rtl.css               the right-to-left twin of style.css
    │   ├── responsive.css              breakpoints 1399 / 1199 / 991 / 767 / 575
    │   ├── responsive.rtl.css          the right-to-left twin of responsive.css
    │   ├── fontawesome-all.css         Font Awesome Free, loaded locally
    │   └── plugins/                    vendor stylesheets (Bootstrap LTR + RTL, Swiper, Fancybox)
    ├── js/
    │   ├── main.js                     all custom scripts, numbered JS INDEX (36 blocks)
    │   └── plugins/                    jQuery, Bootstrap, GSAP, ScrollTrigger, Swiper, Fancybox
    ├── fonts/
    │   └── theme-icons/                the sun and moon of the theme switch
    ├── webfonts/                       Font Awesome Free font files
    └── img/                            images, one folder per section
        ├── banner/                      6 files
        ├── blog/                        7 files
        ├── decor/                       2 files
        ├── flags/                       6 files
        ├── gallery/                     30 files
        ├── glasses/                     4 files
        ├── hero/                        8 files
        ├── home/                        39 files
        ├── icons/                       22 files
        ├── logo/                        3 files
        ├── menu/                        3 files
        ├── shop/                        21 files
        └── team/                        10 files

Colors & Fonts

The whole design is driven by CSS variables declared at the top of style.css. Change a token once and every section, button and card updates. Colours used with transparency have an -rgb twin (for example --dy-peach-rgb) — change both together.

Peach (The Sun)--dy-peach
Sunset--dy-sunset
Apricot Ink (Text)--dy-apricot
Dawn (WebGL Morning)--dy-dawn
Night--dy-night
Night Panel--dy-panel
Cream Ground--dy-cream
Paper--dy-paper
Sand Band--dy-alt
Heading--dy-heading
Body--dy-text
Open Now--dy-open

Peach is the sun: the night buttons, the awning stripes, the three stars under a title and the live dots. Apricot ink is its partner for small accent text on cream. Black and the night panel carry the night bands and the footer; cream and paper are the day grounds. --dy-bg, --dy-surface, --dy-heading, --dy-text and --dy-primary are the semantic names the components use — the night theme swaps those (see Light & Dark Mode).

Fonts

Two Google Fonts are loaded in the head of each page: Italiana (the thin display capitals of the titles, prices and figures) and Inter (navigation, buttons, labels and body). Swap them by editing the Google Fonts link and the --dy-ff-display / --dy-ff-body variables.

Logo

The logo is DAYLIA in thin capitals with a peach half-sun rising in the fork of the Y. It ships as ready-made PNG files in assets/img/logo/:

  • logo.png — for day grounds: the Home 2 header, the preloader by day, the 404 page
  • logo-light.png — for night grounds: the headers, the footer, the offcanvas, night mode
  • favicon.png — the browser tab icon

To use your own logo, replace these files; the header sizes the logo by its height.

Light & Dark Mode

Every header (and the mobile menu) has a theme switch. The choice is saved in the browser under the key daylia-theme and applied by a one-line script in the <head> before the page paints. The switch sets data-theme="dark" on the <html> tag.

Night Ground--dy-bg
Night Surface--dy-surface
Night Heading--dy-heading
Night Body--dy-text
Night Accent--dy-accent
  • Tokens — the dark values sit in one block, [data-theme="dark"] { … }, right after :root.
  • Bands that stay dark — sections with the class is-night (the heroes of Home 1 and 3, the services, the table, the toast, every page title, the footer) are night in both themes. A cream card inside one takes dy-on-day.
  • Day and night — in the day theme the cream sections and the night bands alternate; in the night theme the whole site is black, as the bar is after dark.
  • Start dark — add data-theme="dark" to the <html> tag of each page; the switch still works.

Restaurant Logic

The figures on every page come from one data block, JS block 09 Daylia Data near the top of main.js (var DAYLIA). Edit it once and the cards, hours, slots, seats, prices and totals follow. Prices are in US dollars; times are minutes after midnight (450 = 7:30 am; a closing time after midnight runs on, 1500 = 1:00 am); weekdays run 0 = Sunday to 6 = Saturday.

hoursThe doors for each weekday. The top bar, the footer, the contact and our-day pages show open now / opens at, and the week’s table marks today.
servicesThe five services (Breakfast, Weekend Brunch, Lunch, Dinner, Late Bar): each one’s window per weekday (null = not served), where the Home 1 clock switches to it (at) and the minutes before its end when the kitchen takes its last order.
goldenThe bar’s Golden Hour: weekdays 4:00 pm – 6:00 pm, everything at $8.
menuEvery dish: its service, course, price, notes and diet marks (v vegetarian, vg vegan, gf gluten-free).
sharingThe sharing plates by course, the three appetites (plates per guest: A Light Bite ×0.8, A Proper Meal ×1.1, A Feast ×1.4), the course cycle and the Feast ($48 a guest).
events / eventKindsThe event nights: a repeat rule — weekly on a weekday or monthly on the nth weekday — with the start, the end, the ticket and the seats a night.
tableA table: up to 8 guests, 15-minute slots, the last seating 45 minutes before a service ends, 30 days ahead, three seating areas.
groupsGroups of 9 to 60: the areas (capacity, minimum spend Sunday–Thursday / Friday–Saturday), the menus per head with their hours, and the deposit per guest ($15 Sunday–Thursday, $25 Friday–Saturday).
team / products / shop / postsThe team, the shop’s plates, sweets and bottled cocktails, its rules (free delivery from $60, otherwise $5.50, priority $12, tax 8.875%, coupon DAYLIA10 for 10% off) and the journal.

The doors

Monday7:30 am – 12:00 am
Tuesday7:30 am – 12:00 am
Wednesday7:30 am – 12:00 am
Thursday7:30 am – 1:00 am
Friday7:30 am – 1:00 am
Saturday9:00 am – 1:00 am
Sunday9:00 am – 12:00 am

The menu follows the clock

The service on now is the one that started last among those open; between services the next to start is named. The menu page opens on it (block 26); the Home 1 clock (block 20) sweeps 8 am → midnight on its section’s own travel and shows each service from its at minute.

Sharing plates

Plates for the table = guests × the appetite’s plates per guest, rounded up. The spread follows the course cycle, each course taking its plates in turn; a diet filter narrows the pool (block 25).

Worked example: 6 guests, a proper meal (×1.1): 6 × 1.1 = 6.6, rounded up to 7 plates — Salmon Toasts, Tomato & Herb Salad, Prawn Platter, Meatballs Al Pomodoro, Baked Gnocchi, Salmon Sashimi, Charcuterie Board — $127, $21 a guest; the Feast for the same table is $288.

Table and group booking

A service’s slots run every 15 minutes from its start to its last seating; a slot within half an hour of now is gone, and some are already full (a stand-in worked out from the date — replace slotFull() in block 24 with your own bookings). Both wizards (blocks 27 and 28) never block on Continue; Confirm checks the details and gives a reference.

Worked example: 16 guests in The Dining Room with The Daylia Feast ($48 a head): estimate $768. On a Tuesday the minimum spend is $900 and the deposit 16 × $15 = $240, balance $660 on the night; on a Saturday the minimum is $1,800 and the deposit 16 × $25 = $400, balance $1,400.

Event nights

Each event’s next 6 nights come from its repeat rule; seats taken per night are a stand-in worked out from the date, about one night in eight sold out — replace seatsTaken() in block 10. The calendar lists the next ninety days (block 29).

How the shop totals

Worked example: two Margarita Pizza ($36); delivery $5.50 (under $60); tax 8.875% $3.20 — $44.70. With the coupon DAYLIA10: $36 − $3.60, delivery $5.50, tax $2.88 — $40.78. Collected at the bar, delivery is free.

The bag, the wishlist and the applied coupon are kept in the browser (localStorage). The first visit starts with a small demo bag and wishlist; to start empty, set the two demo lists in doShop() (block 31 The Shop) to []. Checkout, both bookings and event tickets confirm on screen with a reference — connect them to your own systems to take real orders.

WebGL Layers

Block 08 draws two layers. Golden Hour — a low sun drifting along the horizon, long shafts of light through haze, the light turning slowly from a cool morning to a warm evening — sits under the night bands, every page title and the footer as one canvas:

<canvas class="dy-gl" data-gl="golden" aria-hidden="true"></canvas>

The disc in the footer is a 2D shader: the shadow line sweeps round a sphere’s face, turning it from a warm, granulated sun to a cratered moon and back: <canvas class="footer-disc" data-gl="disc">.

  • Colours — both read --gl-1, --gl-2, --gl-3 and --gl-alpha from the canvas: the ground, the cool morning and the warm evening for the light; the sun, the sunset and the moon for the disc.
  • Performance — a layer runs only while it is on screen and the tab is visible; reduced motion gets one still frame.
  • Remove one — delete the canvas; nothing else depends on it.

RTL (Right To Left)

Right to left comes from the stylesheets, not from separate pages: the language picker beside the light / dark switch lists the languages that read left to right and right to left. Choosing Arabic or Hebrew stores the direction (key daylia-dir) and reloads; the script in <head> then sets dir="rtl" and swaps the three stylesheets for the files named in their data-rtl attribute. Nothing is translated — you bring your own copy. To make a page right to left for good:

<html lang="ar" class="no-js" dir="rtl">
assets/css/plugins/bootstrap.min.css→ assets/css/plugins/bootstrap.rtl.min.css
assets/css/style.css→ assets/css/style.rtl.css
assets/css/responsive.css→ assets/css/responsive.rtl.css
Editing the styles: the RTL files are mirrored twins of the LTR files, made with RTLCSS, with a short RTL fixes block at the end of style.rtl.css. After changing style.css, regenerate the twin with npx rtlcss style.css style.rtl.css and copy the fixes block back.

JavaScript Guide

All custom behaviour lives in assets/js/main.js, wrapped in a jQuery IIFE and organised into 36 numbered blocks. Each block is a self-contained doSomething() function that skips pages where its section is not present:

  • 01 — Preloader
  • 02 — Sticky Header
  • 03 — Offcanvas Menu
  • 04 — Scroll Reveals
  • 05 — Back To Top
  • 06 — Anchor Scroll
  • 07 — Light & Dark Mode, Direction
  • 08 — WebGL Golden Hour & Sun Disc
  • 09 — Daylia Data
  • 10 — Day Clock
  • 11 — Custom Select
  • 12 — Meters
  • 13 — Hero Sliders
  • 14 — Card Sliders
  • 15 — Accordion
  • 16 — Filter Tabs
  • 17 — Grid Search
  • 18 — Newsletter
  • 19 — Choice Cards
  • 20 — The Clock
  • 21 — Dish Accordion & Dish List
  • 22 — The Table
  • 23 — The Toast
  • 24 — Table Slots & Quick Booking
  • 25 — Sharing Planner
  • 26 — Menu Board
  • 27 — Table Booking
  • 28 — Group Booking
  • 29 — Event Nights
  • 30 — Contact Form
  • 31 — The Shop
  • 32 — Account Forms
  • 33 — Article Tools
  • 34 — Demo Forms
  • 35 — Launch Countdown
  • 36 — FAQ Search
Reveals: add dy-awning to a photo frame (a striped awning rolls up off it), dy-fade to text and cards (a soft rise) and dy-stars for the three stars under a title. data-delay="0.2" staggers any of them. dy-awn-hover on a card adds the awning stripe on hover.
Scroll moments: the clock’s stage stays on screen with CSS position: sticky while its tall section scrolls; the table and the toast are scrubbed by their own section’s travel. None pins the page.

Every animation respects prefers-reduced-motion: content appears in its final state.

Images

The download package ships with neutral placeholder images so you can see every layout at the correct dimensions. Replace them with your own photos using the same file names. Images are grouped inside assets/img/:

img/banner/Wide photo bands, strips and the video bands — 6 files: 2809×1024, 2809×777, 800×350
img/blog/Journal posts and article photos — 7 files: 1300×798, 1382×1561, 800×1040, 570×1040
img/decor/The head chef’s signature, in ink and in cream — 2 files: 1040×300
img/flags/The language picker’s flags (SVG, included) — 6 files: SVG
img/gallery/Gallery, event and band photography — 30 files: 1000×1000, 600×600, 1408×1408, 1485×1485, 1287×1287, 1386×1386
img/glasses/The four drawn glasses of the toast (Home 3) — 4 files: 420×960
img/hero/Home hero slides — 8 files: 1788×1178, 3106×1683, 2874×1557, 2810×1523, 2817×2869, 2816×1855, …
img/home/Home page, menu and service photos — 39 files: 800×350, 800×1047, 1000×1306, 800×800, 800×1000, 800×1025, …
img/icons/Line icons, each in an apricot and a peach ink — 22 files: 128×128
img/logo/Logo, light logo and favicon — 3 files: 64×64, 480×104, 479×104
img/menu/Home previews in the mega menu — 3 files: 560×350
img/shop/Shop product shots and product galleries — 21 files: 800×1067, 600×790, 600×800
img/team/The team’s portraits and guests’ faces — 10 files: 800×1176, 200×200, 144×144

The logo files, the line icons, the drawn glasses, the signature and the language flags are included and ready to use. All demo photography shown on the live preview is for preview purposes only and is not included in the download.

Contact Form

The contact forms and the comment form post to sendmail.php, a lightweight AJAX mail handler. The newsletter, table and group booking, ticket, checkout and account forms are demo forms: they confirm on screen and are ready to connect to your own systems. To activate the mail handler:

1. Set your email address

$email = 'example@example.com';

2. Upload to a PHP host

The form needs a server with PHP mail() support. Opened from your computer, it shows an “upload to a PHP-enabled host” notice instead.

3. Optional: enable Google reCAPTCHA v3

  • Create v3 keys for your domain in the Google reCAPTCHA admin console
  • In sendmail.php, replace YOUR_RECAPTCHA_V3_SECRET_KEY with your secret key
  • Add a hidden token field inside the form and load the reCAPTCHA script with your site key before </body>:
<input type="hidden" name="g-recaptcha-response" id="g-recaptcha-response">

<script src="https://www.google.com/recaptcha/api.js?render=YOUR_SITE_KEY"></script>
<script>
  grecaptcha.ready(function () {
    grecaptcha.execute('YOUR_SITE_KEY', { action: 'contact' }).then(function (token) {
      document.getElementById('g-recaptcha-response').value = token;
    });
  });
</script>

Credits

  • Bootstrap 5.3.3
  • jQuery 3.7.1
  • Swiper 11
  • GSAP 3 + ScrollTrigger
  • Fancybox 3.5
  • Font Awesome Free
  • RTLCSS
  • Google Fonts: Italiana, Inter

All plugin files and icon fonts are loaded locally. The only external requests are the Google Fonts stylesheet, the Google Maps embeds and the video popups.

Support

If you have any questions or need help with the template, please reach out through the marketplace where you purchased the template: open the item there and send us your question from its support page. We aim to respond within 24–48 hours.