# Zactonz Lite

> A featherweight block theme for publishers who care about page weight. It adds no stylesheet request of its own and downloads no web font by default.

- **Type:** Theme (WordPress themes)
- **Version:** 1.0.0, released 5 Oct 2026
- **Requires:** WordPress 6.8+, PHP 7.4+
- **Tested with:** WordPress 7.1
- **Licence:** GPL-2.0-or-later
- **Documentation:** https://developers.zactonz.com/wordpress/themes/zactonz-lite/

## Overview

Zactonz Lite is a block theme for WordPress built around one measurable goal: adding as little as possible to the page. It is made for sites where the words are the point, such as a blog, a writer's site, a newsletter archive or a small company site.

Most themes compete on how much they include. This one competes on how little it costs a visitor to load. Everything it leaves out is something a browser does not have to download, parse or wait for.

![The Zactonz Lite front page, built from the theme's Hero and three-column features patterns](https://developers.zactonz.com/assets/images/zactonz-lite-default.webp)

### Who it is for

- **Writers and publishers** who want a clean, readable page and nothing in the way of it.
- **Site owners who care about speed** and would rather start light than strip a heavy theme down.
- **Developers** who want a small, readable block theme to build on, with every non-obvious decision documented and switchable by a filter.

It is not the right choice for a site assembled in a page builder, or for a shop that needs dedicated WooCommerce templates.

### How it stays light

Four decisions account for most of the difference between this theme and a typical one.

#### Its styles are inlined, not requested

A theme normally adds at least one stylesheet the browser must fetch before it can show anything. Zactonz Lite registers its styles so that WordPress writes them into the page itself. There is no extra request, and nothing from the theme blocks the first paint.

#### It uses the font your reader already has

The default style uses the system font: San Francisco on Apple devices, Segoe UI on Windows, Roboto on Android. Nothing is downloaded, text appears at once, and it never flashes or shifts as a web font arrives. A font file is fetched only if you choose the Editorial style, which sets headings in a serif bundled with the theme and served from your own site.

#### Its menu needs no JavaScript

Most themes turn the menu into a button on small screens, which needs a script and a large stylesheet to open it. Here the menu simply wraps onto more rows. It works with JavaScript turned off, and search engines can follow every link in it. The result is that the theme adds no JavaScript of its own to the front page.

#### It replaces the largest stylesheet WordPress adds

WordPress's own navigation stylesheet is about 20 KB, most of it for the overlay and submenu variants this theme does not use. The theme supplies one of under 2 KB in its place. One line of code restores the original if you need it.

### Measured

The figures below come from one install, with the same content and the same method for every theme, on WordPress 7.1.2. Bytes are uncompressed and count the page plus every stylesheet, script and font it loads. Images are left out because they are content, and identical whichever theme is active.

**Home page**

| Theme | Total bytes | Stylesheet requests | Elements on the page |
|---|---|---|---|
| **Zactonz Lite** | **78,911** | **0** | **134** |
| GeneratePress 3.6.1 | 126,757 | 1 | 392 |
| Neve 4.2.15 | 134,576 | 1 | 313 |
| Twenty Twenty-Five 1.5 | 280,916 | 2 | 1,083 |

**A post with 19 comments**

| Theme | Total bytes | Stylesheet requests | Elements on the page |
|---|---|---|---|
| **Zactonz Lite** | **102,648** | **0** | **397** |
| GeneratePress 3.6.1 | 133,917 | 2 | 544 |
| Neve 4.2.15 | 149,959 | 1 | 545 |
| Twenty Twenty-Five 1.5 | 186,708 | 1 | 521 |

**A post with five images**

| Theme | Total bytes | Stylesheet requests | Elements on the page |
|---|---|---|---|
| **Zactonz Lite** | **100,666** | **0** | **210** |
| GeneratePress 3.6.1 | 135,504 | 2 | 355 |
| Neve 4.2.15 | 151,599 | 1 | 353 |
| Twenty Twenty-Five 1.5 | 182,717 | 1 | 324 |

Every total includes about 25.7 KB of emoji script that WordPress itself adds to every page. A theme in the WordPress.org directory is not allowed to remove it, so all four themes carry the same amount.

#### What these numbers do not say

They are lab measurements of what a theme contributes on one controlled install. They say nothing about how a real site scores for real visitors, or about search rankings. Those depend on hosting, images, content and plugins, and no theme can promise them.

A theme's share of a page also shrinks as a site adds plugins. With one plugin active that loads jQuery and a script of its own, the same home page was 21% lighter than GeneratePress rather than 38%. The theme still helps, but it is one part of the page.

### Four styles

The theme comes in four looks. Switching between them takes one click in the Site Editor and changes nothing about the weight, except that Editorial fetches one small font file.

![Zactonz Lite in the Dark style](https://developers.zactonz.com/assets/images/zactonz-lite-dark.webp)

*Dark: a dark ground with a light green accent.*

![Zactonz Lite in the Editorial style, with serif headings](https://developers.zactonz.com/assets/images/zactonz-lite-editorial.webp)

*Editorial: headings in Instrument Serif.*

![Zactonz Lite in the Ink style, black on white](https://developers.zactonz.com/assets/images/zactonz-lite-ink.webp)

*Ink: pure black on white with heavier headings.*

### Accessible by construction

- One H1 on every view, and no skipped heading levels.
- Named landmarks for the header, navigation, main content and footer, and a skip link to the content.
- A visible focus outline on every link and button.
- Text contrast of at least 6:1 in every palette, well above the 4.5:1 that WCAG AA asks for.
- An automated accessibility scan with axe found no violations on the home page, a single post, the search results and the 404 page, in the default and dark styles.

An automated scan cannot prove a site accessible. The content you add matters as much as the theme.

### Faster movement between pages

On WordPress 6.8 and newer, the theme asks the browser to prepare a link's page when a visitor is about to follow it, so moving around the site feels close to instant. It steps back to WordPress's cautious default when WooCommerce or Easy Digital Downloads is active, and never applies to cart, checkout or account pages. This speeds up navigation within the site, not the first page load.

### Friendly to caches

A page cache or a CDN can store the theme's output as it is. The theme sets no cookie, starts no session, puts no security token in the page and shows dates as dates, so a cached page never displays a stale "2 hours ago".

### What it leaves to plugins

Meta descriptions, Open Graph tags, structured data, sitemaps and caching are not part of the theme. They belong to the plugins that specialise in them, and a theme that outputs them as well collides with whichever plugin a site uses. WordPress.org also asks themes to stay out of that territory, which is why there is no settings page either: everything is in the Site Editor.

### What is in the box

- Templates for the blog home, single posts, pages, archives, search results and the 404 page, plus a wide page template.
- A header and a footer template part.
- Patterns for a hero, three feature columns, an image beside text, a call to action and a posts list.
- The Dark, Editorial and Ink styles, besides the default.
- Licensed under the GPL, version 2 or later. The bundled font is under the SIL Open Font License.

## Installation & setup

### Install the theme

Zactonz Lite is published through the WordPress.org theme directory. Once it is listed there, go to **Appearance › Themes › Add New Theme**, search for **Zactonz Lite**, then click **Install** and **Activate**.

With WP-CLI:

```bash
wp theme install zactonz-lite --activate
```

### Requirements

- WordPress 6.8 or newer
- PHP 7.4 or newer

No plugin is required.

### After activating

The theme works as soon as it is active: the home page lists your posts under the site title and tagline.

1. **Add a menu.** Open **Appearance › Editor › Navigation** and add the pages you want in the header.
2. **Pick a style.** Open **Appearance › Editor › Styles** and choose Default, Dark, Editorial or Ink.
3. **Set a logo.** The header shows the site logo beside the site title when one is set under **Appearance › Editor › Styles** or in the header's Site Logo block.

### Build a front page

The screenshot of the theme shows a front page made from two of its patterns. To build the same:

1. Create a page and open the block inserter.
2. Under **Patterns › Zactonz Lite**, insert **Hero**, then **Three columns of features**.
3. Replace the text with your own and publish.
4. Under **Settings › Reading**, set the page as your homepage.

For a page that uses the full width, choose the **Page, wide** template in the page settings.

## Styles & patterns

### Style variations

| Style | What changes |
|---|---|
| Default | System font, white ground, dark green accent. Downloads no font. |
| Dark | A dark ground with a light green accent. |
| Editorial | Headings in Instrument Serif, bundled with the theme. The font file, about 15 KB, is fetched only while this style is active. |
| Ink | Pure black on white with heavier headings. |

Colours, fonts and spacing can all be changed further under **Appearance › Editor › Styles**. The [overview](https://developers.zactonz.com/wordpress/themes/zactonz-lite/) shows each style.

### Patterns

Found in the inserter under **Patterns › Zactonz Lite**.

| Pattern | Use |
|---|---|
| Hero | A large headline, a short paragraph and two buttons. |
| Three columns of features | Three short columns, each with a heading and a paragraph. |
| Image beside text | An image on one side with a heading and a paragraph on the other. |
| Call to action | A boxed heading, a line of text and a button. |
| Posts list | The latest posts with title, date and excerpt. |

### Navigation

The header menu never switches to an overlay, which is what lets it work without JavaScript. On narrow screens it wraps onto more rows. A site with a long menu that needs an overlay can turn it on in the Navigation block's settings and restore WordPress's full navigation stylesheet with the filter below.

### Faster navigation between pages

On WordPress 6.8 and newer the theme asks the browser to prerender a link when a visitor is about to follow it, which makes moving between pages feel close to instant. It leaves WordPress's more cautious default in place when WooCommerce or Easy Digital Downloads is active, and never applies to cart, checkout or account pages. This affects navigation within the site, not the first page load.

### Filters for developers

| Filter | Default | Effect |
|---|---|---|
| `zactonz_lite_slim_navigation_style` | `true` | Replace WordPress's navigation stylesheet with the theme's smaller one. Return `false` to keep the original. |
| `zactonz_lite_preload_fonts` | `true` | Preload a bundled font when the active style uses it. |
| `zactonz_lite_speculation` | configuration array | The final speculative loading configuration. |
| `zactonz_lite_speculation_exclude_paths` | cart, checkout and account paths | Paths never loaded speculatively. |

```php
add_filter( 'zactonz_lite_slim_navigation_style', '__return_false' );
```

## FAQ

### Does this theme do SEO?

It does the structural part: a correct document outline, one H1 per view, landmark elements, navigation that works without JavaScript, and light pages. It does not output meta descriptions, Open Graph tags or structured data. Those belong to an SEO plugin, and emitting them from a theme conflicts with whichever plugin you use.

### Does this theme cache pages?

No. Caching belongs to a caching plugin or your host. The theme is built to be cache friendly: it sets no cookie, starts no session, emits no nonce on the front end, and shows absolute dates, so a cached page never displays a stale "2 hours ago".

### Why is there no settings page?

Everything is in the Site Editor, where WordPress expects a block theme's settings to live.

### Will it make my site faster?

It removes what a theme usually adds: stylesheet requests, web fonts and scripts. How fast a site is for real visitors also depends on hosting, images, content and plugins, which no theme controls. The figures on the overview page are lab measurements of the theme's own share.

### The menu does not collapse into a button on phones. Is that a bug?

No, it is deliberate. A menu that opens as an overlay needs JavaScript and a large stylesheet. This theme lets the menu wrap instead. If your menu is long, turn the overlay on in the Navigation block and keep WordPress's navigation stylesheet with the `zactonz_lite_slim_navigation_style` filter.

### Does it work with WooCommerce?

It does not include WooCommerce templates. It detects WooCommerce and Easy Digital Downloads and turns off its faster page-to-page loading while either is active, because prerendering a cart or checkout page is unsafe.

### Which fonts does it use?

The reader's own system font by default, so nothing is downloaded. The Editorial style uses Instrument Serif for headings, bundled with the theme under the SIL Open Font License and served from your own site.

### Which WordPress and PHP versions are supported?

WordPress 6.8 or newer and PHP 7.4 or newer. It is tested with WordPress 7.1.

## Changelog

### 1.0.0 — 5 October 2026

- Initial release.
- Templates for the blog home, single posts, pages, archives, search and 404, plus a wide page template.
- Header and footer template parts, and patterns for a hero, feature columns, an image beside text, a call to action and a posts list.
- Dark, Editorial and Ink style variations.
- Inlined theme styles, a system font by default and a header menu that needs no JavaScript.
