New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Block editor: add a way to extend style dependency handles for editor content #37466
base: trunk
Are you sure you want to change the base?
Block editor: add a way to extend style dependency handles for editor content #37466
Conversation
Size Change: +268 B (0%) Total Size: 1.13 MB
|
Filename | Size |
---|---|
build/a11y/index.min.js |
960 B |
build/admin-manifest/index.min.js |
1.1 kB |
build/annotations/index.min.js |
2.75 kB |
build/api-fetch/index.min.js |
2.21 kB |
build/autop/index.min.js |
2.12 kB |
build/blob/index.min.js |
459 B |
build/block-directory/index.min.js |
6.28 kB |
build/block-directory/style-rtl.css |
1.01 kB |
build/block-directory/style.css |
1.01 kB |
build/block-editor/default-editor-styles-rtl.css |
378 B |
build/block-editor/default-editor-styles.css |
378 B |
build/block-editor/style-rtl.css |
14.6 kB |
build/block-editor/style.css |
14.6 kB |
build/block-library/blocks/archives/editor-rtl.css |
61 B |
build/block-library/blocks/archives/editor.css |
60 B |
build/block-library/blocks/archives/style-rtl.css |
65 B |
build/block-library/blocks/archives/style.css |
65 B |
build/block-library/blocks/audio/editor-rtl.css |
150 B |
build/block-library/blocks/audio/editor.css |
150 B |
build/block-library/blocks/audio/style-rtl.css |
111 B |
build/block-library/blocks/audio/style.css |
111 B |
build/block-library/blocks/audio/theme-rtl.css |
125 B |
build/block-library/blocks/audio/theme.css |
125 B |
build/block-library/blocks/block/editor-rtl.css |
161 B |
build/block-library/blocks/block/editor.css |
161 B |
build/block-library/blocks/button/editor-rtl.css |
470 B |
build/block-library/blocks/button/editor.css |
470 B |
build/block-library/blocks/button/style-rtl.css |
560 B |
build/block-library/blocks/button/style.css |
560 B |
build/block-library/blocks/buttons/editor-rtl.css |
292 B |
build/block-library/blocks/buttons/editor.css |
292 B |
build/block-library/blocks/buttons/style-rtl.css |
275 B |
build/block-library/blocks/buttons/style.css |
275 B |
build/block-library/blocks/calendar/style-rtl.css |
207 B |
build/block-library/blocks/calendar/style.css |
207 B |
build/block-library/blocks/categories/editor-rtl.css |
84 B |
build/block-library/blocks/categories/editor.css |
83 B |
build/block-library/blocks/categories/style-rtl.css |
79 B |
build/block-library/blocks/categories/style.css |
79 B |
build/block-library/blocks/code/style-rtl.css |
90 B |
build/block-library/blocks/code/style.css |
90 B |
build/block-library/blocks/code/theme-rtl.css |
131 B |
build/block-library/blocks/code/theme.css |
131 B |
build/block-library/blocks/columns/editor-rtl.css |
108 B |
build/block-library/blocks/columns/editor.css |
108 B |
build/block-library/blocks/columns/style-rtl.css |
406 B |
build/block-library/blocks/columns/style.css |
406 B |
build/block-library/blocks/comment-template/style-rtl.css |
127 B |
build/block-library/blocks/comment-template/style.css |
127 B |
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css |
123 B |
build/block-library/blocks/comments-pagination-numbers/editor.css |
121 B |
build/block-library/blocks/comments-pagination/editor-rtl.css |
222 B |
build/block-library/blocks/comments-pagination/editor.css |
209 B |
build/block-library/blocks/comments-pagination/style-rtl.css |
235 B |
build/block-library/blocks/comments-pagination/style.css |
231 B |
build/block-library/blocks/cover/editor-rtl.css |
546 B |
build/block-library/blocks/cover/editor.css |
547 B |
build/block-library/blocks/cover/style-rtl.css |
1.22 kB |
build/block-library/blocks/cover/style.css |
1.22 kB |
build/block-library/blocks/embed/editor-rtl.css |
293 B |
build/block-library/blocks/embed/editor.css |
293 B |
build/block-library/blocks/embed/style-rtl.css |
417 B |
build/block-library/blocks/embed/style.css |
417 B |
build/block-library/blocks/embed/theme-rtl.css |
124 B |
build/block-library/blocks/embed/theme.css |
124 B |
build/block-library/blocks/file/editor-rtl.css |
300 B |
build/block-library/blocks/file/editor.css |
300 B |
build/block-library/blocks/file/style-rtl.css |
255 B |
build/block-library/blocks/file/style.css |
255 B |
build/block-library/blocks/file/view.min.js |
322 B |
build/block-library/blocks/freeform/editor-rtl.css |
2.44 kB |
build/block-library/blocks/freeform/editor.css |
2.44 kB |
build/block-library/blocks/gallery/editor-rtl.css |
965 B |
build/block-library/blocks/gallery/editor.css |
967 B |
build/block-library/blocks/gallery/style-rtl.css |
1.6 kB |
build/block-library/blocks/gallery/style.css |
1.6 kB |
build/block-library/blocks/gallery/theme-rtl.css |
122 B |
build/block-library/blocks/gallery/theme.css |
122 B |
build/block-library/blocks/group/editor-rtl.css |
159 B |
build/block-library/blocks/group/editor.css |
159 B |
build/block-library/blocks/group/style-rtl.css |
57 B |
build/block-library/blocks/group/style.css |
57 B |
build/block-library/blocks/group/theme-rtl.css |
78 B |
build/block-library/blocks/group/theme.css |
78 B |
build/block-library/blocks/heading/style-rtl.css |
114 B |
build/block-library/blocks/heading/style.css |
114 B |
build/block-library/blocks/html/editor-rtl.css |
332 B |
build/block-library/blocks/html/editor.css |
333 B |
build/block-library/blocks/image/editor-rtl.css |
810 B |
build/block-library/blocks/image/editor.css |
809 B |
build/block-library/blocks/image/style-rtl.css |
507 B |
build/block-library/blocks/image/style.css |
511 B |
build/block-library/blocks/image/theme-rtl.css |
124 B |
build/block-library/blocks/image/theme.css |
124 B |
build/block-library/blocks/latest-comments/style-rtl.css |
284 B |
build/block-library/blocks/latest-comments/style.css |
284 B |
build/block-library/blocks/latest-posts/editor-rtl.css |
137 B |
build/block-library/blocks/latest-posts/editor.css |
137 B |
build/block-library/blocks/latest-posts/style-rtl.css |
528 B |
build/block-library/blocks/latest-posts/style.css |
527 B |
build/block-library/blocks/list/style-rtl.css |
94 B |
build/block-library/blocks/list/style.css |
94 B |
build/block-library/blocks/media-text/editor-rtl.css |
266 B |
build/block-library/blocks/media-text/editor.css |
263 B |
build/block-library/blocks/media-text/style-rtl.css |
493 B |
build/block-library/blocks/media-text/style.css |
490 B |
build/block-library/blocks/more/editor-rtl.css |
431 B |
build/block-library/blocks/more/editor.css |
431 B |
build/block-library/blocks/navigation-link/editor-rtl.css |
649 B |
build/block-library/blocks/navigation-link/editor.css |
650 B |
build/block-library/blocks/navigation-link/style-rtl.css |
94 B |
build/block-library/blocks/navigation-link/style.css |
94 B |
build/block-library/blocks/navigation-submenu/editor-rtl.css |
299 B |
build/block-library/blocks/navigation-submenu/editor.css |
299 B |
build/block-library/blocks/navigation-submenu/view.min.js |
343 B |
build/block-library/blocks/navigation/editor-rtl.css |
1.93 kB |
build/block-library/blocks/navigation/editor.css |
1.94 kB |
build/block-library/blocks/navigation/style-rtl.css |
1.83 kB |
build/block-library/blocks/navigation/style.css |
1.82 kB |
build/block-library/blocks/navigation/view.min.js |
2.82 kB |
build/block-library/blocks/nextpage/editor-rtl.css |
395 B |
build/block-library/blocks/nextpage/editor.css |
395 B |
build/block-library/blocks/page-list/editor-rtl.css |
401 B |
build/block-library/blocks/page-list/editor.css |
402 B |
build/block-library/blocks/page-list/style-rtl.css |
175 B |
build/block-library/blocks/page-list/style.css |
175 B |
build/block-library/blocks/paragraph/editor-rtl.css |
157 B |
build/block-library/blocks/paragraph/editor.css |
157 B |
build/block-library/blocks/paragraph/style-rtl.css |
273 B |
build/block-library/blocks/paragraph/style.css |
273 B |
build/block-library/blocks/post-author/style-rtl.css |
175 B |
build/block-library/blocks/post-author/style.css |
176 B |
build/block-library/blocks/post-comments-form/style-rtl.css |
446 B |
build/block-library/blocks/post-comments-form/style.css |
446 B |
build/block-library/blocks/post-comments/style-rtl.css |
521 B |
build/block-library/blocks/post-comments/style.css |
521 B |
build/block-library/blocks/post-excerpt/editor-rtl.css |
73 B |
build/block-library/blocks/post-excerpt/editor.css |
73 B |
build/block-library/blocks/post-excerpt/style-rtl.css |
69 B |
build/block-library/blocks/post-excerpt/style.css |
69 B |
build/block-library/blocks/post-featured-image/editor-rtl.css |
721 B |
build/block-library/blocks/post-featured-image/editor.css |
721 B |
build/block-library/blocks/post-featured-image/style-rtl.css |
153 B |
build/block-library/blocks/post-featured-image/style.css |
153 B |
build/block-library/blocks/post-template/editor-rtl.css |
99 B |
build/block-library/blocks/post-template/editor.css |
98 B |
build/block-library/blocks/post-template/style-rtl.css |
305 B |
build/block-library/blocks/post-template/style.css |
305 B |
build/block-library/blocks/post-terms/style-rtl.css |
73 B |
build/block-library/blocks/post-terms/style.css |
73 B |
build/block-library/blocks/post-title/style-rtl.css |
80 B |
build/block-library/blocks/post-title/style.css |
80 B |
build/block-library/blocks/preformatted/style-rtl.css |
103 B |
build/block-library/blocks/preformatted/style.css |
103 B |
build/block-library/blocks/pullquote/editor-rtl.css |
198 B |
build/block-library/blocks/pullquote/editor.css |
198 B |
build/block-library/blocks/pullquote/style-rtl.css |
389 B |
build/block-library/blocks/pullquote/style.css |
388 B |
build/block-library/blocks/pullquote/theme-rtl.css |
167 B |
build/block-library/blocks/pullquote/theme.css |
167 B |
build/block-library/blocks/query-pagination-numbers/editor-rtl.css |
122 B |
build/block-library/blocks/query-pagination-numbers/editor.css |
121 B |
build/block-library/blocks/query-pagination/editor-rtl.css |
221 B |
build/block-library/blocks/query-pagination/editor.css |
211 B |
build/block-library/blocks/query-pagination/style-rtl.css |
234 B |
build/block-library/blocks/query-pagination/style.css |
231 B |
build/block-library/blocks/query/editor-rtl.css |
131 B |
build/block-library/blocks/query/editor.css |
132 B |
build/block-library/blocks/quote/style-rtl.css |
187 B |
build/block-library/blocks/quote/style.css |
187 B |
build/block-library/blocks/quote/theme-rtl.css |
223 B |
build/block-library/blocks/quote/theme.css |
226 B |
build/block-library/blocks/rss/editor-rtl.css |
202 B |
build/block-library/blocks/rss/editor.css |
204 B |
build/block-library/blocks/rss/style-rtl.css |
289 B |
build/block-library/blocks/rss/style.css |
288 B |
build/block-library/blocks/search/editor-rtl.css |
165 B |
build/block-library/blocks/search/editor.css |
165 B |
build/block-library/blocks/search/style-rtl.css |
397 B |
build/block-library/blocks/search/style.css |
398 B |
build/block-library/blocks/search/theme-rtl.css |
64 B |
build/block-library/blocks/search/theme.css |
64 B |
build/block-library/blocks/separator/editor-rtl.css |
99 B |
build/block-library/blocks/separator/editor.css |
99 B |
build/block-library/blocks/separator/style-rtl.css |
245 B |
build/block-library/blocks/separator/style.css |
245 B |
build/block-library/blocks/separator/theme-rtl.css |
172 B |
build/block-library/blocks/separator/theme.css |
172 B |
build/block-library/blocks/shortcode/editor-rtl.css |
474 B |
build/block-library/blocks/shortcode/editor.css |
474 B |
build/block-library/blocks/site-logo/editor-rtl.css |
744 B |
build/block-library/blocks/site-logo/editor.css |
744 B |
build/block-library/blocks/site-logo/style-rtl.css |
181 B |
build/block-library/blocks/site-logo/style.css |
181 B |
build/block-library/blocks/site-tagline/editor-rtl.css |
86 B |
build/block-library/blocks/site-tagline/editor.css |
86 B |
build/block-library/blocks/site-title/editor-rtl.css |
84 B |
build/block-library/blocks/site-title/editor.css |
84 B |
build/block-library/blocks/social-link/editor-rtl.css |
177 B |
build/block-library/blocks/social-link/editor.css |
177 B |
build/block-library/blocks/social-links/editor-rtl.css |
670 B |
build/block-library/blocks/social-links/editor.css |
669 B |
build/block-library/blocks/social-links/style-rtl.css |
1.32 kB |
build/block-library/blocks/social-links/style.css |
1.32 kB |
build/block-library/blocks/spacer/editor-rtl.css |
332 B |
build/block-library/blocks/spacer/editor.css |
332 B |
build/block-library/blocks/spacer/style-rtl.css |
48 B |
build/block-library/blocks/spacer/style.css |
48 B |
build/block-library/blocks/table/editor-rtl.css |
471 B |
build/block-library/blocks/table/editor.css |
472 B |
build/block-library/blocks/table/style-rtl.css |
481 B |
build/block-library/blocks/table/style.css |
481 B |
build/block-library/blocks/table/theme-rtl.css |
188 B |
build/block-library/blocks/table/theme.css |
188 B |
build/block-library/blocks/tag-cloud/style-rtl.css |
214 B |
build/block-library/blocks/tag-cloud/style.css |
215 B |
build/block-library/blocks/template-part/editor-rtl.css |
560 B |
build/block-library/blocks/template-part/editor.css |
559 B |
build/block-library/blocks/template-part/theme-rtl.css |
101 B |
build/block-library/blocks/template-part/theme.css |
101 B |
build/block-library/blocks/text-columns/editor-rtl.css |
95 B |
build/block-library/blocks/text-columns/editor.css |
95 B |
build/block-library/blocks/text-columns/style-rtl.css |
166 B |
build/block-library/blocks/text-columns/style.css |
166 B |
build/block-library/blocks/verse/style-rtl.css |
87 B |
build/block-library/blocks/verse/style.css |
87 B |
build/block-library/blocks/video/editor-rtl.css |
571 B |
build/block-library/blocks/video/editor.css |
572 B |
build/block-library/blocks/video/style-rtl.css |
173 B |
build/block-library/blocks/video/style.css |
173 B |
build/block-library/blocks/video/theme-rtl.css |
124 B |
build/block-library/blocks/video/theme.css |
124 B |
build/block-library/common-rtl.css |
908 B |
build/block-library/common.css |
905 B |
build/block-library/editor-rtl.css |
10 kB |
build/block-library/editor.css |
10 kB |
build/block-library/index.min.js |
164 kB |
build/block-library/reset-rtl.css |
474 B |
build/block-library/reset.css |
474 B |
build/block-library/style-rtl.css |
10.8 kB |
build/block-library/style.css |
10.8 kB |
build/block-library/theme-rtl.css |
672 B |
build/block-library/theme.css |
676 B |
build/block-serialization-default-parser/index.min.js |
1.09 kB |
build/block-serialization-spec-parser/index.min.js |
2.79 kB |
build/blocks/index.min.js |
46.3 kB |
build/components/index.min.js |
214 kB |
build/components/style-rtl.css |
15.5 kB |
build/components/style.css |
15.5 kB |
build/compose/index.min.js |
11.2 kB |
build/core-data/index.min.js |
13.3 kB |
build/customize-widgets/index.min.js |
11.4 kB |
build/customize-widgets/style-rtl.css |
1.5 kB |
build/customize-widgets/style.css |
1.49 kB |
build/data-controls/index.min.js |
631 B |
build/data/index.min.js |
7.49 kB |
build/date/index.min.js |
31.9 kB |
build/deprecated/index.min.js |
485 B |
build/dom-ready/index.min.js |
304 B |
build/dom/index.min.js |
4.5 kB |
build/edit-navigation/index.min.js |
16 kB |
build/edit-navigation/style-rtl.css |
3.76 kB |
build/edit-navigation/style.css |
3.76 kB |
build/edit-post/classic-rtl.css |
546 B |
build/edit-post/classic.css |
547 B |
build/edit-post/style-rtl.css |
7.16 kB |
build/edit-post/style.css |
7.16 kB |
build/edit-site/style-rtl.css |
6.83 kB |
build/edit-site/style.css |
6.82 kB |
build/edit-widgets/index.min.js |
16.5 kB |
build/edit-widgets/style-rtl.css |
4.17 kB |
build/edit-widgets/style.css |
4.17 kB |
build/editor/style-rtl.css |
3.71 kB |
build/editor/style.css |
3.7 kB |
build/element/index.min.js |
3.29 kB |
build/escape-html/index.min.js |
517 B |
build/format-library/index.min.js |
6.58 kB |
build/format-library/style-rtl.css |
571 B |
build/format-library/style.css |
571 B |
build/hooks/index.min.js |
1.63 kB |
build/html-entities/index.min.js |
424 B |
build/i18n/index.min.js |
3.71 kB |
build/is-shallow-equal/index.min.js |
501 B |
build/keyboard-shortcuts/index.min.js |
1.8 kB |
build/keycodes/index.min.js |
1.39 kB |
build/list-reusable-blocks/index.min.js |
1.72 kB |
build/list-reusable-blocks/style-rtl.css |
838 B |
build/list-reusable-blocks/style.css |
838 B |
build/media-utils/index.min.js |
2.92 kB |
build/notices/index.min.js |
925 B |
build/nux/index.min.js |
2.08 kB |
build/nux/style-rtl.css |
747 B |
build/nux/style.css |
743 B |
build/plugins/index.min.js |
1.84 kB |
build/primitives/index.min.js |
924 B |
build/priority-queue/index.min.js |
582 B |
build/react-i18n/index.min.js |
671 B |
build/react-refresh-entry/index.min.js |
8.44 kB |
build/react-refresh-runtime/index.min.js |
7.31 kB |
build/redux-routine/index.min.js |
2.65 kB |
build/reusable-blocks/index.min.js |
2.22 kB |
build/reusable-blocks/style-rtl.css |
256 B |
build/reusable-blocks/style.css |
256 B |
build/rich-text/index.min.js |
11 kB |
build/server-side-render/index.min.js |
1.58 kB |
build/shortcode/index.min.js |
1.49 kB |
build/token-list/index.min.js |
639 B |
build/url/index.min.js |
1.9 kB |
build/viewport/index.min.js |
1.05 kB |
build/warning/index.min.js |
248 B |
build/widgets/index.min.js |
7.15 kB |
build/widgets/style-rtl.css |
1.16 kB |
build/widgets/style.css |
1.16 kB |
build/wordcount/index.min.js |
1.04 kB |
8527e4f
to
9f48ff1
Compare
|
||
sheet.deleteRule( index ); | ||
sheet.insertRule( | ||
'html :where(.editor-styles-wrapper) ' + cssText, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey, I don't understand why we're prefixing the styles with html :where(.editor-styles-wrapper)
instead of .editor-styles-wapper
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I'm not mistaken I think it's just to lower the specificity, but I'm also curious to know if that is indeed the case or not
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah, I understand it lowers the specificity but I don't know why. I guess my question is: why the styles loaded through a wp dependency should be any different than the styles loaded via add_editor_styles
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I just used the same thing as #32659. But I guess if we consistently increase the specificity of all styles, this is not necessary. Cc @jasmussen.
function PrefixedStyle( { tagName, href, id, rel, media, textContent } ) { | ||
const TagName = tagName.toLowerCase(); | ||
|
||
function onLoad( event ) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This technique is cool, though there's a noticeable delay in the styles being applied. Presumably, because we add the stylesheet in the client after all things have been already loaded and the onLoad
event happens even after.
Thinking about how to improve this:
- What if we convert all styles (both
link
andstyle
) to embedded styles (style
) and prefixed them just here, so we don't wait toonLoad
to do it? - Alternatively, would it make sense to add the stylesheets in the server (no passing them through
__unstableResolvedContentStyles
) and attach to itsonLoad
event a public function that takes care of prefixing them? While we still rely on theonLoad
event here it'll happen earlier because we're not adding it in the client.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The good think here is that we don't have to do any CSS parsing. I talked with @mcsf about the delay. I wonder if we could block the original CSS from applying, maybe by emptying and later refilling it.
It would be good if we don't have to do any parsing. I was hoping there would be some API to scope link and style tags to a given selector, but that doesn't exist apparently.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This would be ideal: https://css-tricks.com/saving-the-day-with-scoped-css/
await openDocumentSettingsSidebar(); | ||
await clickButton( 'Page' ); | ||
await clickButton( 'Template' ); | ||
await clickButton( 'New' ); | ||
await page.keyboard.press( 'Tab' ); | ||
await page.keyboard.press( 'Tab' ); | ||
await page.keyboard.type( 'Iframed Test' ); | ||
await clickButton( 'Create' ); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be something to package as a util, for clarity and visibility.
9f48ff1
to
4aa9fe4
Compare
4aa9fe4
to
251b6c9
Compare
So I'm not sure why two e2e tests are failing. They're passing locally and they were passing before the last PR. |
@ellatrix, it looks like all checks are passing now. |
Description
#35950 but without using it for internal styles. This PR adds the possibility to add a WP style dependency handle to the block editor settings, which will be resolved afterwards and added as content styles. If the editor is not iframed, the styles will be prefixed.
An example can be found in the e2e test:
How has this been tested?
Screenshots
Types of changes
Checklist:
*.native.js
files for terms that need renaming or removal).