Style Engine: Preserve important state declarations - #12361
Conversation
|
Hi there! 👋 Thank you for your contribution to WordPress! 💖 It looks like this is your first pull request to No one monitors this repository for new pull requests. Pull requests must be attached to a Trac ticket to be considered for inclusion in WordPress Core. To attach a pull request to a Trac ticket, please include the ticket's full URL in your pull request description. Pull requests are never merged on GitHub. The WordPress codebase continues to be managed through the SVN repository that this GitHub repository mirrors. Please feel free to open pull requests to work on any contribution you are making. More information about how GitHub pull requests can be used to contribute to WordPress can be found in the Core Handbook. Please include automated tests. Including tests in your pull request is one way to help your patch be considered faster. To learn about WordPress' test suites, visit the Automated Testing page in the handbook. If you have not had a chance, please review the Contribute with Code page in the WordPress Core Handbook. The Developer Hub also documents the various coding standards that are followed:
Thank you, |
Test using WordPress PlaygroundThe 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
For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation. |
59e4d49 to
794f19d
Compare
| 'style' => array( | ||
| '@tablet' => array( | ||
| 'background' => array( | ||
| 'backgroundImage' => 'linear-gradient(135deg,rgb(119,255,112) 0%,rgb(253,254,215) 99%)', |
There was a problem hiding this comment.
That is not yet a faithful port of WordPress/gutenberg#79568.
I adapted the test temporarily because background.gradient style engine metadata is missing from Core.
See #11384
|
I would appreciate it if you could proceed with this PR and commit it in time for the 7.1 Beta1 release on July 15. |
|
I'll rebase this after #11384 lands and it should be good to go |
Co-authored-by: Ramon <ramonjd@users.noreply.github.com>
…g PR 79568. Assumes background gradient support from WordPress#11384. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
c934651 to
452e02a
Compare
|
The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the Core Committers: Use this line as a base for the props when committing in SVN: To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook. |
andrewserong
left a comment
There was a problem hiding this comment.
The backport looks clean to me, and overall I like the inclusions, too:
- Allowing the style engine to append
!importantviaadd_declarationfeels tidier - The use of an
optionsarray opens up the possibility for other flags in the future - The change in
states.phpalso makes things clearer IMO as there's a more explicit difference between the rules set to important, and those that are fallbacks
LGTM!
Important
This PR has a dependency on #11384
Backport of WordPress/gutenberg#79568
What
State styles currently append !important directly to CSS values before Style Engine sanitization. For gradient values, this can cause safecss_filter_attr() to reject otherwise valid declarations, so responsive/state gradient CSS may not be emitted.
How
Store !important as declaration metadata in the Style Engine, preserve it through rule generation and optimization, and append it only after sanitization.
Trac ticket: https://core.trac.wordpress.org/ticket/65561
Use of AI Tools
AI assistance: Yes
Tool(s): GitHub Copilot, ChatGPT
Model(s): GPT-5.5
Used for: Initial architectural discussion. Unit test scaffolding.