Overview
A bright, outdoors HTML template for an environmental charity: campaigns with their figures, donations that show what they do, petitions with live signatures, volunteer days with places and a carbon footprint calculator. Wildera ships three home pages, a light and a dark theme, right-to-left support, and logic that is worked out rather than typed in: what each campaign has raised today, every petition’s count climbing through the day, the next date of every volunteer day with its places left, the impact of a gift in trees, hectares and ranger days, monthly giving, the office open now and a shop that plants a tree for every few dollars.
What’s included
- 3 home pages, each with its own scroll moment: the Red List (six endangered and vulnerable animals, each status panel lifting off its portrait as you scroll), what a gift grows (the amount runs from $5 to $500 and the trees it plants grow on the hill) and the warming stripes (one stripe a year from 1880, arriving year by year)
- A light theme by default and the field at night 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 — Migrating Birds, a small flock drifting along the edges of the page titles and bands, and the footer’s Striped Earth, the globe wrapped in the warming stripes and turning — tinted by the theme colours
- The donation builder: once or monthly, five funds, suggested amounts or your own, the impact in the fund’s two kinds of work, the card fee covered on request, a tribute, three steps and a reference
- Campaigns on a yearly programme: raised today, percent, donors and days left from the date, with cause tabs, status, search and sort
- Petitions with signatures from the date that climb through the day, a sign form that adds you to the count everywhere, the latest signers and the next milestone
- Volunteer days by repeat rule with places left, a finder by kind and region and a three-step sign-up
- The carbon footprint calculator: home, travel, food and things in tonnes a year, against the average and the 2 t target, with the trees that would take it back
- Monthly giving: four Guardian tiers, monthly or yearly at 10% less, a three-step join
- The shop: categories, price filter, sort and search, the product page, bag, Guardian saving, code, free-shipping meter, tax, checkout with an order number and the trees it plants, wishlist
- Sign Up preloader, Regrow reveals (each photo uncovers behind a green edge growing up from the bottom), soft-rise copy and the paw print on hover
- About, impact report, team and profile, gallery, field notes with post formats, FAQ with search, account pages, coming soon, 404
- Fully responsive, W3C-valid, zero console errors
Getting Started
Thank you for choosing Wildera. Follow the steps below to get your site live.
1. Open locally
Unzip the downloaded package and open wildera/index.html in any modern browser (Chrome, Firefox, Edge,
Safari). No build tools or server are required — the field clock, the donation builder, the campaigns, the petitions,
the volunteer days, the calculator and the shop all work straight from the files.
2. Deploy to a server
Upload the contents of the wildera/ 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. The unit costs, funds, campaigns, petitions, volunteer days, carbon factors,
tiers and shop rules live in one place — see NGO Logic.
assets/img/ with your own photography at the
same dimensions for the best result.
File Structure
Below is an overview of the key files and folders included in this template.
index.html / homepage-2.html / homepage-3.html | Three home pages: The Wild (the Red List portraits), Give (what a gift grows) and Act (the warming stripes) |
about.html / impact.html | Who we are, how we work, milestones and the team; the year in figures, where every dollar went and the annual reports |
team.html / team-details.html | The team; one profile with the campaigns they lead and a question form |
gallery.html | Wildlife, wild places and people, with filter tabs and a lightbox |
faq.html | Questions by topic with search |
campaigns.html / campaign-details.html | Every campaign live, launching soon, funded or closed, with cause tabs, status, search and sort; one campaign with its figures, story, updates and gift box |
donate.html / monthly-giving.html | The donation builder in three steps; the four Guardian tiers monthly or yearly in a three-step join |
petitions.html / petition-details.html | Every petition with its signatures from the date, by cause and status; one petition with the sign form and the latest signers |
volunteer.html / volunteer-day.html | Volunteer days by kind and region with places left; one day with its next dates, a map and the three-step sign-up |
carbon-calculator.html | The carbon footprint calculator: home, travel, food and things, against the average and the target, the trees to take it back |
shop.html / product-single.html / cart.html / checkout.html / wishlist.html | The shop: filters, sort and search, the product, bag, checkout with the trees an order plants, wishlist |
blog.html / blog-details.html | Field notes with their post formats and search; a post with reading time, share and comments |
contact.html | Live office status, the contact form and the map |
account.html / login.html / register.html / forgot-password.html | The account (gifts, Guardian card, sign-ups, orders, details) and the login pages |
coming-soon.html / 404.html | Countdown page, error page |
sendmail.php | AJAX mail handler for the contact and comment forms (see Contact Form) |
assets/css/style.css | All custom styles, numbered Table of CSS (16 sections) |
assets/css/responsive.css | Desktop-first breakpoints 1399 / 1199 / 991 / 767 / 575, plus wide screens from 1600 and 1960 |
assets/css/style.rtl.css / responsive.rtl.css | The right-to-left twins (see RTL) |
assets/css/plugins/ | Bootstrap (LTR and RTL), Swiper, Fancybox (vendor CSS) |
assets/js/main.js | All custom scripts, numbered JS INDEX (33 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.css | Font Awesome Free, loaded locally |
Folder Structure
The package unzips to two folders: Documentation/ (this guide) and wildera/, the template.
Every page sits in the template’s root; everything the pages load sits under assets/:
wildera/
├── *.html the 32 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
│ ├── 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 (33 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/ 18 files
├── decor/ 1 files
├── faces/ 5 files
├── field/ 11 files
├── flags/ 6 files
├── gallery/ 6 files
├── icons/ 44 files
├── logo/ 5 files
├── menu/ 3 files
├── places/ 21 files
├── shop/ 11 files
├── team/ 6 files
└── wild/ 17 files
To publish the site, upload the contents of wildera/ 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
--wd-turq-rgb) — change both together.
--wd-white--wd-band--wd-turq--wd-turq-soft--wd-teal--wd-ink--wd-ink-deep--wd-coral--wd-text--wd-lineWhite is the page and the aqua band its quieter sections. Turquoise fills the buttons (with slate words), the progress bars,
the short rule under every title and the date tiles; teal ink is turquoise made dark enough for small text, the italic
eyebrows and the links. Slate sets the headings, the footer and the night bands; coral is kept for deadlines and the last
places. --wd-bg, --wd-surface, --wd-band, --wd-heading and
--wd-text are the semantic names the components use — the dark theme swaps those (see
Light & Dark Mode). The warming stripes use their own sixteen colours, blue to red, in
.ws-0 to .ws-15.
Fonts
Two Google Fonts are loaded in the head of each page: Merriweather (heavy headings, the italic eyebrows,
figures and quotes) and Raleway (body, navigation, buttons and forms). Swap them by editing the Google Fonts
link and the --wd-ff-display / --wd-ff-body variables.
Logo
The logo is a W drawn from four leaves, tip to tip, beside the word Wildera in Merriweather. It ships as ready-made PNG files
in assets/img/logo/:
logo.png— for light grounds: the white header and the light themelogo-light.png— for dark grounds: the header over the heroes, the footer and the dark themelogo-word.pngandmark.png— the word and the leaf W alone (the preloader’s campaign sign)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
Wildera opens light: the light theme is the default and needs no attribute. Every header (and the mobile menu) has a theme
switch that turns the lights down to the field at night. The choice is saved in the browser under the key
wildera-theme and applied by a one-line script in the <head> before the page paints, so a dark
visitor never sees a white flash. The switch sets data-theme="dark" on the <html> tag.
--wd-bg--wd-surface--wd-band--wd-heading--wd-text--wd-accent-text- Tokens — the dark values sit in one block,
[data-theme="dark"] { … }, right after:rootinstyle.css. Change a dark colour there. - Bands that stay coloured — sections with the class
is-night(the causes, the Guardians, the footprint, the footer) are slate in both themes;is-turqis the turquoise band with slate words. - White panels — the plates on the hero photographs and the calculator on its slate band take
wd-on-paperand keep their white and ink in both themes. - Icons — each illustrated icon ships in an ink and a light version, and the right one shows by theme and ground.
- 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.
NGO Logic
The figures on every page come from one data block, JS block 09 Wildera Data near the
top of main.js (var WILDERA). Edit it once and the figures, dates, places and totals follow.
Money is in US dollars; times are minutes after midnight (540 = 9:00 am); weekdays run 0 = Sunday to 6 = Saturday;
months 1 = January to 12 = December.
facts / income / spending | The organisation in figures (trees planted, hectares protected, campaigns won, rangers, supporters, volunteers, countries), last year’s income and the share of spending by kind. |
hours / closures | The office’s hours a weekday (null = closed; it rests on Saturday and Sunday) and the closure dates plus Thanksgiving. The open-now line, the hours lists and the volunteer days read them. |
units / funds / gifts / minGift / fee | The cost of one unit of each kind of work, the five funds with the two kinds each pays for, the suggested amounts once and monthly, the smallest gift ($5) and the card fee (2.9% + $0.30). |
campaigns | Each campaign’s start (month, day), length, goal, raised on day one, pledges a day, donors on day one and a day, cause, fund and photograph. |
petitions / milestones / signers | Each petition’s start, length, target, signatures on day one and a day, who it goes to and the ask; the milestones; the first names in the latest-signers lists. |
volunteer / fewPlaces | The volunteer days, weekly or on the nth weekday of the month (-1 = the last), with time, length, places, age, place and what to bring. |
carbon | The footprint’s factors: kg CO2e a kWh by grid and by heating fuel, a km by car fuel and public transport, tonnes a return flight, a year’s diet and shopping, the national averages, the target and the tonnes a tree takes up. |
stripes / stripesFrom / redlist / statuses | The warming series (hundredths of a degree a year from 1880, demo figures) and the Red List portraits with status, numbers in the wild and trend. |
tiers / yearlyDiscount | The Guardian tiers, a month’s gift each; paid yearly it is twelve months less 10%. |
team / voices / causes | The team, the supporters quoted on the homes and the six causes. |
cats / products / shop | The shop: 11 products in 4 categories; Guardians save 10%, the code WILD10 takes 10% off first, shipping is free from $60 (otherwise $6, express $14), tax is 7% and every $10 plants a tree. |
What a gift does
| Native tree planted | $2.50 each |
| Hectare protected for a year | $120 each |
| Ranger patrol day | $85 each |
| Kg of plastic out of the sea | $1.60 each |
| Person with clean water for a year | $30 each |
Campaigns on the calendar
The programme repeats every year, and each campaign is placed within half a year either side of today, so the site always has campaigns live, launching soon and just closed. Raised today is the amount on day one plus the pledges a day for every day (and hour) since the start, up to the goal; the card shows Funded at the goal, Closed after the end.
| Tiger Corridors | From 1 Sep for 120 days, goal $250,000, $41,000 on day one and $1,650 a day |
| Red Sea Reefs | From 15 Aug for 150 days, goal $180,000, $22,000 on day one and $980 a day |
| The Grevy's Zebra Count | From 5 Oct for 90 days, goal $95,000, $12,500 on day one and $760 a day |
| Cedar Creek Forest | From 20 Jul for 140 days, goal $320,000, $60,000 on day one and $1,900 a day |
| Clean Water For Ten Villages | From 20 Sep for 100 days, goal $120,000, $18,000 on day one and $1,100 a day |
| Polar Sea Ice Watch | From 1 Jun for 120 days, goal $140,000, $30,000 on day one and $1,050 a day |
| Flamingo Wetlands | From 10 Nov for 110 days, goal $85,000, $9,000 on day one and $640 a day |
| Community Wind For Schools | From 10 Apr for 130 days, goal $210,000, $35,000 on day one and $1,500 a day |
| Snow Monkey Forests | From 1 Dec for 120 days, goal $110,000, $14,000 on day one and $820 a day |
Petitions
Signatures are those on day one plus the signatures a day for the time since the start, counted to the minute, so a count
climbs while the page is open. Signing adds one, saved in the browser under wildera-signed-<slug>; every
card of that petition shows it. End Bottom Trawling In Marine Parks starts at 48,000 and gains 2,300 a day towards
250,000.
Volunteer days
Every day repeats on its own rule, so its next dates are always ahead of the visitor. The places taken come from a seeded hash of the date and the day, so every visitor sees the same figures:
| Tree Planting Saturday | The first Saturday of the month at 9 am, Cedar Creek Reserve, Oregon, 40 places a day, ages 12+ |
| Beach Clean-Up | The last Sunday of the month at 10 am, Ocean Beach, San Francisco, 60 places a day, ages 8+ |
| River Restoration Day | The third Saturday of the month at 9:30 am, Clackamas River, Oregon, 24 places a day, ages 16+ |
| Wildlife Survey Walk | The second Sunday of the month at 7 am, Nisqually Refuge, Washington, 16 places a day, ages 14+ |
| Seed Nursery Afternoon | Every Wednesday at 1 pm, Wildera Nursery, Portland, 18 places a day, ages 12+ |
| Repair Café & Swap | The second Saturday of the month at 11 am, Mission Library, San Francisco, 30 places a day, ages all |
The carbon footprint
Guardians and the shop
The bag, the wishlist, the code, the Guardian tick, the signatures and a carried gift are kept in the browser
(localStorage), so they follow the visitor from page to page. The first visit starts with a small demo bag and
wishlist; to start empty, set the two demo lists in doShop() (block
26 Shop) to []. Donations, monthly giving, sign-ups, petitions and checkout
confirm on screen with a reference — connect them to your own payment and CRM systems to take real gifts.
WebGL Layers
Two small WebGL scenes draw the moving layers: Migrating Birds — a flock that follows the boids rules (separation, alignment, cohesion), drifting to the right along the top and bottom edges of the page titles and bands, the copy in the middle left clear — and the Striped Earth — the globe in the footer, wrapped in one meridian stripe a year from the warming series and turning on its tilted axis. Each is one canvas:
<canvas class="wd-gl is-birds" data-gl="birds" aria-hidden="true"></canvas>
- Colours — each layer reads its colours and an opacity from CSS variables on its canvas or
section:
--gl-1,--gl-2,--gl-3and--gl-alpha. The theme switch repaints them. - 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)
Wildera 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) lists the languages that
read left to right and right to left. Choosing Arabic or Hebrew stores the language and the direction (keys
wildera-lang and wildera-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
Add dir="rtl" to the page’s <html> tag (and set lang to your language):
<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. Figures, dates, the warming stripes (a timeline from
1880 on the left) and the forest keep reading left to right.
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 33 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 Layers. The core every page shares: the Sign Up preloader, the header, the Regrow reveals, the theme and direction switch and the WebGL layers.
- 09–10 — Wildera Data, Field Clock. Wildera Data holds every figure; Field Clock works out the office open now, what each campaign has raised, every petition’s signatures through the day and the next dates and places of every volunteer day from the visitor’s date and time.
- 11–18 — Custom Select, Hero Sliders, Card Sliders, Accordion, Filter Tabs, Grid Search, Newsletter, Choice Cards. Shared components: selects, sliders, accordions, filters, search, forms.
- 19 — Scroll Moments. The three home pages’ scroll moments.
- 20–33 — Volunteer Days, Guardians, Campaign Browser, Petitions, Carbon Footprint, Contact Form, Shop, Account Forms, Donation Builder, Article Tools, Demo Forms, Launch Countdown, Milestones, FAQ Search. The feature pages: volunteer sign-up, monthly giving, the campaign browser, petitions, the carbon footprint, contact, the shop, accounts, the donation builder, the field notes, demo forms, the countdown, the milestones and the FAQ.
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.
wd-regrow to a picture’s wrapper so it uncovers behind the
green edge (Regrow), wd-fade to text so it rises softly into place, and wd-rule for the short
turquoise rule under a title. data-delay="0.2" staggers any of them. Add wd-paw to a card for the
paw prints on hover.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/ | Heroes, page titles and photo bands — 18 files: 2872×1346, 2809×1317, 2809×1432, 2817×1495, 1973×1019, 2809×1663, … |
img/decor/ | The hand that holds the preloader’s campaign sign (included) — 1 file: 354×788 |
img/faces/ | Round portraits for voices, signers and avatar groups — 5 files: 240×240 |
img/field/ | Volunteers, workshops and people in the field — 11 files: 900×612, 1300×671, 1125×550, 900×606, 1100×525, 1515×1434, … |
img/flags/ | The language picker’s flags (SVG, included) — 6 files: SVG |
img/gallery/ | Extra wildlife photographs for the gallery — 6 files: 900×621 |
img/icons/ | Illustrated line icons, each in an ink and a light version (included) — 44 files: 128×128 |
img/logo/ | Logo, light logo, wordmark, mark and favicon (included) — 5 files: 936×167, 64×64, 692×156, 493×387 |
img/menu/ | Home previews in the mega menu — 3 files: 560×350 |
img/places/ | Wild places, climate and clean energy — 21 files: 1300×671, 1100×550, 900×606, 800×541, 1386×933, 1100×526, … |
img/shop/ | The shop’s goods — 11 files: 600×839, 900×1103, 900×1109 |
img/team/ | The team’s portraits — 6 files: 891×680, 778×781, 1048×1048, 540×539 |
img/wild/ | Wildlife: the Red List portraits, campaigns and posts — 17 files: 1300×843, 1300×671, 900×606, 1300×840, 1300×938, 900×607, … |
The logo files, the illustrated icons, the preloader’s hand 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 and the comment form post to sendmail.php, a lightweight AJAX mail handler. The success or
error message appears under the button without reloading the page. The newsletter, join, donation, monthly giving, petition,
volunteer sign-up, checkout, account, 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, replaceYOUR_RECAPTCHA_V3_SECRET_KEYwith 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: Merriweather, Raleway
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.