Overview
A warm, animated HTML template for care homes, assisted living, nursing and palliative care, memory care and home care. Carelia ships three home pages, a light and a dark theme, right-to-left support, and care logic that is worked out rather than typed in: what each kind of care costs, which visiting slots are open, what is on in the house now, the next date of every event, seats left, days left on every appeal, and a shop with a bag, coupon, shipping and tax.
What’s included
- 3 home pages, each with its own scroll moment: A Day At Carelia (a sun crosses the day’s real timetable), Years Of Care (the year line lights while the families-cared-for figure counts) and Gathering (faces settle round the welcome film)
- 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 — a watercolour wash and the Running Stitch footer — tinted by the theme colours
- Care plans with prices from one data block and a cost estimator: care type, room and extras a month; respite by the day; home care by the hour
- Four-step Book A Visit wizard built on the weekly visiting plan, with the summary beside it
- Daily programme with what is on now and next; events with a month calendar and seat reservations
- Memory wall where families add a memory and a photo; volunteer sign-up that works out hours a year
- Giving: programmes with raised, goal and days left, a gift form with one-time or monthly gifts and an optional card fee
- The Carelia shop: filters, sort and search, product page, bag, coupon, free-shipping meter, tax, checkout with an order number, wishlist
- Caregivers with filters, stories, news with search, FAQ with search, family account pages, coming soon, 404
- Written With Care preloader, Album Place reveals, Swiper sliders and Fancybox video popups
- Fully responsive, W3C-valid, zero console errors
Getting Started
Thank you for choosing Carelia. Follow the steps below to get your site live.
1. Open locally
Unzip the downloaded package and open carelia/index.html in any modern browser (Chrome, Firefox, Edge,
Safari). No build tools or server are required — the estimator, booking, timetable, events, giving, memory wall and
shop all work straight from the files.
2. Deploy to a server
Upload the contents of the carelia/ 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. Prices, rooms, the programme, events, caregivers, appeals and products
live in one place — see Care Logic.
assets/img/ with your own photography at the
same dimensions for the best result. The round portraits in img/testimonials/ are PNGs; keep them square.
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: Care Home (A Day At Carelia), Nursing & Palliative (Years Of Care), Assisted Living & Community (Gathering) |
about.html | The home’s story with a year-by-year timeline, values, caregivers and accreditations |
services.html / service-details.html | Six kinds of care, a single service with what is included, a day in the wing and questions |
care-plans.html | Prices for every kind of care, the cost estimator, rooms with availability, costs and funding questions |
caregivers.html / caregiver-details.html | The care team with team filters and search, a caregiver profile |
book-a-visit.html | Four-step visit booking from the weekly visiting plan |
faq.html | Questions by topic with search |
activities.html | The daily programme with what is on now and next |
events.html / event-details.html | Events with filters and a month calendar, an event with seat reservations |
stories.html / story-details.html | People’s stories, a single story |
memory-wall.html | Memories families share, with a form that adds a card and its photo |
donations.html / donation-details.html | Programmes with raised, goal and days left; a programme with the gift form |
volunteering.html | Volunteer roles and a sign-up that works out hours a year |
shop.html / product-single.html / cart.html / checkout.html / wishlist.html | The Carelia shop: filters, sort and search, product, bag, checkout, wishlist |
blog.html / blog-details.html | News with search, article with reading time, share and comments |
contact.html | Contact cards with live visiting status, map and the contact form |
login.html / register.html / forgot-password.html | Family account pages |
coming-soon.html / 404.html | Countdown to the Garden Wing opening, 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 (18 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 (38 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 carelia/, the template.
Every page sits in the template’s root; everything the pages load sits under assets/:
carelia/
├── *.html the 33 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 (38 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
├── badges/ 5 files
├── banner/ 5 files
├── blog/ 16 files
├── care/ 4 files
├── causes/ 11 files
├── events/ 5 files
├── flags/ 6 files
├── home/ 13 files
├── icons/ 24 files
├── logo/ 4 files
├── memory/ 9 files
├── menu/ 3 files
├── shop/ 9 files
├── stories/ 7 files
├── team/ 4 files
├── testimonials/ 3 files
└── textures/ 2 files
To publish the site, upload the contents of carelia/ 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
--cl-coral-rgb) — change both together.
--cl-coral--cl-coral-text--cl-mint--cl-mint-text--cl-sun--cl-navy--cl-bg--cl-linen--cl-blush--cl-sand--cl-heading--cl-textCoral fills the buttons, tiles, date tags and the rule under every title; buttons carry navy text on coral, which reads
clearly for older eyes. Terracotta is coral’s partner for small text on light grounds, sage is mint’s. Navy is
the ink of the headings and the one night band on a page. White, linen and blush are the section grounds; the light footer
sits on sand. --cl-bg, --cl-surface, --cl-heading and --cl-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: Roboto (headings, body, navigation, buttons and
figures) and Sacramento (the handwritten script of the eyebrows, signatures and “read more”
links). Swap them by editing the Google Fonts link and the --cl-ff-body / --cl-ff-script variables.
Body text is 17px for comfortable reading.
Logo
The logo is the name Carelia in navy with a coral full stop and a small coral heart over the i. It ships as ready-made
PNG files in assets/img/logo/:
logo.png— for light grounds: the headers, the light footerlogo-light.png— for dark grounds: the navy headers and footers, dark modeseal.png— the round CARE WITH A KIND HEART stamp on the page-title bannersfavicon.png— the browser tab icon
The logo’s lettering appears only inside the images — the pages do not load its font. 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
carelia-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.
--cl-bg--cl-surface--cl-night--cl-heading- Tokens — the dark values sit in one block,
[data-theme="dark"] { … }, right after:rootinstyle.css. Change a dark colour there. - Bands that stay dark — sections with the class
is-night(A Day At Carelia, the story timeline, the estimate and visit panels, the navy footer) are dark in both themes. A light card placed inside one takescl-on-lightto keep its own ink. - Illustrated icons — each icon ships in a navy and an ivory ink; the right one shows by theme and ground on its own.
- 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.
Care Logic
The figures on every page come from one data block, JS block 09 Care Data near the
top of main.js (var CARE). Edit it once and the cards, prices, timetables, calendars and
totals follow. Prices are in US dollars.
schedule | The daily programme in minutes after midnight (450 = 7:30 am), with the place of each item. The timetable, A Day At Carelia and the “on now” line read it. |
services | The six kinds of care with their rate and unit: a month, a day (respite) or an hour (home care), the hours of support and the photo. |
rooms / extras | Room supplements a month (a shared companion suite costs less) with the rooms free this month; extras a month. |
visit | The visiting plan: the tour slots of each weekday in minutes (Monday, Tuesday, Wednesday, Thursday, Friday, Saturday) and how many days ahead a visit can be booked (21). |
caregivers | The care team: role, years, languages, skills and team (the filter tabs). |
events | Events with a repeat rule — weekly on a weekday, monthly on the nth weekday, or once on a date — plus seats and seats booked. |
causes | Appeals with raised, goal and an end (month, quarter or year — days left are counted to the end of the current one), plus what one gift buys for the impact line. |
tributes / stories | The memory wall’s cards and the people’s stories. |
products / shop | Shop products (price, struck old price, category, rating) and the shop rules: free shipping from $50, otherwise $6 (express $14), tax 7%, coupon CARE10 for 10% off. |
The cost estimator
A month of care is the care rate, plus the room’s supplement, plus the extras chosen. Respite is priced by the day for the length of the stay; home care by the hour for the hours a week, over 52 weeks and 12 months.
Booking a visit
The wizard lists the next open days from the visiting plan (no Sunday tours in the demo), drops today’s slots
that start within the hour, and shows one slot a day as already booked so the demo looks lived-in — remove that in
isTaken() (block 32 Visit Booking). Continue never blocks; Confirm checks the
details and gives a reference made from the date.
How the shop totals
CARE10: $22.00 − $2.20, shipping
$6.00, tax $1.39 — $27.19.The bag, the wishlist, the applied coupon and the memories families add 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 so every shop page
has something to show; to start empty, set the two demo lists in doShop() (block
25 Care Shop) to []. Checkout, visit booking, seat reservations and the gift
form confirm on screen with a reference — connect them to your own systems to take real orders and bookings.
WebGL Layers
Two small WebGL shaders draw the moving layers: the wash — soft coral and mint watercolour blooms with a paper grain (Home 1’s intro, coming soon, 404) — and the stitch — a coral thread sewn along the band into a cross-stitched heart (the footers, the story timeline on About, the raised-this-year band on Donations and the volunteers band). Each is one canvas:
<canvas class="cl-gl" data-gl="stitch" 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-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)
Carelia 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) beside the light / dark
switch lists the languages that read left to right and right to left. Choosing Arabic stores the language and the
direction (keys carelia-lang and carelia-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: sliders and every move that must mirror follow it
on their own. The month calendar keeps Sunday on the left and the day’s sun still rises in the morning.
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 38 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 Written With Care preloader, the header, reveals, the theme and direction switch and the WebGL layers.
- 09–10 — Care Data, Care Clock. Care Data holds every figure; Care Clock works out visiting hours, what is on now 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, counters, sliders, accordions, filters, search, forms.
- 20–22 — A Day At Carelia, Years Of Care, Gathering. The three home pages’ scroll moments.
- 23–38 — Gift Engine, Contact Form, Care Shop, Account Forms, Article Tools, Demo Forms, Launch Countdown, Our Story, Cost Estimator, Visit Booking, Daily Timetable, Events Month, Event Seats, Memory Wall, Volunteer Sign-Up, FAQ Search. The feature pages: giving, contact, shop, accounts, the cost estimator, visit booking, the timetable, events, seats, memory wall, volunteering, 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.
cl-place to a photo or card so it lands like a print laid into an
album, cl-fade to text so it fades up, cl-write to a script line so it writes on, and
cl-rule for the coral rule that draws under a title. data-delay="0.2" staggers any of them.data-year) while the families
figure counts; Gathering reads each face’s seat from data-x / data-y (percent of the stage)
and data-size. None of them pins the page.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/badges/ | Accreditation badges (Home 2, About) — 5 files: 323×96, 275×96, 314×96, 336×96, 282×96 |
img/banner/ | Wide page-title banners and photo bands — 5 files: 2813×1254, 3464×916, 3020×724, 3612×865, 3041×824 |
img/blog/ | News posts, heroes and mosaics — 16 files: 2817×2518, 2817×1649, 1300×1162, 1593×778, 662×662, 851×851 |
img/care/ | Care and activity photos — 4 files: 1161×680, 1762×1032 |
img/causes/ | Donation programmes — 11 files: 2817×1877, 800×533, 1300×866 |
img/events/ | Events — 5 files: 1478×854, 800×550, 1382×950, 1047×720, 800×456 |
img/flags/ | The language picker’s flags (SVG, included) — 6 files: SVG |
img/home/ | Home page photos and the role portraits — 13 files: 135×135, 1408×1683, 800×584, 1038×508, 838×1355, 600×970 |
img/icons/ | Illustrated line icons, each in a navy and an ivory ink — 24 files: 128×128 |
img/logo/ | Logo, light logo, seal and favicon — 4 files: 373×120, 64×64, 300×300 |
img/memory/ | Memory wall portraits and bylines — 9 files: 200×200 |
img/menu/ | Home previews in the mega menu — 3 files: 560×350 |
img/shop/ | Shop product shots — 9 files: 1000×1000, 800×800 |
img/stories/ | People’s stories — 7 files: 1300×922, 2817×1998, 1161×680 |
img/team/ | Caregivers and volunteers — 4 files: 800×567, 508×508, 1206×854 |
img/testimonials/ | Family voices (round portraits) — 3 files: 122×122 |
img/textures/ | Dotted world maps behind sections — 2 files: 1899×1131, 1920×955 |
The logo files, the illustrated icons, the accreditation badges, the language flags and the dotted world maps 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, callback, visit booking, gift,
checkout, seat reservation, volunteer, memory wall, 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: Roboto, Sacramento
- Logo lettering: Roboto Condensed
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.