Overview

Carelia template home pages

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
📄 33 HTML files

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.

Tip: Replace the neutral placeholder images in 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.htmlThree home pages: Care Home (A Day At Carelia), Nursing & Palliative (Years Of Care), Assisted Living & Community (Gathering)
about.htmlThe home’s story with a year-by-year timeline, values, caregivers and accreditations
services.html / service-details.htmlSix kinds of care, a single service with what is included, a day in the wing and questions
care-plans.htmlPrices for every kind of care, the cost estimator, rooms with availability, costs and funding questions
caregivers.html / caregiver-details.htmlThe care team with team filters and search, a caregiver profile
book-a-visit.htmlFour-step visit booking from the weekly visiting plan
faq.htmlQuestions by topic with search
activities.htmlThe daily programme with what is on now and next
events.html / event-details.htmlEvents with filters and a month calendar, an event with seat reservations
stories.html / story-details.htmlPeople’s stories, a single story
memory-wall.htmlMemories families share, with a form that adds a card and its photo
donations.html / donation-details.htmlProgrammes with raised, goal and days left; a programme with the gift form
volunteering.htmlVolunteer roles and a sign-up that works out hours a year
shop.html / product-single.html / cart.html / checkout.html / wishlist.htmlThe Carelia shop: filters, sort and search, product, bag, checkout, wishlist
blog.html / blog-details.htmlNews with search, article with reading time, share and comments
contact.htmlContact cards with live visiting status, map and the contact form
login.html / register.html / forgot-password.htmlFamily account pages
coming-soon.html / 404.htmlCountdown to the Garden Wing 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 (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.cssFont 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.

Coral--cl-coral
Terracotta Text--cl-coral-text
Mint--cl-mint
Sage Text--cl-mint-text
Sun--cl-sun
Navy Ink--cl-navy
White Ground--cl-bg
Linen--cl-linen
Blush--cl-blush
Sand Footer--cl-sand
Heading--cl-heading
Body--cl-text

Coral 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 footer
  • logo-light.png — for dark grounds: the navy headers and footers, dark mode
  • seal.png — the round CARE WITH A KIND HEART stamp on the page-title banners
  • favicon.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.

Dark Ground--cl-bg
Dark Surface--cl-surface
Dark Night Band--cl-night
Dark Heading--cl-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 (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 takes cl-on-light to 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.

scheduleThe 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.
servicesThe 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 / extrasRoom supplements a month (a shared companion suite costs less) with the rooms free this month; extras a month.
visitThe 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).
caregiversThe care team: role, years, languages, skills and team (the filter tabs).
eventsEvents with a repeat rule — weekly on a weekday, monthly on the nth weekday, or once on a date — plus seats and seats booked.
causesAppeals 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 / storiesThe memory wall’s cards and the people’s stories.
products / shopShop 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.

Worked examples: Assisted Living ($4,250) in a One-Bedroom Suite (+$690) with Weekly Physiotherapy (+$190) = $5,130 a month. Respite for 10 days at $215 a day = $2,150. Home care 12 hours a week at $34 an hour = $1,768 a month.

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

Worked example: A Year In The Garden ($22.00); shipping $6.00 (under $50); tax 7% $1.54 — $29.54. With the coupon 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-3 and --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.

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 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.

Reveals: add 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.
Scroll moments: A Day At Carelia moves the sun with the band’s own scroll and lights each programme item as the sun passes; Years Of Care lights the year marks (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.
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/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, 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: 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.