Skip to content

Bundled Themes: Update Ipsum for 7.2 Beta 5 - #15845

Closed
MaggieCabrera wants to merge 18 commits into
WordPress:trunkfrom
MaggieCabrera:sync/ipsum
Closed

MaggieCabrera wants to merge 18 commits into
WordPress:trunkfrom
MaggieCabrera:sync/ipsum

Conversation

@MaggieCabrera

@MaggieCabrera MaggieCabrera commented Nov 9, 2026 •

Copy link
Copy Markdown

This collects the Ipsum PRs merged since the last sync. It'll be committed late on Monday, November 9, or early on Tuesday, November 10, so it includes everything merged until then.

This merges the latest improvements to Ipsum from https://github.com/WordPress/ipsum into trunk for 7.2 Beta 5. Each commit brings over one merged Ipsum PR and links it, so they can be committed together or one at a time.

Only theme files come over. Repository tooling and development docs stay on GitHub, like in the import.

This round also has two core commits. They give Ipsum the same stylesheet minification as Twenty Twenty-Five, for the style.min.css that WordPress/ipsum#61 enqueues. Core's cssmin:themes Grunt task builds it, and the theme gets a core-only package.json, package-lock.json, .nvmrc and contributing.txt, so the default themes workflow can build it too. The minified file isn't committed.

The commit for WordPress/ipsum#192 also adds its regression tests in tests/phpunit/tests/theme/ipsumDesignGuide.php, with a child theme fixture. They live in core because Ipsum's repository has no PHPUnit setup.

Ipsum PRs included so far:

A full list of changes can be found on GitHub: WordPress/ipsum@17a7ada...bc2e5af

Trac ticket: https://core.trac.wordpress.org/ticket/66631

Testing Instructions

  1. Open the Playground preview and follow the testing steps in each Ipsum PR above.
  2. src/wp-content/themes/ipsum matches the theme files on Ipsum's trunk.

Use of AI Tools

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5.5
Used for: Watching the Ipsum repository for merges and bringing each one over as a commit. Every change was reviewed in its Ipsum PR.


This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

🤖 Generated with Claude Code

MaggieCabrera and others added 3 commits November 9, 2026 13:11
The Button block's focus outline gets a negative offset, so it sits inside the button like the Search block's button does.

Synced from WordPress/ipsum#187.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Browsers don't turn off view transitions for people who prefer reduced motion, so they still got the crossfade between pages. The cross-document view transition now only runs with `prefers-reduced-motion: no-preference`, like the theme's other animations.

Synced from WordPress/ipsum#198.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Pinned to Bottom, Row Hover and Dot Separator, which the patterns used as utility classes, are now block styles, so they show up in the Styles panel and the REST API. The pinned Search Bar's outlined button becomes the Outline style on Search. Nothing changes visually.

Synced from WordPress/ipsum#180.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Nov 9, 2026

Copy link
Copy Markdown

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

@MaggieCabrera MaggieCabrera changed the title WIP: Bundled Themes: Sync Ipsum with its GitHub repository WIP: Bundled Themes: Update Ipsum for 7.2 Beta 5 Nov 9, 2026
MaggieCabrera and others added 4 commits November 9, 2026 13:44
Core's PHPStan analysis has covered Ipsum since the import, and at level 10 it reported errors in the patterns and the design guide ability. Pattern images no longer get a `?ver=` query string, like the pattern images in Twenty Twenty-Four and Twenty Twenty-Five, and their URLs now come from `get_parent_theme_file_uri()`.

Synced from WordPress/ipsum#171.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
When `SCRIPT_DEBUG` is off, Ipsum now enqueues `style.min.css`, which is about a third of the size of `style.css`. It falls back to `style.css` when the minified file is missing or older, so edits made in the Theme File Editor keep working. The minified file isn't committed: core's build makes it, as it does for Twenty Twenty-Two and Twenty Twenty-Five.

Synced from WordPress/ipsum#61.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The patterns set the border radius corner by corner, even when all four corners are the same. They now use a single value, which is what the editor writes when the corners are linked and how Twenty Twenty-Five writes it. The corners look the same.

Synced from WordPress/ipsum#206.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ipsum is added to the `cssmin:themes` Grunt task, so `build:css` makes its `style.min.css` like it does for Twenty Twenty-Two and Twenty Twenty-Five, and the built file is ignored. Ipsum enqueues it when `SCRIPT_DEBUG` is off, and falls back to `style.css` until it's built.

Follow-up to [60934].

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaggieCabrera

MaggieCabrera commented Nov 9, 2026 •

Copy link
Copy Markdown
Author

one change in this round is outside the theme folder.

WordPress/ipsum#61 adds a minified stylesheet. Core doesn't commit built CSS, so style.min.css isn't in this PR. Instead, Ipsum gets the same setup as Twenty Twenty-Five (follow-up to #60934):

  • cssmin:themes in the Gruntfile builds style.min.css, and .gitignore ignores it.
  • The theme has a core-only package.json, package-lock.json, .nvmrc and contributing.txt, with the same build script and dependencies as Twenty Twenty-Five. Ipsum's GitHub package.json is repository tooling and stays there.
  • The default themes workflow tests Ipsum's build script and builds the minified file before zipping the theme.

Ipsum's functions.php loads style.min.css when SCRIPT_DEBUG is off. It falls back to style.css when the minified file is missing or older than style.css, so a checkout that hasn't been built keeps working.

MaggieCabrera and others added 2 commits November 9, 2026 14:51
This gives Ipsum the same stylesheet build as Twenty Twenty-Two and Twenty Twenty-Five, so the theme can build its own `style.min.css` outside of core's build.

* The build process is added to the theme (via `package.json`, `package-lock.json` and `.nvmrc`) with `build` and `watch` commands, using the same development dependencies as Twenty Twenty-Five.
* A new `contributing.txt` file documents the build process, and points to the GitHub repository where Ipsum is developed.
* The `test-and-zip-default-themes` GitHub workflow now tests Ipsum's build script and builds the minified stylesheet before packaging the theme.
* The theme's `node_modules` directory is ignored, and left out of core's build.

Follow-up to [60934].

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r patterns.

Every pattern now has a description and its blocks are named by what they do, so agents reading patterns through the REST API can tell them apart. New posts offer Format Link and Format Audio as starter patterns, and the sidebar part renders as an `<aside>` through the template part, like in Twenty Twenty-Four. Nothing changes visually.

Synced from WordPress/ipsum#181.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaggieCabrera
MaggieCabrera marked this pull request as ready for review November 9, 2026 14:42
@github-actions

github-actions Bot commented Nov 9, 2026 •

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs.

Core Committers: Use this line as a base for the props when committing in SVN:

Props onemaggie, peterwilsoncc.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.


Props Bot commands

You can trigger Props Bot actions by commenting on this PR:

  • @propsbot add <username> to give props to a GitHub user. Requires write access.
  • @propsbot remove <username> to leave a user out of the props. Requires write access.
  • @propsbot refresh to refresh this list. Adding the props-bot label works too.

@MaggieCabrera MaggieCabrera changed the title WIP: Bundled Themes: Update Ipsum for 7.2 Beta 5 Bundled Themes: Update Ipsum for 7.2 Beta 5 Nov 9, 2026
MaggieCabrera and others added 4 commits November 9, 2026 15:43
Calendar, Comments Form, Search and Jetpack Contact Form styles that `theme.json` can express move out of their `css` strings, so they can be edited in Global Styles. Three rules that did nothing are removed. Nothing looks different, except that a Calendar text color or Latest Posts block spacing set in Global Styles now applies.

Synced from WordPress/ipsum#185.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rns.

The patterns lose markup left over from building them in the editor, such as `patternName` metadata, query categories and the `area` attribute on template part blocks, which WordPress takes from the part itself. The rendered HTML is the same.

Synced from WordPress/ipsum#204.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`DESIGN.md` describes how to design with Ipsum, for anyone designing with the theme or their agent: what each preset is for and how the theme uses it, and what the style variations, templates, parts and block styles give you.

Synced from WordPress/ipsum#186.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The theme stylesheet gets `path` data, so WordPress can print it inline instead of loading it as a render-blocking request, like the Twenty Twenty-Two and Twenty Twenty-Five stylesheets.

Synced from WordPress/ipsum#63.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaggieCabrera

MaggieCabrera commented Nov 9, 2026 •

Copy link
Copy Markdown
Author

Props for this round, from the Props Bot lists on the Ipsum PRs it brings over:

Props yashjawale, juanfra, ravipatel, onemaggie, wildworks, shailu25, courane01, mikachan, westonruter, josephscott, poena, mehtadev, gziolo.

…ry has read them.

The `ipsum/get-design-guide` ability found the theme's patterns by their `filePath`, which the block patterns registry removes once a pattern's content is loaded, so the ability could return an incomplete or empty list. It now looks up the slugs of the theme's patterns, and its parent's, and reads only those patterns.

The regression tests live in core, since Ipsum's repository has no PHPUnit setup. A new child theme fixture covers a child theme's patterns and its parent's.

Synced from WordPress/ipsum#192.

See #66631.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MaggieCabrera

Copy link
Copy Markdown
Author

Also, in b2da500 we are adding the tests mentioned that need to be added to core for the commit to cover WordPress/ipsum#192. If we decide to move the abilities functionality to core we can patch Ipsum in the future to remove the changes in the theme.

@peterwilsoncc peterwilsoncc left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added some notes inline but I don't think anything blocks merge for this week's beta release.

I took the liberty of pushing a minor fix to the tests to add a missing $message parameter.

To avoid things getting out of sync, everything else can be fixed in the upstream repo.

* @since Ipsum 1.0
*
* @param array $presets The presets from the global settings, keyed by origin.
* @param mixed $presets The presets from the global settings, keyed by origin.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Description could do with an update to note non-array values are returned unchanged.

* Slug: ipsum/hidden-404
* Template Types: 404
* Inserter: no
* Description: The 404 template. It has the header, a “Page not found.” heading and a short note over the search field, and the footer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Non blocker for beta merge.

The description could read a little clearer, it's possibly as simple as adding the word theme

Suggested change
* Description: The 404 template. It has the header, a “Page not found.” heading and a short note over the search field, and the footer.
* Description: The 404 template. It has the theme header, a “Page not found.” heading and a short note over the search field, and the theme footer.

if (
SCRIPT_DEBUG
|| ! file_exists( $style_min_path )
|| ( filemtime( $style_path ) > filemtime( $style_min_path ) )

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As this is in the build step for WP-Dev, I think we can replace this with a simple SCRIPT_DEBUG.

The process for uploading themes to the theme repo is to use the zips generated by the build steps in wp-dev so it shouldn't be a problem as it too contains the compressed file, see this action run.


$this->assertContains( 'block-theme-with-hooked-blocks-child/child-pattern', $expected, 'The child theme should have a pattern of its own.' );
$this->assertContains( 'block-theme-with-hooked-blocks/footer-default', $expected, 'The parent theme should have a pattern.' );
$this->assertSame( $expected, $this->get_design_guide_pattern_slugs() );

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will need a $message parameter to aid debugging later.

@@ -0,0 +1,21 @@
=== Contributing to Ipsum ===

Ipsum is developed at https://github.com/WordPress/ipsum. Changes made there are synced to WordPress core, so please open issues and pull requests in that repository.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A little unclear which of the two repos "that repository" refers too. I think everything changes post release (unless there are plans otherwise for this theme) so not a big deal.

@github-actions

Copy link
Copy Markdown

A commit was made that fixes the Trac ticket referenced in the description of this pull request.

SVN changeset: 65366
GitHub commit: 055b013

This PR will be closed, but please confirm the accuracy of this and reopen if there is more work to be done.

@github-actions github-actions Bot closed this Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants