Opened 6 years ago
Closed 5 years ago
#44471 closed defect (bug) (fixed)
Theme Editor: Modern CSS is marked as errors by CodeMirror
Reported by: | ThemeZee | Owned by: | SergeyBiryukov |
---|---|---|---|
Milestone: | 5.4 | Priority: | normal |
Severity: | normal | Version: | 4.9 |
Component: | Editor | Keywords: | good-first-bug has-patch |
Focuses: | Cc: |
Description
I got some reports from users of my newest theme Donovan saying the style.css is broken.
The reason is that the code editor on Appearance > Theme Editor does not know modern CSS.
The CodeMirror plugin does not recognize CSS variables, new properties like grid-gap or the new fr units (fractions for CSS grids).
Attachments (2)
Change History (18)
#2
@
6 years ago
I think that since the Theme Editor is something that end-users can access, the CSS property validation should probably be disabled by default. The majority of users will not understand that these type of "errors", are not really errors. End-users seeing these unnecessary error notices could lead to them doubting themes, plugins an their developers. IMHO
#3
@
6 years ago
Yes, it is hard to explain to end users that the theme is working fine although WordPress Core shows a bunch of error notices. The majority of users thinks these are major theme issues, because updating the style.css is basically deactivated unless the extra checkbox is clicked.
Disabling the CSS property validation would be great, although I'm not sure if it works everywhere. The CSS variables cause an "Expected RBRACE" error. This could perhaps be a syntax validation issue, because CodeMirror doesn't know how to handle the two hyphens at the beginning.
This ticket was mentioned in Slack in #core by joyously. View the logs.
6 years ago
#7
@
6 years ago
This is also a problem in the Customizer, when changing the Extra CSS. grid-template-columns: 1fr;
is not recognised.
#8
@
6 years ago
Is this the place to report that the CSS font-display, descriptor for @font-face is listed as an unknown property on Wordpress version 5.2.1?
#10
@
5 years ago
so will this be fixed? having to constantly tell my editor that this CSS is perfectly fine is kinda driving me nuts.
#12
@
5 years ago
I second that. I write plenty of code for CSS grid, and none of it is recognized by the editor. I keep having to convince it (after every edit) that they are not mistakes. I understand that CSS evolves, and that the editor will lag behind somewhat for that reason. But CSS grid has been around for quite some time now and is fully accepted by all browsers (except IE), and you would think expanding the list with allowed code should not be too difficult. We had an update of WP last week, but again no changes in this respect...
#14
@
5 years ago
- Keywords needs-patch good-first-bug added; 2nd-opinion removed
- Milestone changed from Awaiting Review to 5.4
As #49062 shows, the CSS linting is not very reliable, displaying an error for Twenty Twenty default stylesheet with no particular error message.
Let's disable the linting by default, and perhaps make it a configurable setting that plugin authors could enable.
#15
@
5 years ago
- Keywords has-patch added; needs-patch removed
Quick patch for this task.
In essence at src/wp-includes/general-template.php:3729
I changed the lint
value to false. This impacts the $settings['codemirror']
array, which is already filterable via wp_code_editor_settings
. If plugin authors which to enable CSS linting, then they can use that filter to override the (now) default false
value.
I feel like this is something that Codemirror will forever be playing catch-up with, especially given the pace of CSS development at the moment.
I wonder whether it's better for the CSS property validation to be disabled?