🛠 Free Tools & AI Utilities ↗

Get in touch

Tell us a little about your project and we'll follow up by email with licensing and download details.

TerrazzoInterior Design WordPress Theme

The scheme is measured from the room, not picked from a swatch book — including the floor.

terrazzo.kilnwp.com LIVE
Terrazzo Open live preview ↗

Overview

Who it is for

Terrazzo is for an interior design studio — a practice with a body of built work and a point of view about colour. It is not a furniture shop and not a generic agency template with a project grid.

The colours are measured, not chosen

An interiors studio’s website is a set of colour schemes, and on almost every one of them the colours get chosen twice: once in the room, and again by whoever built the site. The second set is a guess at the first, it is typed in by hand, and it stops being true the moment the photographs are reshot.

This theme measures the first set. When a project is saved, its photographs are sampled, the samples are clustered, and the clusters are ordered by how much of the room each one actually covers. That palette then colours the project’s page, is drawn to scale on the project’s card, and is cast as the aggregate in the floor behind the page.

There is no colour picker in this theme, deliberately. The one thing it exists to get right is the thing a picker would let somebody get wrong.

Lab, not RGB — and coverage, not prettiness

The clustering runs in CIE Lab. RGB distance does not match how different two colours look, so clustering in RGB reliably merges a sofa into the shadow behind it and splits a plain wall in two. The cluster’s colour is then the mean of its members in RGB rather than the Lab centre converted back, because converting the centre back can land on a colour that appears nowhere in the room — a plausible average of a red cushion and a green plant is a grey that was never there.

Swatches are ordered and drawn by the share of the room they cover. A scheme that was three-quarters oak reads as three-quarters oak, which is what a scheme actually is and what a mood board never says.

The floor

Terrazzo is chips of stone set in a matrix and ground flat — the oldest way of making a floor out of what the last job left over, and the right ground for a theme about reusing what is already in the room. It is real terrazzo geometry: jittered cellular placement so the spacing is irregular, convex polygon chips with genuine straight edges and corners rather than discs, four gradings of aggregate from coarse to fine, and no shading inside a chip because polished terrazzo is flat.

Its darkness is capped, and the cap is arithmetic rather than taste. A project photographed in a dark room can legitimately produce a near-black palette, so the mix is set such that even a pure black chip leaves the faintest text on the page above 4.5:1 against it. Raising that number would make the floor handsomer and some future project’s captions unreadable.

What it needs

GD, which every WordPress host has. No Imagick, no exec(), no third-party colour service, and no third-party JavaScript. The photographs are scaled to a small thumbnail before sampling and the measurement happens once on save, so nothing is computed at render time.

What is in the box

  • Projects with place, year, size, a brief, and a gallery.
  • Spaces as a taxonomy, because clients search a practice’s work by the kind of room.
  • A studio-wide palette on the front page: every project’s colours clustered again and weighted by coverage — the practice’s real palette rather than a brand guideline, changing as the work does.
Classic PHP theme, no build step. Project post type with a space taxonomy. Palette measured on save with GD only: photographs downsampled, pixels converted to CIE Lab, k-means with deterministic lightness-spread seeding, clusters ordered by coverage and returned as RGB means rather than reconverted Lab centres. Accent chosen by saturation with a hard 4.5:1 gate against the paper, so a measured palette can never make the page illegible. Studio-wide palette re-clustered across all projects and cached. Raw WebGL2 terrazzo shader: jittered cellular placement, convex-polygon SDF chips, four aggregate gradings, chips drawn from the palette in proportion to coverage, and a darkness cap derived from the worst-case black chip. No colour control anywhere. No third-party JavaScript. Two self-hosted OFL variable fonts.

What's included

  • Full theme source — every template, style sheet & script
  • One-click demo importer (idempotent, no page builder)
  • Live Customizer controls for copy, colours & content
  • Translation-ready .pot file + RTL stylesheet
  • HTML documentation + a CHANGELOG file
  • Lifetime updates + 6 months support (renewable)

Specifications

WordPress5.6 – 7.0
PHP8.0 – 8.3
BrowsersChrome, Firefox, Safari, Edge (latest)
LayoutFully responsive, mobile → desktop
LocalizationTranslation-ready · RTL included
AccessibilityKeyboard-navigable · prefers-reduced-motion
Page builderNot required — native Customizer
LicenseGNU GPL v2 · single-site commercial

Release

v1.2.0 The scheme is measured from the room, not picked from a swatch book — including the floor.

The complete, dated version history ships in the theme’s CHANGELOG file. Every purchase includes lifetime access to future updates.

Dioptre Featured

Dioptre

$79

Hold the glasses up to the eye chart and change the prescription, lens and coating — a live WebGPU lens, drawn frames, a face-shape finder and appointment requests.

Healthcare Light
View →
Crumb Featured

Crumb

$69

Watch the loaf bake, see what is coming out of the oven next, and build a cake that shows you what it serves, what it costs and when it can be ready.

Booking Calculator
View →
Alembic Featured

Alembic

$79

Add a drop of water and watch the spirit open — a live WebGPU glass, a shelf of drawn bottles, a flavour finder and tour requests for craft distilleries.

Craft Dark
View →