Twenty Twenty-Four Theme Configuration
Theme Type
Block theme (Full Site Editing). All visual configuration is stored in Global Styles (wp_global_styles post type), NOT in the Customizer or theme mods.
When to use
- The user wants to change colors, fonts, spacing, or layout of Twenty Twenty-Four
- The user wants to apply duotone filters or gradients
- The user wants to switch between style variations (7 available)
- The user wants to switch between template variations (sidebar, wide image, etc.)
- The user wants to customize per-block styles (buttons, quotes, navigation, etc.)
- The user wants to use block patterns for page layouts
- The user wants to set up the site identity (title, tagline, logo)
Inputs required
- What aspect to configure (colors, typography, layout, templates, or all)
- The desired values (specific colors, font choices, sizes, etc.)
AI-Guided Configuration Workflow
When configuring Twenty Twenty-Four, offer the user two modes:
Mode 1: "Guide me step by step"
Ask the user about each configuration area:
Style Variation: "Twenty Twenty-Four comes with 7 pre-built style variations. Would you like to start with one?
- Default — Warm neutrals (beige/sandstone/rust/sage), Inter body + Cardo serif headings
- Fossil — Earth tones (brown/neutral), fonts SWAPPED (Inter headings, Cardo body), pill-shaped buttons
- Ice — Cool blue palette, Inter headings + Jost body, uppercase buttons with letter-spacing
- Maelstrom — Dark blue background with white text, Cardo body + Jost headings
- Mint — Light mint/green, Instrument Sans headings + Jost body, modern sans-serif
- Rust — Minimal rust/earth palette with transparent gradients
- Ember — Warm orange, Instrument Sans body + Jost headings, default duotone on images
- Onyx — Dark mode with 10-color palette, 5 duotones, wood/earth accents
Pick one, or customize from scratch."
Colors: "The theme uses 10 color slots:
- Base / Base 2 — Background colors (light gray / white)
- Contrast / Contrast 2 / Contrast 3 — Text colors (dark / medium gray / light gray)
- Accent / Accent 2-5 — Accent colors (beige / sandstone / rust / sage / mint)
What are your brand colors?"
Typography: "Default: Inter for body, Cardo (serif) for headings. Also available: System Sans-serif and System Serif. What fonts do you prefer?"
Layout: "Content width: 620px (narrow reading width), Wide: 1280px. Want to adjust?"
Templates: "Which page templates do you need?
- Page with Sidebar — Content + sidebar layout
- Page Wide — Hero image layout
- Page No Title — Clean page without title
- Single with Sidebar — Blog post with sidebar"
Patterns: "The theme includes 57 patterns for page layouts. Key ones:
- Banner/hero sections (full-width images with CTAs)
- 3-column blog grids
- Services and team grids
- Testimonials, pricing tables
- Portfolio layouts
Want me to set up any specific page layouts?"
Site identity: "What is your site name, tagline, logo, and favicon?"
Mode 2: "Design it for me"
- Ask: site type, brand color (if any), general feel
- Select the best style variation as base
- Apply all settings in one batch
- Tell the user what was configured and why
Procedure
0) Verify the active theme
Call mcm/theme-config-guide — it auto-detects the active theme and confirms it is twentytwentyfour (block theme).
1) Read current configuration
// Read all Global Styles (settings + styles merged)
mcm/get-global-styles {"section": "both", "origin": "all"}
// Read only user customizations
mcm/get-global-styles {"section": "both", "origin": "user"}
// Read only color settings
mcm/get-global-styles {"section": "settings", "path": "color.palette"}
// Read only typography styles
mcm/get-global-styles {"section": "styles", "path": "typography"}
2) Apply configuration changes
See references/theme-options.md for all available options with exact slugs and default values.
See ../global-styles-api.md for the full API reference.
General pattern for updating Global Styles:
// Change background and text colors (deep merge — other settings remain intact)
mcm/set-global-styles {
"styles": {
"color": {
"background": "var:preset|color|base",
"text": "var:preset|color|contrast"
}
}
}
// Change the color palette
mcm/set-global-styles {
"settings": {
"color": {
"palette": {
"theme": [
{"color": "#f9f9f9", "name": "Base", "slug": "base"},
{"color": "#111111", "name": "Contrast", "slug": "contrast"},
{"color": "#E94560", "name": "Accent", "slug": "accent"}
]
}
}
}
}
// Change body typography
mcm/set-global-styles {
"styles": {
"typography": {
"fontFamily": "var:preset|font-family|heading",
"fontSize": "var:preset|font-size|medium",
"fontWeight": "400",
"lineHeight": "1.6"
}
}
}
// Change layout widths
mcm/set-global-styles {
"settings": {
"layout": {
"contentSize": "720px",
"wideSize": "1200px"
}
}
}
3) Style Variations
Twenty Twenty-Four ships with 7 style variations (Fossil, Ice, Maelstrom, Mint, Rust, Ember, Onyx). Each provides unique colors, and some introduce new fonts (Jost, Instrument Sans). See references/theme-options.md for details.
// Get available variations
mcm/get-global-styles {"section": "both"}
// Apply a variation (use merge_mode replace)
mcm/set-global-styles {
"settings": { /* variation's settings */ },
"styles": { /* variation's styles */ },
"merge_mode": "replace"
}
4) Configure templates and template parts
Custom Templates:
page-no-title — Page without title (for pages)
page-with-sidebar — Page with sidebar (for pages)
page-wide — Page with wide image (for pages)
single-with-sidebar — Single post with sidebar (for posts)
Default Templates: page.html, single.html, home.html, index.html, archive.html, search.html, 404.html
Template Parts:
header — Site header (logo + site title + navigation)
footer — Site footer (4-column layout with nav, colophon)
sidebar — Sidebar (hidden-sidebar pattern)
post-meta — Post metadata (hidden-post-meta pattern)
5) Block Patterns (57 patterns)
The theme includes 57 patterns across categories: banners, CTAs, galleries, post grids, page layouts, team/testimonials, footers, and hidden utility patterns. Key patterns:
posts-3-col — 3-column blog grid (used by index, archive, search)
page-home-business — Business homepage (used by home.html)
banner-hero — Full-width hero section
footer — 4-column footer layout
hidden-comments — Comments section
hidden-post-navigation — Post navigation
6) Set up site identity
mcm/set-option {"name": "blogname", "value": "Site Name"}
mcm/set-option {"name": "blogdescription", "value": "Site Tagline"}
mcm/set-theme-mod {"key": "custom_logo", "value": <attachment_id>}
mcm/set-option {"name": "site_icon", "value": <attachment_id>}
mcm/set-option {"name": "show_on_front", "value": "page"}
mcm/set-option {"name": "page_on_front", "value": <page_id>}
mcm/set-option {"name": "page_for_posts", "value": <page_id>}
Verification
Failure modes / debugging
- Changes not visible: Cache is automatically cleared by MCP abilities; clear browser cache if needed
- Global Styles post not found: Use
mcm/install-theme with slug twentytwentyfour to install and activate
- Font not loading: Font slugs are
body (Inter), heading (Cardo), system-sans-serif, system-serif
- Color not applying: Use
var:preset|color|{slug} format (note: slugs use hyphens like base-2, contrast-2, accent-3)
- Duotone not applying: Duotone only works on images and cover blocks
- Pattern not found: Use
twentytwentyfour/ prefix (e.g., twentytwentyfour/posts-3-col)
- Block style not showing: Custom block styles registered in functions.php:
arrow-icon-details, pill, checkmark-list, arrow-link, asterisk
Reference files
- theme-options.md — Complete list of all configurable options with slugs and defaults
- ../global-styles-api.md — Shared API reference for saving configuration
1---2name: twentytwentyfour3description: Use when configuring the Twenty Twenty-Four WordPress theme. Provides all available options (colors, typography, layout, spacing, duotones, gradients, templates, block styles, style variations, patterns) and procedures to apply them via MCP Content Manager abilities.4---56# Twenty Twenty-Four Theme Configuration78## Theme Type910**Block theme (Full Site Editing)**. All visual configuration is stored in Global Styles (`wp_global_styles` post type), NOT in the Customizer or theme mods.1112## When to use1314- The user wants to change colors, fonts, spacing, or layout of Twenty Twenty-Four15- The user wants to apply duotone filters or gradients16- The user wants to switch between style variations (7 available)17- The user wants to switch between template variations (sidebar, wide image, etc.)18- The user wants to customize per-block styles (buttons, quotes, navigation, etc.)19- The user wants to use block patterns for page layouts20- The user wants to set up the site identity (title, tagline, logo)2122## Inputs required2324- What aspect to configure (colors, typography, layout, templates, or all)25- The desired values (specific colors, font choices, sizes, etc.)2627## AI-Guided Configuration Workflow2829When configuring Twenty Twenty-Four, offer the user **two modes**:3031### Mode 1: "Guide me step by step"3233Ask the user about each configuration area:34351. **Style Variation**: "Twenty Twenty-Four comes with **7 pre-built style variations**. Would you like to start with one?36 - **Default** — Warm neutrals (beige/sandstone/rust/sage), Inter body + Cardo serif headings37 - **Fossil** — Earth tones (brown/neutral), fonts SWAPPED (Inter headings, Cardo body), pill-shaped buttons38 - **Ice** — Cool blue palette, Inter headings + Jost body, uppercase buttons with letter-spacing39 - **Maelstrom** — Dark blue background with white text, Cardo body + Jost headings40 - **Mint** — Light mint/green, Instrument Sans headings + Jost body, modern sans-serif41 - **Rust** — Minimal rust/earth palette with transparent gradients42 - **Ember** — Warm orange, Instrument Sans body + Jost headings, default duotone on images43 - **Onyx** — Dark mode with 10-color palette, 5 duotones, wood/earth accents44 Pick one, or customize from scratch."45462. **Colors**: "The theme uses **10 color slots**:47 - **Base / Base 2** — Background colors (light gray / white)48 - **Contrast / Contrast 2 / Contrast 3** — Text colors (dark / medium gray / light gray)49 - **Accent / Accent 2-5** — Accent colors (beige / sandstone / rust / sage / mint)50 What are your brand colors?"51523. **Typography**: "Default: Inter for body, Cardo (serif) for headings. Also available: System Sans-serif and System Serif. What fonts do you prefer?"53544. **Layout**: "Content width: 620px (narrow reading width), Wide: 1280px. Want to adjust?"55565. **Templates**: "Which page templates do you need?57 - **Page with Sidebar** — Content + sidebar layout58 - **Page Wide** — Hero image layout59 - **Page No Title** — Clean page without title60 - **Single with Sidebar** — Blog post with sidebar"61626. **Patterns**: "The theme includes **57 patterns** for page layouts. Key ones:63 - Banner/hero sections (full-width images with CTAs)64 - 3-column blog grids65 - Services and team grids66 - Testimonials, pricing tables67 - Portfolio layouts68 Want me to set up any specific page layouts?"69707. **Site identity**: "What is your site name, tagline, logo, and favicon?"7172### Mode 2: "Design it for me"73741. Ask: site type, brand color (if any), general feel752. Select the best style variation as base763. Apply all settings in one batch774. Tell the user what was configured and why7879## Procedure8081### 0) Verify the active theme8283Call `mcm/theme-config-guide` — it auto-detects the active theme and confirms it is `twentytwentyfour` (block theme).8485### 1) Read current configuration8687```json88// Read all Global Styles (settings + styles merged)89mcm/get-global-styles {"section": "both", "origin": "all"}9091// Read only user customizations92mcm/get-global-styles {"section": "both", "origin": "user"}9394// Read only color settings95mcm/get-global-styles {"section": "settings", "path": "color.palette"}9697// Read only typography styles98mcm/get-global-styles {"section": "styles", "path": "typography"}99```100101### 2) Apply configuration changes102103See [references/theme-options.md](references/theme-options.md) for all available options with exact slugs and default values.104105See [../global-styles-api.md](../global-styles-api.md) for the full API reference.106107**General pattern for updating Global Styles:**108109```json110// Change background and text colors (deep merge — other settings remain intact)111mcm/set-global-styles {112 "styles": {113 "color": {114 "background": "var:preset|color|base",115 "text": "var:preset|color|contrast"116 }117 }118}119120// Change the color palette121mcm/set-global-styles {122 "settings": {123 "color": {124 "palette": {125 "theme": [126 {"color": "#f9f9f9", "name": "Base", "slug": "base"},127 {"color": "#111111", "name": "Contrast", "slug": "contrast"},128 {"color": "#E94560", "name": "Accent", "slug": "accent"}129 ]130 }131 }132 }133}134135// Change body typography136mcm/set-global-styles {137 "styles": {138 "typography": {139 "fontFamily": "var:preset|font-family|heading",140 "fontSize": "var:preset|font-size|medium",141 "fontWeight": "400",142 "lineHeight": "1.6"143 }144 }145}146147// Change layout widths148mcm/set-global-styles {149 "settings": {150 "layout": {151 "contentSize": "720px",152 "wideSize": "1200px"153 }154 }155}156```157158### 3) Style Variations159160Twenty Twenty-Four ships with **7 style variations** (Fossil, Ice, Maelstrom, Mint, Rust, Ember, Onyx). Each provides unique colors, and some introduce new fonts (Jost, Instrument Sans). See [references/theme-options.md](references/theme-options.md) for details.161162```json163// Get available variations164mcm/get-global-styles {"section": "both"}165166// Apply a variation (use merge_mode replace)167mcm/set-global-styles {168 "settings": { /* variation's settings */ },169 "styles": { /* variation's styles */ },170 "merge_mode": "replace"171}172```173174### 4) Configure templates and template parts175176**Custom Templates:**177- `page-no-title` — Page without title (for pages)178- `page-with-sidebar` — Page with sidebar (for pages)179- `page-wide` — Page with wide image (for pages)180- `single-with-sidebar` — Single post with sidebar (for posts)181182**Default Templates:** page.html, single.html, home.html, index.html, archive.html, search.html, 404.html183184**Template Parts:**185- `header` — Site header (logo + site title + navigation)186- `footer` — Site footer (4-column layout with nav, colophon)187- `sidebar` — Sidebar (hidden-sidebar pattern)188- `post-meta` — Post metadata (hidden-post-meta pattern)189190### 5) Block Patterns (57 patterns)191192The theme includes 57 patterns across categories: banners, CTAs, galleries, post grids, page layouts, team/testimonials, footers, and hidden utility patterns. Key patterns:193194- `posts-3-col` — 3-column blog grid (used by index, archive, search)195- `page-home-business` — Business homepage (used by home.html)196- `banner-hero` — Full-width hero section197- `footer` — 4-column footer layout198- `hidden-comments` — Comments section199- `hidden-post-navigation` — Post navigation200201### 6) Set up site identity202203```json204mcm/set-option {"name": "blogname", "value": "Site Name"}205mcm/set-option {"name": "blogdescription", "value": "Site Tagline"}206mcm/set-theme-mod {"key": "custom_logo", "value": <attachment_id>}207mcm/set-option {"name": "site_icon", "value": <attachment_id>}208mcm/set-option {"name": "show_on_front", "value": "page"}209mcm/set-option {"name": "page_on_front", "value": <page_id>}210mcm/set-option {"name": "page_for_posts", "value": <page_id>}211```212213## Verification214215- [ ] Colors display correctly (10-color palette)216- [ ] Typography renders as expected (Inter for body, Cardo for headings)217- [ ] Duotone filters work on images218- [ ] Gradients display correctly219- [ ] Layout widths (620px content, 1280px wide) are correct220- [ ] Header and footer display correctly221- [ ] Sidebar template works on pages and posts222- [ ] Button styles (default and outline) look right223- [ ] Custom block styles work (arrow-icon-details, pill terms, checkmark-list, arrow-link, asterisk heading)224- [ ] Style variations apply correctly if used225- [ ] Responsive behavior works (fluid typography, spacing)226227## Failure modes / debugging228229- **Changes not visible:** Cache is automatically cleared by MCP abilities; clear browser cache if needed230- **Global Styles post not found:** Use `mcm/install-theme` with slug `twentytwentyfour` to install and activate231- **Font not loading:** Font slugs are `body` (Inter), `heading` (Cardo), `system-sans-serif`, `system-serif`232- **Color not applying:** Use `var:preset|color|{slug}` format (note: slugs use hyphens like `base-2`, `contrast-2`, `accent-3`)233- **Duotone not applying:** Duotone only works on images and cover blocks234- **Pattern not found:** Use `twentytwentyfour/` prefix (e.g., `twentytwentyfour/posts-3-col`)235- **Block style not showing:** Custom block styles registered in functions.php: `arrow-icon-details`, `pill`, `checkmark-list`, `arrow-link`, `asterisk`236237## Reference files238239- **[theme-options.md](references/theme-options.md)** — Complete list of all configurable options with slugs and defaults240- **[../global-styles-api.md](../global-styles-api.md)** — Shared API reference for saving configuration