
Based on and commenting on Justin Tadlock’s “How WordPress 6.9 Gives Forms a theme.json Makeover,” WPTavern, November 6, 2025
What Is theme.json?
theme.json is the central configuration file for modern WordPress block themes. It acts as a theme’s global style system, defining colors, typography, spacing, and now, even form element styling.
Instead of relying on multiple style sheets or custom CSS, designers and developers can describe their entire visual system in one structured JSON file.
This makes site-wide consistency easier to maintain and bridges the gap between how the Site Editor and the front-end render a theme.
What’s New in WordPress 6.9
Justin Tadlock reports that WordPress 6.9 introduces the first real step toward form styling inside theme.json.
Until now, forms were one of the last pieces of a theme that required hand-written CSS.
With 6.9, theme authors can now style:
select — targets <select> dropdowns textInput — targets <input> and <textarea> elements (types: email, text, password, url, etc.)
These rules apply globally across all forms, including plugin-generated ones giving a unified design system throughout a site.
Still Limited: CSS Needed for Focus and Extras
Tadlock calls this update a “mini fireworks” moment: a welcome start, but incomplete.
Pseudo-classes such as :focus, :hover, and :disabled aren’t yet supported in theme.json.
So, for interactive behavior like focus outlines or caret colors, you’ll still need a few CSS rules. Future versions (possibly 7.0 and beyond) are expected to expand theme.json to include these states.
For Legacy Users: What About the Customizer and Classic Editor?
Many WordPress users still rely on the Customizer and the Classic Editor, even as they begin experimenting with blocks.
Here’s why theme.json and especially its new form styling matters:
1. theme.json Works Even Without the Block Editor
Even if a theme doesn’t fully use the Site Editor, WordPress now loads theme.json styles across both classic and block-based parts of a site.
That means form styling defined in theme.json affects classic templates, Contact Form 7 forms, and even old-school comment forms.
2. Bridge Between Customizer and Global Styles
The Customizer gave users control over site colors and fonts, but each theme handled those options differently.
theme.json standardizes this by defining a single source of truth for design tokens (colors, typography, spacing).
While the Customizer is still available in classic themes, global styles from theme.json are automatically reflected in the block editor and front end.
This helps developers maintain consistency as users gradually migrate from the Customizer to the Site Editor.
3. Future-Proofing Classic Themes
Adding a simple theme.json file to an existing classic theme brings immediate benefits:
Consistent base styles without a heavy stylesheet Compatibility with new WordPress core features (e.g., block patterns, global styles panel) Easier transition to a block theme later
So, even for “old-school” sites still mixing the Classic Editor and block content, adopting theme.json is a forward-looking investment.
Commentary
Tadlock’s article strikes a tone of measured optimism.
He welcomes the new ability to style form inputs but cautions that it’s “only the beginning” — a first iteration of what should evolve into full control over all HTML form elements through theme.json.
His walkthrough demonstrates that you can now define consistent borders, spacing, and colors for text inputs and selects but you’ll still need CSS for labels, checkboxes, radios, and focus states.
He predicts broader pseudo-element and pseudo-class support in future releases and encourages developers to start using these tools early.
Summary
WordPress 6.9 introduces theme.json styling for form inputs (textInput) and dropdowns (select). Styles apply globally across the site even for classic templates. Pseudo-classes still require custom CSS. theme.json helps bridge the Customizer era with the Global Styles future. Even if you still use the Classic Editor, adopting theme.json ensures design consistency and future compatibility.
The Takeaway
WordPress is steadily shifting from theme-specific CSS toward data-driven design control.
For long-time users who’ve grown up with the classic theming, embracing theme.json even in small steps like form styling means participating in the platform’s modern evolution while keeping your familiar workflow intact.

