Overview

Nutrela template home pages

Nutrela is a fresh, animated HTML5 template for healthy eateries, meal plan services and juice bars. Signika headlines and Open Sans text keep it bright and easy to read. Underneath, it runs real nutrition logic. Every calorie is worked out from the macros, and a bowl builder redraws the bowl with each choice. Weekly plans are priced by the meal, and delivery days follow each zone's cut-off. It ships with light and dark mode and WebGL layers - leaf veins growing in from the edges and a leaf breathing in light in the footer.

What’s included

  • 31 HTML pages, 3 unique home page designs
  • Light and dark mode on one switch, remembered between visits, with no flash on load
  • WebGL layers tinted by the theme colours: leaf veins and a breathing leaf
  • Real nutrition logic from one data block: macros, bowl builder, plan pricing and delivery days
  • A calorie calculator that suggests the nearest calorie band
  • One bag for dishes, drinks, pantry products, bowls and cleanses
  • Three scroll moments that never pin the page
  • prefers-reduced-motion support for accessibility
  • CSS-variable design tokens for both themes
  • Working PHP form handler with optional invisible reCAPTCHA v3
  • Fully responsive, zero console errors
  • Well-commented code with a numbered JS index
  • Documentation included
📄 31 HTML files

Getting Started

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

1. Open locally

Unzip the package and open nutrela/index.html in any modern browser (Chrome, Firefox, Edge, Safari). No build tools or server are required — every engine on the site works straight from the files.

2. Deploy to a server

Upload the contents of the nutrela/ folder to your hosting with an FTP client (such as FileZilla) or your hosting control panel. Open your domain and the template loads at once.

3. Customise

Custom styles live in assets/css/style.css and assets/css/responsive.css. Colours and fonts are CSS variables — see Colors & Fonts. Prices, hours and items live in one data block in assets/js/main.js (module 09, Nutrela Data) — see JavaScript Guide.

File Structure

404.htmlPage Not Found
about.htmlAbout Us
account.htmlMy Account
blog-details.htmlJournal Details
blog.htmlJournal
bowl-builder.htmlBuild A Bowl
cart.htmlCart
checkout.htmlCheckout
coming-soon.htmlComing Soon
contact.htmlContact Us
delivery.htmlDelivery Days
dish-details.htmlDish Details
faq.htmlFAQ
forgot-password.htmlForgot Password
gallery.htmlGallery
homepage-2.htmlHome 02
homepage-3.htmlHome 03
index.htmlHome 01
login.htmlLogin
meal-plans.htmlMeal Plans & Pricing
menu.htmlOur Menu
our-process.htmlOur Process
plan-details.htmlPlan Details
product-single.htmlProduct Details
register.htmlRegister
shop.htmlPantry Shop
start-plan.htmlStart Your Plan
team-details.htmlTeam Member
team.htmlOur Team
what-we-offer.htmlWhat We Offer
wishlist.htmlWishlist

Folder Structure

nutrela/
├── *.html  (the pages)
├── sendmail.php
├── documentation/
└── assets/
    ├── css/  fontawesome-all.css, plugins, responsive.css, responsive.rtl.css, style.css, style.rtl.css
    ├── fonts/  theme-icons
    ├── img/  bands, blog, bowl, cutouts, drinks, faces, flags, gallery, hero, icons, logo, menu, menu-shots, partners, shop
    ├── js/  main.js, plugins
    └── webfonts/  fa-brands-400.ttf, fa-brands-400.woff2, fa-regular-400.ttf, fa-regular-400.woff2, fa-solid-900.ttf, fa-solid-9

Colors & Fonts

The design is driven by CSS variables declared at the top of style.css. Change a token once and every section, button and card updates.

#52C4BA--nu-teal
#1E9C90--nu-teal-deep
#1E2B2B--nu-ink
#F79798--nu-salmon
#CDB0D2--nu-lilac
#B4EADF--nu-mint
#C6E7F2--nu-sky
#F0D3C8--nu-blush
#D6EFB3--nu-lime
#6DAB3C--nu-leaf
#F4BE00--nu-sun
#14302D--nu-evergreen
#0E2321--nu-evergreen-deep
#F7F4F0--nu-product
#FFFFFF--nu-bg
#FFFFFF--nu-surface

Fonts

Open Sans and Signika are loaded from Google Fonts in the <head> of every page. To change a font, replace the Google Fonts link and the font variables in style.css.

Light & Dark Mode

Every header (and the mobile menu) has a theme switch. The choice is saved in the browser under the key nutrela-theme and applied by a one-line script in the <head> before the page paints, so a visitor never sees a flash. The switch sets data-theme on the <html> tag.

  • Tokens — the other theme’s colours sit in their own [data-theme] block right after :root in style.css. Change a colour there.
  • WebGL layers — the layers read their colours from CSS custom properties (--gl-1 to --gl-3, --gl-alpha), so a theme change repaints them.
  • Start in the other theme — add data-theme="dark" to a page’s <html> tag; the switch still works and is still remembered.

JavaScript Guide

All custom behaviour lives in assets/js/main.js, split into numbered modules listed in the index at the top of the file. Plugins are in assets/js/plugins/ and load before it. Module 09 (Nutrela Data) is the one data block the pages and engines read: change a price, an hour or an item there and every page that shows it follows.

01Preloader
02Sticky Header
03Offcanvas Menu
04Scroll Reveals
05Back To Top
06Anchor Scroll
07Light & Dark Mode, Direction
08WebGL Layers
09Nutrela Data
10Kitchen Clock & Delivery Days
11Custom Select
12Counters & Rings
13Hero Sliders
14Card Sliders
15Accordion
16Filter Tabs
17Grid Search
18Newsletter
19Choice Cards
20Bowl From Above
21Nutrition Rings
22Fruit Cut-Outs
23Contact Form
24Bag, Wishlist & Checkout
25Account Forms
26Article Tools
27Demo Forms
28Launch Countdown
29Menu Filters
30Bowl Builder
31Meal Plan Pricing
32Start Your Plan
33Delivery Checker
34Juice Cleanse
35My Account
36Dish Details
37FAQ Search
Reduced motion: visitors who ask their system for reduced motion get every page in its finished state, without the scroll animations.

Images

The package ships with placeholder images at their real dimensions. Replace them with your own photos using the same file names, or update the src attributes. Images are grouped inside assets/img/:

img/bands/3 files: 1920×1100, 1920×1137
img/blog/9 files: 600×600, 1300×990, 1300×979, 900×556, 1300×975, 1300×988
img/bowl/29 files: 800×800, 1000×1000, 300×300
img/cutouts/8 files: 540×464, 520×297, 480×351, 620×327, 500×301, 480×374
img/drinks/16 files: 610×880, 1300×979
img/faces/8 files: 600×600
img/flags/6 files: SVG
img/gallery/12 files: 800×546, 1300×979, 610×880, 600×600, 1300×975
img/hero/9 files: 1920×1100, 1920×1101, 610×610, 975×975, 979×979, 610×880
img/icons/48 files: 128×128
img/logo/6 files: 64×64, 200×600, 326×120, 256×256
img/menu/24 files: 800×546, 1300×979, 600×450, 1300×1099, 600×600, 610×880
img/menu-shots/3 files: 979×979
img/partners/5 files: 150×150, 504×150, 145×150, 463×150, 263×150
img/shop/12 files: 1300×1300, 600×600, 1300×979, 610×609, 675×556, 620×620
img/team/8 files: 600×722, 600×600

Contact Form

The contact form posts to sendmail.php, a lightweight AJAX mail handler; the success or error message appears under the button without a reload. The other forms on the site are demo forms: they confirm on screen and are ready to connect to your own systems.

1. Set your email address

$email = 'example@example.com';

2. Upload to a PHP host

The form needs a server with PHP mail() support (virtually every shared host). It will not send from your own computer.

3. Optional: enable Google reCAPTCHA v3

Invisible reCAPTCHA v3 is built into the handler and stays dormant until the form sends a token. Create v3 keys in the reCAPTCHA admin console, replace YOUR_RECAPTCHA_V3_SECRET_KEY in sendmail.php, and load the reCAPTCHA script with your site key on the contact page.

Credits

This template is built with the following open-source libraries and resources.

  • Bootstrap 5.3.3
  • jQuery 3.7.1
  • Swiper 11
  • GSAP 3 + ScrollTrigger
  • Fancybox 3.5
  • Font Awesome Free
  • Google Fonts: Open Sans, Signika

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

Support

Questions or help with the template? Contact us at metropolitanhost.com. We answer the same business day, 9am–6pm ET.