[wp-trac] [WordPress Trac] #64389: Breaking change in 6.9 -> WP Core CSS now forces all links to underline.
WordPress Trac
noreply at wordpress.org
Tue Dec 9 20:43:46 UTC 2025
#64389: Breaking change in 6.9 -> WP Core CSS now forces all links to underline.
--------------------------+-----------------------------
Reporter: mmorris8 | Owner: (none)
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Themes | Version: 6.9
Severity: major | Keywords:
Focuses: css |
--------------------------+-----------------------------
The offending line:
```
a:where(:not(.wp-element-button)) {
text-decoration: underline;
}
```
My theme is uses a straightforward button class, but does so on a CSS
layer. Five years after CSS @layer was widely avaialable and WordPress
still doesn't respect it. That wouldn't be a problem except y'all are
inserting global rules like this that break people's themes and create
work for them.
Simply remove this. Or fix the larger problem of WorldPress putting all
it's global inline styles on the root layer. It's a 1 line code change in
wp-includes/global-styles-and-settings.php
Specifically change line 238 from
{{{#!php
<?php
$stylesheet = $styles_variables . $styles_rest;
}}}
to
{{{#!php
<?php
$stylesheet = "@layer wp { $styles_variables $styles_rest }";
}}}
This will allow themes that want to organize their CSS using @layer to
declare wp as one of their layers - further they can declare the priority
of the wordpress sheets in relation to their own. If the theme does not
do this the wp layer will be put on the end of the chain of layers causing
it to preempt the other layered styles (which it already does because it
is currently "unlayered")
I realize this isn't a long term fix. It isn't intended to be. I've read
the discussions on CSS Layer adoption and they get bogged down in with
complex implemenation details I frankly don't see the point of. For now,
if it comes out of wordpress put it on the wp layer. The CSS Layers spec
allows for sub layers, so working out what those are and allowing blocks
to declare layers and priorities can be sussed out at a later time.
Or, third option, give us a hook here so we can modify the CSS about to be
cached so we can wrap it as desired.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64389>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list