Pixelwars
Forum Replies Created
-
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] looking for menu and sidebarsHi @flloyd,
All three are typical first surprises when moving from a classic theme to a block theme like Twenty Twenty-Five, and none of them needs code.
Sidebars
Block themes don’t have widget areas, which is why the theme’s docs never mention sidebars. Instead, a sidebar is just a block layout inside a template. Twenty Twenty-Five ships a ready-made “Sidebar” template part and several layouts that already use it:
- News blog with sidebar (blog / home page)
- News blog single post with sidebar (single posts)
- Right-aligned page and Right-aligned single post
To use one, go to Appearance > Editor > Templates, open the template (e.g. “Single Posts” or “Pages”), and in the template’s settings sidebar look at the “Design” section, which lists these alternatives. Click one to switch.
Or build your own: in the template, add a Columns block (e.g. 70/30), move the content blocks into the left column, and in the right column insert the “Sidebar” template part (search for “Sidebar” in the + inserter). Edit the Sidebar part like any other blocks: Search, Latest Posts, Categories, an image, whatever your old widgets were. Since it’s a template part, edits show up on every template that uses it.
Menu showing every page
When the Navigation block has no menu of its own, WordPress falls back to a “Page List” block, which lists all your pages and adds every new one automatically. To take control:
- Appearance > Editor > Navigation, open the menu (or select the Navigation block in your header).
- Select the Page List inside it and click “Edit”. Confirm in the “Edit Page List” dialog.
- The list turns into individual links. Remove the pages you don’t want, drag the rest into order, and add custom links with +.
From then on, new pages are no longer added automatically.
Gap between header and content
The Pages template adds space twice: the main content group has a “Large” top margin, and the group inside it has a “Large” top padding (up to 70px each on wide screens). To reduce it, open Appearance > Editor > Templates > Pages, open List View (the icon with three lines, top left), select the outer Group below the Header, then Styles > Dimensions and lower or clear the top margin. If it’s still too much, do the same with the top padding of the Group inside it.
About the header ending up in the footer position: in that same List View the Header template part should be the first item and the Footer the last. If they’re swapped, drag them back. If the template got too messy, the template’s three-dot menu has “Reset”, which restores the theme’s original layout for that template (it removes your changes to that template only, not your pages or posts).
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] adding ColorsHi @petewatterschatsworth, this looks like a duplicate of your other topic, so I’ve answered there to keep everything in one place:
https://wordpress.org/support/topic/twenty-twenty-five-theme-add-colors-for-text-and-background/You’re right that the palette has 8 colors. That’s the theme’s design palette (Base, Contrast and Accent 1-6), and WordPress’s own default palette is switched off in this theme. You can add as many colors as you like without any code.
More colors
- Appearance > Editor > Styles > Colors > Palette > Edit palette.
- Switch to the “Custom” tab and click “Add color” (+). Pick the color or type a hex value, give it a name, and save.
Your custom colors then show up in every text, background and link color picker on the site, next to the theme ones. Example: the blue #4460a7 you’ve typed by hand on your design process page could become a named “Brand blue” there, and you’d reuse it with one click instead of retyping the hex value.
For a one-off color you don’t need the palette at all: in any block’s color option, click the swatch with the color picker (or “Custom color picker”) and enter a hex value.
The same Colors screen also has “Palettes”, with eight ready-made alternative color schemes that come with Twenty Twenty-Five. One click recolors the whole site, if you’d like to try a different starting point.
Text over images (Cover block)
I checked the page you linked, and there’s no Cover block on it at the moment, so here are the settings that make the biggest difference:
- Overlay: select the Cover block, then Styles tab > Overlay. Pick a dark color (or your new brand color) and raise “Overlay opacity” until the text reads easily, usually 40-60% for white text. This is the single biggest improvement.
- Text color and size: set the heading inside the Cover to white or Base, and go one or two steps larger than normal text. Bold or larger text needs less contrast to stay readable.
- Focal point: in the Cover’s Settings, drag the focal point so the busy part of the photo sits away from the text.
- Text box: for very busy photos, put the text in a Group block inside the Cover and give that Group a background color (for example your brand color) plus some padding. The text then sits on a solid panel and stays readable over any image.
As a rule of thumb, if you have to squint at the text in the editor, visitors on a phone in daylight won’t be able to read it. Go darker with the overlay.
Hi @easyitlife,
Both problems have the same root and one site-wide fix, so nothing needs to be changed post by post.
Why it happens
By default, browsers are allowed to break Korean text between any two syllables, which is how “다크모드” ends up as “다크모” + “드”. The CSS property that switches this to word-based wrapping, breaking only at spaces the way Korean readers expect, is word-break: keep-all.
Tables have an extra cause. A new Table block has “Fixed width table cells” switched on by default. That makes every column the same width, and WordPress core then adds word-break: break-word to those cells. On a phone the equal columns get very narrow, so the words are forced to split.
The fix
Appearance > Editor > Styles > three-dot menu > Additional CSS, paste this and save:
/* Korean text: wrap at spaces, never inside a word */
body {
word-break: keep-all;
overflow-wrap: break-word;
}
/* Tables: size columns to their content instead of equal widths */
:root .wp-block-table table.has-fixed-layout {
table-layout: auto;
}
:root .wp-block-table table :is(td, th) {
word-break: keep-all;
}Notes:
- keep-all only changes how Korean, Chinese and Japanese text wraps. English text in the same posts behaves exactly as before.
- overflow-wrap: break-word is a safety net. A single string longer than the screen, such as a long URL, can still wrap instead of overflowing.
- The :root prefix is there only to outweigh core’s own table rules, so no !important is needed.
- It applies to all your existing and future posts at once.
Mobile-friendly tables
With the CSS above, a wide table no longer squeezes its words. When it doesn’t fit on a phone, it scrolls sideways instead, because core already wraps every Table block in a container with horizontal scrolling. That’s usually the most readable option for comparison tables. A few habits help as well:
- For new tables, you can also switch off “Fixed width table cells” in the block’s Settings sidebar. The CSS covers old tables, so this is optional.
- Keep tables meant for phones to two or three columns. Put long explanations in the text below the table, not inside cells.
- Editing tables is much easier on the PC. On Android, tap directly into a cell’s text to place the cursor, and use the toolbar’s “Edit table” button to add or remove rows and columns.
One more tip: if the site is in Korean, set Settings > General > Site Language to 한국어. The pages then declare lang=”ko-KR”, which helps browsers, screen readers and search engines handle the text correctly.
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] Basic Questions Before UsingHi @orangemarmalade,
Before anything else, about your third question: please don’t delete the site. You don’t need to, and it’s the one step that could lose your images.
- Media
Your Media Library doesn’t belong to the theme. The files live in wp-content/uploads and the entries in the database, so switching themes, or even deleting the old theme afterwards, leaves every image in place, ready to reuse. Only deleting the WordPress site itself (or a host’s “reinstall/reset”) would remove them.
The safe route: Appearance > Themes > Add New > Twenty Twenty-Five, then hover it and click “Live Preview” to look around without switching. When you’re ready, activate it and rebuild page by page; your existing posts and pages stay too. Take a backup first anyway, it’s good practice before any theme change.
What does not carry over from a classic theme: sidebars/widgets, and anything built with that theme’s own shortcodes or page builder. Old menus can be brought back: in the Navigation block’s menu options there’s “Import Classic Menus”.
- Patterns
They’re meant to be used quickly. Twenty Twenty-Five ships about 70 patterns in the inserter (+ > Patterns), grouped as Banners, Featured, Call to action, About, Services, Testimonials, Contact and so on, plus a dozen full-page layouts that appear in a “Choose a pattern” window when you create a new page.
Inserting one is instant. What you get is a copy filled with placeholder text and the theme’s demo images, so the only real “customization” is replacing those with your own. Colors and fonts follow your site styles automatically. So the useful preparation is:
- the text and images for each section, and
- choosing your colors and fonts first (Appearance > Editor > Styles, including the style variations), because every pattern picks them up.
Once you’ve tuned a section you want to repeat, select it and use the three-dot menu > “Create pattern”. If you mark it Synced, editing it once updates it everywhere it’s used.
- Font sizes
- Whole site: Appearance > Editor > Styles > Typography. “Text” sets the body size and “Headings” the heading sizes. “Font size presets” edits the size scale itself (Small to Extra Extra Large), and every block using a preset follows. The theme uses fluid typography, so these sizes also scale down on phones automatically.
- One section or one page: wrap the blocks in a Group (select them, Ctrl/Cmd+G) and set Typography > Size on the Group. Everything inside that doesn’t have its own size inherits it. Headings, and text inside patterns that already have a preset size, keep their own value; change those on the block itself.
Hope that helps you plan the move.
Glad you found it, @raywarburton, and thanks for reporting back. If everything looks right now, could you mark the topic as resolved (the status option on this topic page)? It helps others with long titles find the answer.
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] Center Logo on MobileHi @ashley_c, answering here as well so the solution sits in the right topic.
There’s no per-device setting for this in the block editor (the Row block’s justification applies to all screen sizes), so it’s a small CSS rule, but a safe one.
Twenty Twenty-Five’s header is a Row with the logo/title on the left and the navigation on the right. On phones the navigation collapses into the menu button below 600px, and that’s the breakpoint to use.
- Appearance > Editor > Patterns > Template parts > Header. In the List View select the Row that contains your logo and the navigation (Group > Group > the Row). Sidebar > Advanced > Additional CSS class(es): header-row. Save (tick “Header” in the save dialog).
- Appearance > Editor > Styles > three-dot menu > Additional CSS:
@media (max-width: 599px) {
.header-row {
flex-wrap: wrap;
justify-content: center;
}
.header-row > :first-child {
flex-basis: 100%;
display: flex;
justify-content: center;
}
}Result on phones: the logo (or the logo + site title group, whatever is first in the Row) is centered on its own line, and the menu button sits centered below it. If you’d rather keep the menu button on the right, replace justify-content: center in the first rule with justify-content: flex-end. Desktop is untouched.
If you set the navigation’s “Overlay Menu” to “Always”, the menu button also appears on larger screens; use max-width: 781px in that case so the two breakpoints match.
Alternative without CSS: on the same Row set Justification to Center and Orientation to Vertical. That centers the header on every device, including desktop, which may or may not be what you want.
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] White FontHi @ashley_c, answering here as well so the solution sits in the right topic.
When some text turns white and some refuses to, it’s almost never a CSS problem; it’s a priority problem inside the editor. Text color can be set at three levels, and the most specific one wins:
- Site-wide: Styles > Colors, or Styles > Blocks > Heading / Paragraph.
- On a container: a Group, Columns or Column block with its own Text color.
- On the block itself: the Heading or Paragraph has its own Text color, or part of the text has an inline “Highlight” color (the A-with-a-bar button in the text toolbar).
Setting white on the Group (level 2) does nothing for a heading that has its own color (level 3), and nothing at all for a Highlight, which is applied to the words themselves. Patterns and imported starter content very often set colors at level 3, which is exactly the “I changed the parent, nothing happened” experience.
How to fix each one:
- Click directly on the text, e.g. “essential services”. The sidebar shows Heading or Paragraph. Open the Styles tab (half-moon icon) > Color > Text. If a swatch is set, that’s the override: click it and choose Clear, or pick white.
- If Text is empty but the words still don’t change, select the words themselves, open the toolbar’s “More” (⌄) > Highlight, and clear the color there. Highlighted text shows as a <mark> element.
- If the text is a link or a button, it’s controlled by Color > Link (or the Button block’s own colors), not by Text.
- The “READY TO TAKE THE NEXT STEP?” section directly above the footer: if you can’t select it while editing the page, it belongs to the template or the Footer template part, not to the page. Edit it in Appearance > Editor; the fix is the same once you’re in the right place.
CSS as a last resort, if you prefer: select the Group that contains the section, Advanced > Additional CSS class(es): white-text. Then in Appearance > Editor > Styles > (three dots) > Additional CSS:
.white-text,
.white-text :is(h1, h2, h3, h4, h5, h6, p, li, a, mark) {
color: #fff !important;
}!important is needed only because the editor writes those block and highlight colors as inline styles, which beat any normal rule. Clearing them in the editor is the cleaner fix.
Hi @jindai,
Yes, there is a single supported setting, and you don’t need to touch the templates one by one.
Appearance > Editor > Styles > Blocks > Title > Typography. Text alignment is one of the optional controls in that panel, so if you don’t see it, click the three-dot “Typography options” button at the top of the panel and tick “Text alignment”. Choose Center, save.
That one value applies to every Post Title block on the site: the blog listing, archives, search results and single posts. In Twenty Twenty-Five none of the templates set an alignment on the title block, so nothing overrides it. Body text is untouched; the setting is scoped to the Title block only.
Two things to know:
- It also centers page titles, because pages use the same Title block. If you want pages left-aligned, open the Pages template (Appearance > Editor > Templates > Pages), select the title and set its alignment to Left in the toolbar; a value set on the block always wins over the site-wide one.
- If a title somewhere refuses to center, it already has its own alignment set in the template; select it there and clear it (Align > none), and the site-wide value takes over.
Why the CSS attempts were inconsistent: .entry-title doesn’t exist in block themes, and “h2 a” selectors center nothing because the link is inline inside the heading. The working selector is simply the block class:
.wp-block-post-title {
text-align: center;
}It should behave the same everywhere in this theme, because the title is a block-level heading inside a constrained group on every template. You’d only need it if you want different behaviour per context, e.g. only on single posts and the blog:
body.single-post .wp-block-post-title,
body.blog .wp-block-post-title {
text-align: center;
}And if you maintain a child theme, the same thing in theme.json, which is what the Styles UI writes for you:
{
"styles": {
"blocks": {
"core/post-title": {
"typography": {
"textAlign": "center"
}
}
}
}
}Hi @guleta,
Yes, and there’s no code needed. Twenty Twenty-Five limits content to 645px (text) and 1340px (“wide”) through theme.json, and every page template wraps the content in a constrained layout. “Container fluid” is just switching that constraint off where you want it. Three ways, depending on how many pages:
- One page, quick
Edit the page, select all blocks (Ctrl/Cmd+A in the canvas) and group them (Ctrl/Cmd+G). On the new Group: toolbar Align > Full width, then in the sidebar Layout panel turn off “Inner blocks use content width”. Everything inside now spans the viewport, keeping only the theme’s small side padding as a gutter. If you want a gutter-less edge-to-edge block (a Cover, Columns or Image), set that block itself to Align > Full width; the theme is root-padding aware, so full-width blocks really touch the edges.
- Many subpages: a dedicated template
Appearance > Editor > Templates > + (Add New Template) > Custom template, name it “Page Fluid”. In the empty canvas insert three blocks: the Header template part, a Post Content block, and the Footer template part (add a Post Title block above Post Content if you want titles). Select Post Content > Layout > turn off “Inner blocks use content width” (or keep it on and set its Content width to 100% if you’d like the Wide/Full alignment options to stay available). Save.
Then assign it: on each subpage, in the Page sidebar > Template > Page Fluid. For many pages at once: Pages list > tick the pages > Bulk actions > Edit > Template > Page Fluid > Update. Templates aren’t inherited by child pages automatically, so the bulk edit is the way to cover all subpages in one go.
Tip: the theme already ships a “Page No Title” template; it’s the same structure with the title removed, if you’d rather start from that.
- Whole site
Appearance > Editor > Styles > Layout: Content width and Wide width. Setting Content to 90% (or whatever you like) makes every page and post fluid. I’d avoid this one: it also widens blog posts, and text running across a 1900px screen is hard to read. Methods 1 and 2 keep posts as they are.
One readability note for whichever you choose: fluid containers are fine, fluid paragraphs are not. Inside your full-width Groups, drop text into an inner Group with “Inner blocks use content width” on, and only let Columns, Covers and galleries stretch.
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] TOP BAR NOT SHOWINGCENTER LOGO ON MOBILE:
There’s no per-device setting for this in the block editor (the Row block’s justification applies to all screen sizes), so it’s a small CSS rule, but a safe one.
Twenty Twenty-Five’s header is a Row with the logo/title on the left and the navigation on the right. On phones the navigation collapses into the menu button below 600px, and that’s the breakpoint to use.
- Appearance > Editor > Patterns > Template parts > Header. In the List View select the Row that contains your logo and the navigation (Group > Group > the Row). Sidebar > Advanced > Additional CSS class(es): header-row. Save (tick “Header” in the save dialog).
- Appearance > Editor > Styles > three-dot menu > Additional CSS:
@media (max-width: 599px) {
.header-row {
flex-wrap: wrap;
justify-content: center;
}
.header-row > :first-child {
flex-basis: 100%;
display: flex;
justify-content: center;
}
}Result on phones: the logo (or the logo + site title group, whatever is first in the Row) is centered on its own line, and the menu button sits centered below it. If you’d rather keep the menu button on the right, replace justify-content: center in the first rule with justify-content: flex-end. Desktop is untouched.
If you set the navigation’s “Overlay Menu” to “Always”, the menu button also appears on larger screens; use max-width: 781px in that case so the two breakpoints match.
Alternative without CSS: on the same Row set Justification to Center and Orientation to Vertical. That centers the header on every device, including desktop, which may or may not be what you want.
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] TOP BAR NOT SHOWINGWhen some text turns white and some refuses to, it’s almost never a CSS problem; it’s a priority problem inside the editor. Text color can be set at three levels, and the most specific one wins:
- Site-wide: Styles > Colors, or Styles > Blocks > Heading / Paragraph.
- On a container: a Group, Columns or Column block with its own Text color.
- On the block itself: the Heading or Paragraph has its own Text color, or part of the text has an inline “Highlight” color (the A-with-a-bar button in the text toolbar).
Setting white on the Group (level 2) does nothing for a heading that has its own color (level 3), and nothing at all for a Highlight, which is applied to the words themselves. Patterns and imported starter content very often set colors at level 3, which is exactly the “I changed the parent, nothing happened” experience.
How to fix each one:
- Click directly on the text, e.g. “essential services”. The sidebar shows Heading or Paragraph. Open the Styles tab (half-moon icon) > Color > Text. If a swatch is set, that’s the override: click it and choose Clear, or pick white.
- If Text is empty but the words still don’t change, select the words themselves, open the toolbar’s “More” (⌄) > Highlight, and clear the color there. Highlighted text shows as a element.
- If the text is a link or a button, it’s controlled by Color > Link (or the Button block’s own colors), not by Text.
- The “READY TO TAKE THE NEXT STEP?” section directly above the footer: if you can’t select it while editing the page, it belongs to the template or the Footer template part, not to the page. Edit it in Appearance > Editor; the fix is the same once you’re in the right place.
CSS as a last resort, if you prefer: select the Group that contains the section, Advanced > Additional CSS class(es): white-text. Then in Appearance > Editor > Styles > (three dots) > Additional CSS:
.white-text,
.white-text :is(h1, h2, h3, h4, h5, h6, p, li, a, mark) {
color: #fff !important;
}!important is needed only because the editor writes those block and highlight colors as inline styles, which beat any normal rule. Clearing them in the editor is the cleaner fix.
Forum: Themes and Templates
In reply to: [Twenty Twenty-Five] TOP BAR NOT SHOWINGHi @ashley_c,
The three symptoms you describe usually have one cause: the bar lives in the wrong place.
In Twenty Twenty-Five the header is a template part called “Header”, and all eight templates of the theme (pages, posts, archives, 404, home) use that same part. Anything you add there shows on every page. If the bar only shows on the home page, it was most likely added to the home page’s content (Pages > Edit) or to the home template itself, not to the Header part.
How to build it in the right place:
- Appearance > Editor > Patterns > Template parts > Header (or click the header on any page in the editor and choose “Edit” on the Header part).
- In the List View (the icon with three lines, top left) you’ll see Group > Group > Group(Row). Select the outermost Group and insert a Row block (Group > Row) as its first child, above the existing inner Group. Placed there it spans the full width.
- On the Row: Styles tab > Color > Background: pick a custom color and paste your logo blue as a hex value (e.g. #0a4f9c). Text: white. Layout: Justification “Space between”, Align “Full width”.
- Inside the Row: on the left a Paragraph with the phone number and e-mail (or two paragraphs in a small Row), on the right the Social Icons block.
- Save, and in the save dialog make sure the “Header” checkbox is ticked (the dialog lists each changed item separately; if only the template is ticked the part change is lost).
About the bar being white instead of blue on the home page: block colors are inline styles, so if the editor shows blue and the live page shows white, you’re most likely looking at a cached copy of the page. Check the page in a private window while logged out, and purge your caching plugin / host cache. “Shows for a moment, then gets pushed off the top” on other pages I can’t diagnose without seeing it; rebuild the bar as above first, it normally disappears with the misplacement.
Hi @raywarburton,
Quick correction first, because it explains why the snippets you found did nothing: Twenty Twenty-Five does not set white-space: nowrap on titles. The only nowrap rule in its theme.json is for the category/tag links (core/post-terms). So overriding “nowrap” targets a rule that isn’t there.
What you describe (lines of a wrapped title drawn on top of each other) is a line-height problem, not a wrapping problem. The base theme uses line-height 1.125 for headings, which wraps cleanly. But two of the theme’s presets change that: the “Noon” style variation and the “Beiruti & Literata” typography preset set headings to line-height 1.02 with the Beiruti font, and with that font’s tall vertical metrics multi-line titles visibly overlap. Did you pick one of those in Appearance > Editor > Styles? A custom line height set under Styles > Typography > Headings would do the same.
Fix without code:
Appearance > Editor > Styles > Typography > Headings > Line height: set it to 1.2 (or clear the value to fall back to the theme default). If you only want to change titles, use Styles > Blocks > Title instead.Fix with CSS (Appearance > Editor > Styles > three-dot menu > Additional CSS, or a CSS snippet in WPCode):
h1.wp-block-post-title,
.wp-block-post-title {
line-height: 1.2;
white-space: normal;
overflow-wrap: anywhere;
}Notes on that snippet:
- The selector matters. Block themes don’t use the classic .entry-title class; the title block is .wp-block-post-title (h1 on single posts and pages, h2/h3 inside Query Loops), so snippets written for classic themes won’t match anything.
- Since WordPress 6.6 the theme’s own styles are wrapped in :root :where(…), which has very low specificity, so this plain selector wins without !important.
- overflow-wrap: anywhere is a bonus: it also handles titles that are a single very long word or URL, which otherwise overflow the container on phones (there is an open core ticket about that for the default themes).
If it still happens after that, the value is coming from somewhere else (a plugin or another snippet). Right-click the title > Inspect > Computed tab > look up line-height and white-space; the source file shown next to each value tells you which plugin or stylesheet is setting it.
Hi @totezitrone,
Good news first: you don’t need JavaScript, and you don’t need a separate CSS file per block. Plain CSS still works in block themes. What changed is what sits underneath it. Think of it as three layers:
- theme.json for the design tokens (fonts, colours, spacing)
This is the one thing that replaced the old “variables at the top of style.scss” habit. Define your palette once in settings.color.palette and your fonts in settings.typography.fontFamilies. WordPress turns them into CSS custom properties (–wp–preset–color–accent-1, –wp–preset–font-family–manrope, …), loads them in the editor and on the front end, and shows them in the UI pickers. Changing a colour later means editing one line. Default styles for elements and blocks go in styles.elements (headings, links, buttons) and styles.blocks.
- Your own CSS file for everything else
Keep writing normal CSS (or Sass compiled to CSS) in style.css and enqueue it, exactly like before. Block themes don’t load style.css automatically, so a child theme needs a tiny functions.php:
add_action( 'wp_enqueue_scripts', function () {
wp_enqueue_style( 'my-child-style', get_stylesheet_uri(), array(), wp_get_theme()->get( 'Version' ) );
} );
add_action( 'after_setup_theme', function () {
add_editor_style( 'style.css' ); // same CSS inside the editor
} );Hooks you can rely on: the .wp-block-* classes, .is-style-* block style variations, and your own classes added under Advanced > Additional CSS class(es) in the block sidebar. Since WordPress 6.6 the theme.json output is wrapped in :root :where(…), so a plain class selector in your file wins without !important.
- Raw CSS inside theme.json, if you prefer one file
Since 6.2 theme.json accepts arbitrary CSS: top-level in styles.css, and per block in styles.blocks[“core/button”].css, where & stands for the block’s own selector. Twenty Twenty-Five does exactly this; open its theme.json and search for “css”.
Two gotchas that probably caused “the same problem” in both attempts:
- Don’t edit Twenty Twenty-Five itself; updates overwrite it. Also, TT5 loads style.min.css unless SCRIPT_DEBUG is on, so edits to its style.css do nothing. Use a child theme (Template: twentytwentyfive in the child’s style.css header) or your own theme from Create Block Theme.
- Anything you change in Site Editor > Styles is saved in the database and overrides theme.json. If you tweak something visually, use Create Block Theme > “Save changes to theme” to write it back into the files, so the files stay the source of truth.
So the workflow you’re used to still exists: edit theme.json and style.css in your editor, compile Sass if you like, reload. Additional CSS is meant for site owners, not for theme developers.
Docs:
https://developer.wordpress.org/themes/global-settings-and-styles/
https://developer.wordpress.org/themes/core-concepts/including-assets/
https://developer.wordpress.org/themes/advanced-topics/child-themes/