---
title: Child themes
summary: Build a client's store as a child theme of LanternWP that keeps its updates.
url: https://lanternwp.com/developers/child-theme
updated: 2026-10-08
---

# Child themes

A child theme keeps your changes when LanternWP updates. Companion's demo import works on it too: it needs LanternWP or a child theme of it.

## Create one

Make a folder beside `lanternwp` in `wp-content/themes`, with a `style.css`:

```css
/*
Theme Name: My Store
Template: lanternwp
*/
```

and, if you change any settings or styles, a `theme.json` with only what differs. WordPress merges it over LanternWP's, so a child theme that sets one colour keeps everything else:

```json
{
	"$schema": "https://schemas.wp.org/trunk/theme.json",
	"version": 3,
	"settings": {
		"color": {
			"palette": [
				{ "slug": "primary", "color": "#1f4d3a", "name": "Primary" }
			]
		}
	}
}
```

A palette, font size or spacing list replaces LanternWP's list as a whole, so copy every entry of a list you change. A store that started from a demo has the demo's look on the same layer, over LanternWP's `theme.json` and the child theme's: where both set a value, the demo's wins, and the owner's changes in Styles win over both. That look is a theme mod of the active theme, so a child theme activated after the import starts without it until it is applied again ([`wp lanternwp demo look`](wp-cli.md#wp-lanternwp-demo-look), or **Use the look only** in **Appearance → Demos**). The slugs are in the [presets reference](reference/presets.md) and are part of the [public API](public-api.md): patterns and styles refer to them.

## Templates and parts

A file in the child theme's `templates/` or `parts/` replaces LanternWP's file of the same name, such as `parts/header.html`. Keep the part slugs `header`, `footer`, `checkout-header` and `checkout-footer`; the demo import and the patterns use them.

Changes made in the Site Editor are saved in the database and win over files, the child theme's too. A demo import also writes some there: the header and footer it uses and the designs of the catalog, search and product templates. To see a file's version again, open the template or part in the Site Editor and reset it.

## Patterns

Pattern slugs are public, so a pattern you insert keeps working across updates; their markup is not, so copy a pattern into your child theme's `patterns/` with a slug of your own before changing it. The [patterns reference](reference/patterns.md) lists them.
