Global Styles: Add support for loading CSS
from external files in theme.json
#69564
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What?
Closes: #69484
This PR adds a new feature to theme.json that allows theme authors to load CSS for blocks from external files instead of embedding it directly in the theme.json file. This is done through a new
file:
prefix syntax in the css property.Why?
This enhancement allows theme authors to organize their CSS in dedicated files, and use it in the theme.json
How?
The implementation adds support for a special file: prefix in the css property value in theme.json. When detected, the code:
wp_enqueue_block_style()
function to properly enqueue the fileThis keeps the implementation simple while leveraging existing WordPress functions for style enqueueing, ensuring compatibility with the WordPress CSS loading system.
Testing Instructions
test/emptytheme
emptytheme
inAppearance > Themes > Empty Theme
/assets/css/navigation.css
and/assets/css/paragraph.css
Screenshots or screencast
A comprehensive video of how I tested this feature locally:
Screen.Recording.2025-03-14.at.4.29.29.PM.mov