Overview

Fieldora template home pages

An airy, botanical HTML template for growers’ collectives, veg box schemes, CSA farms, market gardens, beekeepers and small dairies. Fieldora ships three home pages, a light and a dark theme, right-to-left support, and box logic that is worked out rather than typed in: a weekly box built from this month’s harvest with swaps and extras, delivery days by ZIP code with a live weekly cut-off, skip and pause, a growing calendar for every crop, grower profiles on a county map, events with places left and a pantry shop with a bag, coupon and shipping.

What’s included

  • 3 home pages, each with its own scroll moment: the greenhouse roof opens over the crop, the season wheel turns month by month, the growers’ pins drop region by region on a drawn county map
  • Light and dark 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: a right-to-left language turns any page around
  • WebGL layers — Dappled Shade (vine-leaf shadows under a greenhouse roof) on the night bands and page titles, and a honeycomb frame whose cells fill with light in the footer — tinted by the theme colours
  • Box builder in five steps: S / M / L, swaps from this week’s harvest, honey / eggs / cheese, delivery by ZIP code and your details, priced a box and a month
  • Delivery days by ZIP code across 5 areas plus collection, each with its fee, its next four boxes and a live cut-off countdown
  • Manage My Box: the next eight boxes, skip any week, pause two, four or six weeks, kept between visits
  • Growing calendar of 38 crops, 32 of them in the box, by month, with kinds, search and the whole-year table
  • Eight grower profiles with filters and a drawn county map; the grower of every crop slides in on its card
  • Events dated from repeat rules with places left and booking; the packing shed’s live open status
  • The pantry: categories, price, sort and search, product page, bag, coupon, free-shipping meter, checkout with an order number, wishlist
  • Gallery with filters, our story, how it works, journal with search, FAQ with search, account pages, coming soon, 404
  • Greenhouse Panes preloader, Planting Rows reveals with twine rules, Swiper sliders and Fancybox popups
  • Fully responsive, W3C-valid, zero console errors
📄 31 HTML files

Getting Started

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

1. Open locally

Unzip the downloaded package and open fieldora/index.html in any modern browser (Chrome, Firefox, Edge, Safari). No build tools or server are required — the box builder, delivery check, skip and pause, calendar, events and pantry all work straight from the files.

2. Deploy to a server

Upload the contents of the fieldora/ 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, crops, growers, boxes, zones, products and events live in one place — see The Box Logic.

Tip: Replace the neutral placeholder images in assets/img/ with your own photography at the same dimensions for the best result. The produce in img/cutouts/ and the pantry shots in img/products/ look best as PNGs on a transparent ground.

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: Weekly Veg Box (the greenhouse roof opens), Greenhouse & Harvest (the season wheel turns), Honey, Dairy & Growers (grower pins drop on the county map)
veg-box.htmlBuild Your Box: size and rhythm, this week’s crops with swaps, honey / eggs / cheese, delivery by ZIP code, your details
this-week.htmlThis week’s harvest: what each size holds, the swaps, every crop with its grower, the week’s cut-off
box-plans.htmlThe three sizes with weekly and fortnightly prices, what each holds this month, the extras
delivery.htmlDelivery days by ZIP code: the area’s day, fee and next four boxes, lit on the county map
my-box.htmlManage My Box: the next eight boxes, skip any week, pause for two, four or six weeks
growers.html / grower-details.htmlThe growers with filters and the county map; one grower’s profile, crops and year
seasons.htmlThe growing calendar: a month picker, kinds and search, and the whole year table
events.html / event-details.htmlEvents with their next dates from repeat rules; one event with places left and booking
shop.html / product-single.html / cart.html / checkout.html / wishlist.htmlThe pantry: categories, price, sort and search, product, bag, checkout, wishlist
about.html / our-story.html / how-it-works.htmlThe collective, its history and the week from field to door
gallery.html / faq.htmlPhotographs with filters; questions by topic with search
blog.html / blog-details.htmlThe journal with search and post formats; an article with reading time, share and comments
contact.htmlContact cards with the shed’s live status, map and the contact form
login.html / register.html / forgot-password.htmlAccount pages
coming-soon.html / 404.htmlCountdown to the farm stand’s opening, error page
sendmail.phpAJAX mail handler for the contact form (see Contact Form)
assets/css/style.cssAll custom styles, numbered Table of CSS (17 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 (37 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 fieldora/, the template. Every page sits in the template’s root; everything the pages load sits under assets/:

fieldora/
├── *.html                              the 31 pages, all in the root (see File Structure)
├── sendmail.php                        the AJAX mail handler for the contact form
└── assets/
    ├── css/
    │   ├── style.css                   all custom styles, numbered Table of CSS
    │   ├── 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.min.css
    │       ├── bootstrap.rtl.min.css   Bootstrap for right-to-left pages
    │       ├── jquery.fancybox.min.css
    │       └── swiper-bundle.min.css
    ├── js/
    │   ├── main.js                     all custom scripts, numbered JS INDEX (37 blocks)
    │   └── plugins/                    vendor scripts
    │       ├── bootstrap.bundle.min.js
    │       ├── gsap.min.js
    │       ├── jquery-3.7.1.min.js
    │       ├── jquery.fancybox.min.js
    │       ├── ScrollTrigger.min.js
    │       └── swiper-bundle.min.js
    ├── fonts/
    │   └── theme-icons/                the sun and moon of the theme switch
    ├── webfonts/                       Font Awesome Free font files
    └── img/                            images, one folder per section
        ├── banner/                      4 files
        ├── blog/                        12 files
        ├── cutouts/                     37 files
        ├── faces/                       4 files
        ├── flags/                       6 files
        ├── home/                        24 files
        ├── icons/                       48 files
        ├── logo/                        7 files
        ├── map/                         2 files
        ├── menu/                        3 files
        ├── products/                    7 files
        ├── team/                        8 files
        └── tiles/                       4 files

To publish the site, upload the contents of fieldora/ to your web root. Photos keep their folder, file name and size when you replace them, so no page needs editing.

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 --fo-olive-rgb) — change both together.

Ink--fo-ink
Olive--fo-olive
Deep Olive--fo-olive-deep
Olive Text--fo-olive-text
Honey--fo-honey
Honey Text--fo-honey-text
White Ground--fo-bg
Linen--fo-linen
Cream (Home 3)--fo-cream
Sand--fo-sand
Night Bands--fo-night
Body--fo-text

Ink fills the buttons and the headings; olive is the accent — the twine under every title, the box sizes on the harvest cards, the map and the night-band highlights — with a deeper olive for small text. White and linen alternate as grounds; Home 3 sits on cream. --fo-bg, --fo-surface, --fo-band, --fo-heading and --fo-text are the semantic names the components use — the dark theme swaps those (see Light & Dark Mode).

Fonts

Two Google Fonts are loaded in the head of each page: Raleway (spaced capital headings, body, navigation, buttons and labels) and Cormorant (the italic lines above titles, prices and figures). Swap them by editing the Google Fonts link and the --fo-ff-head / --fo-ff-accent variables.

Logo

The logo is the FIELDORA wordmark in spaced Raleway capitals beside a small greenhouse gable with an olive seedling inside. It ships as ready-made PNG files in assets/img/logo/:

  • logo.png / logo-light.png — for light grounds and for dark grounds (the Home 3 header over the photograph, dark mode)
  • logo-footer.png / logo-footer-light.png — the footer lockup with the growers’ collective line
  • mark.png / mark-light.png — the gable alone, used by the preloader in each theme
  • favicon.png — the browser tab icon

The logo’s lettering appears only inside the images. To use your own logo, replace these files; the header sizes the logo by its height, so a wider or narrower file needs no CSS change.

Light & Dark Mode

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

Dark Ground--fo-bg
Dark Surface--fo-surface
Dark Band--fo-band
Dark Heading--fo-heading
  • Tokens — the dark values sit in one block, [data-theme="dark"] { … }, right after :root in style.css. Change a dark colour there.
  • Bands that stay dark — sections with the class is-night (the garden progress, the season wheel, the footer’s honeycomb band, the next-box card) are dark in both themes. A light card placed inside one takes fo-on-light to keep its own ink.
  • Line-art icons — each icon ships in an ink and a linen version; the right one shows by theme and ground on its own. The footer map and the preloader’s mark have their own dark files too.
  • Start dark — to open the site dark for first-time visitors, add data-theme="dark" to the <html> tag of each page; the switch still works and is still remembered.

The Box Logic

The figures on every page come from one data block, JS block 09 Collective Data near the top of main.js (var FIELD). Edit it once and the cards, prices, calendars, delivery days and totals follow. Prices are in US dollars; times are minutes after midnight (540 = 9:00 am); months are 1–12; weekdays 0–6 from Sunday.

hours / cutoffThe packing shed’s opening and closing time for each weekday (null closes the day: Sunday, Monday in the demo), and the weekly cut-off: changes close 2 days before each delivery, at 8:00 pm.
crops / boxCats / wheelEvery crop with its grower, the months it is picked, its picture, its unit and its rank — the packing order. The box draws from the kinds in boxCats; honey and dairy are extras. wheel names the crop shown for each month on Home 2.
boxes / frequency / addonsThe three sizes (crops, swaps, price), the rhythms (a box every week saves 5%), and the extras per delivery.
zones / pickupThe delivery areas: their day, fee, map regions and ZIP codes; and collection from the packing shed.
team / kinds / regionsThe growers (farm, kind, region, map position, portrait) and the map’s regions.
products / shopPantry products and the shop rules: free shipping from $40, otherwise $5 (express $12), coupon FIELD10 for 10% off.
events / demo / weekEvents with a repeat rule and places; the demo member for Manage My Box; the garden-progress figures.

This week’s box

The harvest of the current month, in packing order, fills the box: a small box takes the first 7 crops, a medium the first 10, a large the first 13; the rest of the month’s harvest are the swaps. Each box is the size’s price less the rhythm’s saving, plus the extras, plus the area’s fee; a month is that times the deliveries a month.

Worked example: a Medium Box ($32) every week (−5%), with a dozen eggs (+$7), delivered in Santa Rosa (+$3) = $40.40 a box, about $174.93 a month.

Delivery days

AreaDayFeeZIP codes
Petaluma & PenngroveTuesdaysFree94952, 94954, 94951, 94975
Santa Rosa & Rohnert ParkWednesdays$395401, 95403, 95404, 95405 …
Sebastopol & West CountyThursdays$495472, 95444, 95436, 95465 …
Sonoma ValleyFridays$495476, 95442, 95452, 95431 …
Novato & North MarinFridays$694945, 94947, 94949, 94998

The first box is the area’s next delivery day whose cut-off is still ahead; the top bar and the footer count down to the next cut-off. Manage My Box keeps its skips in the browser (fieldora-skips-v1) — connect it to your own subscription system to take real orders.

How the pantry totals

Worked example: Wildflower Honey, a Farmhouse Cheese and Pea Shoots ($24.00); shipping $5.00 (free from $40) — $29.00. With the coupon FIELD10: $24.00 − $2.40, shipping $5.00 — $26.60.

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 so every pantry page has something to show; to start empty, set the two demo lists in doShop() (block 31 Pantry Shop) to [].

WebGL Layers

Two small WebGL shaders draw the moving layers: shade — warm light falling through a greenhouse roof onto the night bands and the page titles, vine leaves swaying in front of it and the glazing bars throwing slanted shadows — and honeycomb — the footer’s brand object, a hive frame of hexagonal cells that fill with light one by one, glow, and empty again. Each is one canvas:

<canvas class="fo-gl" data-gl="shade" aria-hidden="true"></canvas>
  • Colours — each layer reads three colours and an opacity from CSS variables on its canvas or section: --gl-1, --gl-2, --gl-3 and --gl-alpha.
  • Performance — a layer only runs while its section is on screen and the tab is visible. Visitors who prefer reduced motion get one still frame. Without WebGL, the section’s own background shows.
  • Remove one — delete the canvas; nothing else depends on it.

RTL (Right To Left)

Fieldora is RTL-ready: the layout with its paddings and margins, the sliders and the animations all mirror. Right to left comes from the stylesheets, not from separate pages: the language picker (a flag and a code) in the top bar lists the languages that read left to right and right to left. Choosing Arabic stores the language and the direction (keys fieldora-lang and fieldora-dir) and reloads; the one-line script in <head> then sets dir="rtl" and swaps the three stylesheets for the files named in their data-rtl attribute before the page paints. Nothing is translated — you bring your own right-to-left copy. To make a page right to left for good:

1. Set The Direction

<html lang="en" class="no-js" dir="rtl">

2. Swap Three Stylesheets

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

The scripts read the direction from the dir attribute. The growing calendar, the month picker and the season wheel still read January to December, left to right.

Editing the styles: style.rtl.css and responsive.rtl.css are mirrored twins of the LTR files, made with RTLCSS. A few hand-made rules at the end of style.rtl.css (after RTL fixes) keep what must not mirror. If you change style.css, regenerate the twin with npx rtlcss style.css style.rtl.css and copy the RTL fixes block back to its end.

JavaScript Guide

All custom behaviour lives in assets/js/main.js, wrapped in a jQuery IIFE and organised into 37 numbered blocks (see the JS INDEX comment at the top of the file):

  • 01–08 — Preloader, Sticky Header, Offcanvas Menu, Scroll Reveals, Back To Top, Anchor Scroll, Light & Dark Mode, Direction, WebGL Textures. The core every page shares: the Greenhouse Panes preloader, the header, the Planting Rows reveals with the twine rules, the theme and direction switch and the WebGL layers.
  • 09–10 — Collective Data, Collective Clock. Collective Data holds every figure; Collective Clock works out the packing shed’s open status, the weekly cut-off, delivery days by ZIP code and the next date of each event.
  • 11–19 — Custom Select, Counters & Rings, Hero Sliders, Card Sliders, Accordion, Filter Tabs, Grid Search, Newsletter, Choice Cards. Shared components: selects, rings, sliders, accordions, filters, search, newsletter, choice cards.
  • 20–24 — Floating Produce, Greenhouse Roof, County Map, Harvest Engine, Season Wheel. The floating produce, the three home pages’ scroll moments (the greenhouse roof, the county map, the season wheel) and the harvest engine they share.
  • 25–37 — Box Builder, This Week, Delivery Check, Manage My Box, Box Plans, Contact Form, Pantry Shop, Account Forms, Season Calendar, Article Tools, Event Booking, Launch Countdown, FAQ Search. The feature pages: the box builder, this week, delivery days, manage my box, box plans, contact, the pantry, accounts, the season calendar, the article tools, event booking, the countdown and FAQ search.

Each block is a self-contained doSomething() function that safely skips pages where its section is not present — you can delete any block you do not need. Every animation respects prefers-reduced-motion automatically: content appears in its final state and the scrubbed scenes rest in place.

Reveals: add fo-plant to a card or photo so it is set into place like a seedling in a row, fo-rise to text so it rises softly, and data-twine on an empty span with the class fo-twine for the twine rule that draws under a title and ties its knot. data-delay="0.2" staggers any of them; cards in a row follow one another from the left on their own.
Scroll moments: the greenhouse roof sets --roof from 0 to 1 on its stage as it scrolls; the season wheel turns .wheel-ring a month at a time; the county map drops each region’s pins in the order of COUNTY_ORDER. None of them pins the page.
Countdown: the coming-soon page counts down to 10:00 am on the next 20 March, the first day of spring — no date to update. Change it in doLaunchCountdown().

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, or update the src attributes. Images are grouped inside assets/img/:

img/banner/Wide page-title banners — 4 files: 2809×1580, 2817×966, 2817×945, 2809×1609
img/blog/Journal posts and photo bands — 12 files: 2817×1508, 1300×696, 600×790, 800×967, 800×492
img/cutouts/Produce on a transparent ground: the harvest cards, the box, the season wheel and the floating produce — 37 files: 479×316, 315×448, 482×481, 775×776, 432×452, 565×583, …
img/faces/Round portraits for members’ quotes and avatar groups — 4 files: 240×240
img/flags/The language picker’s flags (SVG, included) — 6 files: SVG
img/home/Home and inner-page photographs — 24 files: 1100×1250, 800×1081, 1100×735, 2819×1917, 1100×748, 1440×781, …
img/icons/Line-art icons, each in an ink and a linen version (included) — 48 files: 128×128
img/logo/Logo, light logo, footer logos, mark and favicon (included) — 7 files: 256×224, 64×64, 595×124, 597×124, 577×88, 578×88
img/map/The footer’s county map, light and dark (included) — 2 files: 1062×982
img/menu/Home previews in the mega menu — 3 files: 560×350
img/products/Pantry product shots (honey jars, milk, cheese, propolis) — 7 files: 537×410, 380×426, 371×519, 366×520, 404×469, 300×843, …
img/team/The growers’ portraits — 8 files: 810×820
img/tiles/The category tiles on Home 2 — 4 files: 800×355

The logo files, the line-art icons, the county map 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 form posts to sendmail.php, a lightweight AJAX mail handler. The success or error message appears under the button without reloading the page. The newsletter, box builder, event booking, comment, checkout, login, register and forgot-password forms are demo forms: they confirm on screen and are ready to connect to your own systems. To activate the mail handler on your server:

1. Set your email address

Open sendmail.php and replace the placeholder recipient at the top of the file with your own 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 local computer or from a static-only host — there the form shows a friendly “upload to a PHP-enabled host” notice instead.

3. Optional: enable Google reCAPTCHA v3

Invisible reCAPTCHA v3 spam protection is already built into the handler. It stays dormant until the form submits a token — that is why no badge or checkbox appears out of the box. To switch it on:

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

<!-- before the closing </body> tag -->
<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>

Once the token field is present, sendmail.php verifies every submission with Google and rejects low-score (bot) requests.

Credits

This template is built using 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
  • RTLCSS
  • Google Fonts: Raleway, Cormorant

All plugin files and icon fonts are loaded locally. The only external requests are the Google Fonts stylesheet, the Google Maps embed 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.