2 min read

Block themes in production: what theme.json actually buys you

Two years into building block themes for clients, the honest summary is this: theme.json is worth the trouble, but not for the reason it is usually sold.

It is not really about the editor

The pitch is that clients get to change their own colours. In practice most clients never open those controls, and the ones who do usually should not. The actual value is that a design system stops living in a stylesheet where it can drift.

A palette declared once becomes a CSS custom property, an editor control, a set of utility classes and a constraint on what anyone can pick — from a single declaration. That is a genuinely different situation from a :root block that a developer can quietly ignore at 2am.

Where it still hurts

  • Anything structural — a grid that has to collapse in a particular order, a sticky rail, a hover that wipes across a card — still belongs in a stylesheet. Block supports do not reach it.
  • Specificity between theme.json output and your own sheet is a real thing you have to hold in your head.
  • The moment a client edits a template in the Site Editor, the database wins and your file becomes decoration. Decide early whether that is allowed.

We settle it by putting tokens in theme.json, structure in one stylesheet, and treating block style variations as the seam between them.

Share

X LinkedIn

Get Started Today


Focus on what matters and make smarter, faster decisions with NovemBit. Stop getting lost in the sea of information.

Let’s connect

Tell us what needs building. We reply within two working days with scope, timeline and a number.

Select all that apply.

Prefer email? [email protected]