Fernwick — Plant Shop Ecommerce HTML Template
Shop-first plant store template with a working localStorage basket, filters and product page.
Description
Fernwick is a free, production-ready ecommerce HTML template for a plant shop — houseplant nurseries, garden centres, succulent and cactus sellers, florists and cut-stem shops, plant subscription boxes, and any small retailer selling living things online. It ships as six static pages with two stylesheets and a single vanilla script: no framework, no build step, no jQuery, and no dependencies of any kind. The palette deliberately avoids the obvious: rather than making green the accent colour, Fernwick makes green the ink — deep forest text at #14251a on a pale glasshouse ground at #edf1ea, with a single brass ochre at #c9861f doing all the pointing. Red, amber and green appear only as shop state (sale, low stock, in stock), never as decoration. Epilogue sets the headings, Be Vietnam Pro carries the reading text, and Sometype Mono handles labels and prices in tabular figures so columns line up perfectly down a product grid.
The layout is shop-first. Most ecommerce templates open with a marketing hero and make the visitor scroll before reaching a product; Fernwick opens the way an actual shop does — a delivery-threshold announcement bar, a utility header with search, account and a live basket count, a horizontally scrolling category rail, and then the product grid immediately. There is no hero image on the home page at all.
The basket actually works
This is not a set of static cart screenshots. assets/js/main.js keeps the basket in localStorage, so it survives page refreshes and navigation between pages, and it renders from that single source of truth into both the slide-out drawer and the full basket page. Add, change quantity, remove, and the free-delivery threshold (£40) all work. Prices are stored as integers in pence throughout, so no floating-point value ever touches a total and you can never end up with £41.999999 — formatting happens once, at display time. Checkout raises a toast rather than pretending to charge anyone: that is the single place you wire in Stripe, Snipcart, Shopify or your own handler.
What ships in the download
- Home (index.html) — snap-scrolling category rail, two product grids, a dark nursery band, three care-guide cards and a four-point trust strip
- Shop (shop.html) — filter sidebar plus quick-filter chips that combine with AND logic, a live result count, four sort orders, and a designed empty state for when a filter combination returns nothing
- Product (product.html) — gallery with switchable thumbnails, pot-size variants that update the displayed price, quantity stepper, a full care specification table, three accordions, and a related-products row
- Basket (cart.html) — line items with quantity steppers and remove, a sticky order summary, the delivery threshold and a promo-code field
- Care guides (care.html) — editorial guide index led by a featured dark article
- Our nursery (about.html) — story column, facts table, a three-point principles band, visiting details and a working enquiry form
Filtering and sorting
The shop page filters on data attributes rendered onto every product card — data-tags, data-price, data-name and data-order. Chips and checkboxes combine, the result count updates live, and sorting reorders existing DOM nodes rather than re-rendering the grid. Adding a product means adding one more card with the right attributes; no configuration, no JSON file to keep in sync.
Accessibility
Semantic landmarks and real <dl> markup for the care specification. Accordions use proper aria-expanded and aria-controls wiring; variant buttons and filter chips use aria-pressed. The basket count is hidden from assistive technology when empty rather than announcing "0". Quick-add is revealed on hover on pointer devices but is permanently visible on touch, where there is no hover to rely on. Focus rings stay visible, icon-only buttons carry aria-label, and prefers-reduced-motion is fully honoured.
Who it's for
Use Fernwick for a houseplant shop, an independent nursery or garden centre, a succulent or cactus specialist, a florist or dried-stem seller, a seed and bulb shop, a plant-care subscription, a homeware store with a strong product photography style, or any small catalogue where honest product information matters more than a carousel. Because the whole thing is plain HTML and vanilla JavaScript, it drops equally well into WordPress, Shopify, Laravel, Astro or a static host — there are no framework assumptions baked into the markup.
Other free templates from the same studio
Fernwick joins a growing free catalogue on html.design — every template ships with the same craft level, all free to download and use. If a plant shop isn't what you need today, look at Brynvel for a dark-first admin dashboard with hand-built charts, Vandrel for an index-first Next.js portfolio, Halvorn for an emerald corporate consultancy, Cratewell for a bold moving company, Solara for a restaurant, or Talasea for a boutique hotel. Each is built around a different visual recipe, and all of them are free.
Customising
Everything visual is a CSS custom property at the top of assets/css/tokens.css — change --ochre and every call to action, focus ring, active state and link follows; change --glass and --forest to reset the whole ground-and-ink relationship. tokens.css holds tokens, reset, buttons and form controls; shop.css holds the store chrome (header, rail, product cards, filters, product page, drawer, footer), so you can find what you need without scrolling one enormous file. To change the free-delivery threshold, edit the single comparison in main.js and the announcement-bar text.
Free for personal and commercial use, no attribution required, no email gate. Built and maintained by html.design.
Free Download
License: Creative Commons 3.0
Free to use for personal and commercial use with attribution.
Cool Features
- Unique Design
- SEO Optimized
- Cross-browser Compatibility
- 100% Fully Customizable
- Well Documented
- Clean Code