Skip to content
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

Add labels to the global styles variations #39322

Merged
merged 9 commits into from
Mar 24, 2022
Merged

Conversation

youknowriad
Copy link
Contributor

@youknowriad youknowriad commented Mar 9, 2022

What?

closes #38918

This PR adds "labels" to the global styles variations shown in the site editor sidebar.

Why?

Something the colors and the previews are not enough to differentiate between the available variations. This PRs allows theme authors to provide a name for each style variation to disambiguate between them.

How?

Theme authors can add a top level name property to the json file for each variation. If no name is provided, we fallback to the file name (without the extension).

I'll be needing some help here to make this new property translatable. cc @oandregal @swissspidy

Testing Instructions

  • Add a theme.json like file (same format as theme.json but different name potentially) to the styles folder of your theme
  • Add a top level name property in the JSON
  • Open the site editor
  • On the styles sidebar (if it's closed, you should be able to open it by clicking the "Styles" button on the top toolbar), you should be able to click "Other styles".
  • A list of available style variations should be shown corresponding to the alternative theme.json files in the styles folder of your theme. Each style variation should have the proper label corresponding to the "name" property in the theme.json file.

Screenshots or screencast

Screen.Recording.2022-03-09.at.5.51.31.PM.mov

@youknowriad youknowriad added [Type] Enhancement A suggestion for improvement. Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json labels Mar 9, 2022
@youknowriad youknowriad self-assigned this Mar 9, 2022
@github-actions
Copy link

github-actions bot commented Mar 9, 2022

Size Change: +464 B (0%)

Total Size: 1.21 MB

Filename Size Change
build/edit-site/index.min.js 45.4 kB +425 B (+1%)
build/edit-site/style-rtl.css 7.6 kB +20 B (0%)
build/edit-site/style.css 7.58 kB +19 B (0%)
ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 993 B
build/admin-manifest/index.min.js 1.24 kB
build/annotations/index.min.js 2.77 kB
build/api-fetch/index.min.js 2.27 kB
build/autop/index.min.js 2.15 kB
build/blob/index.min.js 487 B
build/block-directory/index.min.js 6.49 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/index.min.js 146 kB
build/block-editor/style-rtl.css 15.4 kB
build/block-editor/style.css 15.4 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/avatar/editor-rtl.css 59 B
build/block-library/blocks/avatar/editor.css 59 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 445 B
build/block-library/blocks/button/editor.css 445 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 103 B
build/block-library/blocks/code/style.css 103 B
build/block-library/blocks/code/theme-rtl.css 124 B
build/block-library/blocks/code/theme.css 124 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-author-avatar/editor-rtl.css 125 B
build/block-library/blocks/comment-author-avatar/editor.css 125 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/comments-query-loop/editor-rtl.css 95 B
build/block-library/blocks/comments-query-loop/editor.css 95 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.56 kB
build/block-library/blocks/cover/style.css 1.56 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 353 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 961 B
build/block-library/blocks/gallery/editor.css 964 B
build/block-library/blocks/gallery/style-rtl.css 1.51 kB
build/block-library/blocks/gallery/style.css 1.51 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 731 B
build/block-library/blocks/image/editor.css 730 B
build/block-library/blocks/image/style-rtl.css 529 B
build/block-library/blocks/image/style.css 535 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 199 B
build/block-library/blocks/latest-posts/editor.css 198 B
build/block-library/blocks/latest-posts/style-rtl.css 447 B
build/block-library/blocks/latest-posts/style.css 446 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 708 B
build/block-library/blocks/navigation-link/editor.css 706 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 375 B
build/block-library/blocks/navigation/editor-rtl.css 2.03 kB
build/block-library/blocks/navigation/editor.css 2.04 kB
build/block-library/blocks/navigation/style-rtl.css 1.89 kB
build/block-library/blocks/navigation/style.css 1.88 kB
build/block-library/blocks/navigation/view.min.js 2.85 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 363 B
build/block-library/blocks/page-list/editor.css 363 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 323 B
build/block-library/blocks/post-template/style.css 323 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 370 B
build/block-library/blocks/pullquote/style.css 370 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 201 B
build/block-library/blocks/quote/style.css 201 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/read-more/style-rtl.css 132 B
build/block-library/blocks/read-more/style.css 132 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 140 B
build/block-library/blocks/separator/editor.css 140 B
build/block-library/blocks/separator/style-rtl.css 233 B
build/block-library/blocks/separator/style.css 233 B
build/block-library/blocks/separator/theme-rtl.css 194 B
build/block-library/blocks/separator/theme.css 194 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 759 B
build/block-library/blocks/site-logo/editor.css 759 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 674 B
build/block-library/blocks/social-links/editor.css 673 B
build/block-library/blocks/social-links/style-rtl.css 1.37 kB
build/block-library/blocks/social-links/style.css 1.36 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 226 B
build/block-library/blocks/tag-cloud/style.css 227 B
build/block-library/blocks/template-part/editor-rtl.css 235 B
build/block-library/blocks/template-part/editor.css 235 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 934 B
build/block-library/common.css 932 B
build/block-library/editor-rtl.css 10 kB
build/block-library/editor.css 10 kB
build/block-library/index.min.js 171 kB
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-library/style-rtl.css 11.2 kB
build/block-library/style.css 11.2 kB
build/block-library/theme-rtl.css 689 B
build/block-library/theme.css 694 B
build/block-serialization-default-parser/index.min.js 1.12 kB
build/block-serialization-spec-parser/index.min.js 2.83 kB
build/blocks/index.min.js 46.8 kB
build/components/index.min.js 218 kB
build/components/style-rtl.css 14.9 kB
build/components/style.css 14.9 kB
build/compose/index.min.js 11.2 kB
build/core-data/index.min.js 14.3 kB
build/customize-widgets/index.min.js 11.2 kB
build/customize-widgets/style-rtl.css 1.39 kB
build/customize-widgets/style.css 1.39 kB
build/data-controls/index.min.js 663 B
build/data/index.min.js 8.19 kB
build/date/index.min.js 31.9 kB
build/deprecated/index.min.js 518 B
build/dom-ready/index.min.js 336 B
build/dom/index.min.js 4.53 kB
build/edit-navigation/index.min.js 16.1 kB
build/edit-navigation/style-rtl.css 4.04 kB
build/edit-navigation/style.css 4.05 kB
build/edit-post/classic-rtl.css 546 B
build/edit-post/classic.css 547 B
build/edit-post/index.min.js 29.8 kB
build/edit-post/style-rtl.css 7.07 kB
build/edit-post/style.css 7.07 kB
build/edit-widgets/index.min.js 16.5 kB
build/edit-widgets/style-rtl.css 4.4 kB
build/edit-widgets/style.css 4.39 kB
build/editor/index.min.js 38.4 kB
build/editor/style-rtl.css 3.71 kB
build/editor/style.css 3.71 kB
build/element/index.min.js 4.29 kB
build/escape-html/index.min.js 548 B
build/format-library/index.min.js 6.62 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.66 kB
build/html-entities/index.min.js 454 B
build/i18n/index.min.js 3.79 kB
build/is-shallow-equal/index.min.js 535 B
build/keyboard-shortcuts/index.min.js 1.83 kB
build/keycodes/index.min.js 1.41 kB
build/list-reusable-blocks/index.min.js 1.75 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.94 kB
build/notices/index.min.js 957 B
build/nux/index.min.js 2.12 kB
build/nux/style-rtl.css 751 B
build/nux/style.css 749 B
build/plugins/index.min.js 1.98 kB
build/preferences/index.min.js 1.2 kB
build/primitives/index.min.js 949 B
build/priority-queue/index.min.js 611 B
build/react-i18n/index.min.js 704 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.69 kB
build/reusable-blocks/index.min.js 2.24 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 11.1 kB
build/server-side-render/index.min.js 1.61 kB
build/shortcode/index.min.js 1.52 kB
build/token-list/index.min.js 668 B
build/url/index.min.js 1.99 kB
build/vendors/react-dom.min.js 38.5 kB
build/vendors/react.min.js 4.34 kB
build/viewport/index.min.js 1.08 kB
build/warning/index.min.js 280 B
build/widgets/index.min.js 7.21 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.07 kB

compressed-size-action

@jasmussen
Copy link
Contributor

You're so fast it's hard to keep up!

The initial mockup of labels actually made me think that, their utility aside, the primary challenge with these variations remains that they all look alike. And in that light, they risk actually adding a little noise, and distract from the main problem of diversity in the appearance. I think it could be worth revisiting how the card is composed; in a little longer term I'd love to see everything from font pairings, various border radiuses, maybe even photo elements as part of it.

And indeed the title of the variation could be a part of the card itself, perhaps on hover, letting the resting state of the card remain a "style stamp". I don't completely love the following fake animation, but just to high level illustrate the idea, here's what a style called "Stratus" could look like when hovering:

Animation

@critterverse
Copy link
Contributor

Thanks for trying this out @youknowriad! ⚡

I like @jasmussen's idea of using animation to incorporate the label/swatches — seems that could help resolve both of the main points discussed in #38918.

@alexstine
Copy link
Contributor

@youknowriad Can you add more specific instructions? I need to know what to click and search for to find this section. I'm not sure I can make it there since FSE is still in super rough shape for screen readers but I'd like to give it a try.

Thanks.

@swissspidy
Copy link
Member

To make this translatable, the i18n schema needs to be updated here and in WP-CLI

@youknowriad
Copy link
Contributor Author

@alexstine I've detailed the testing instructions in the PR description a bit more, let me know if there's anything missing, I'm happy to detail more.

@youknowriad
Copy link
Contributor Author

I've been thinking a bit about @jasmussen's proposal above. I like it a lot but I also fear that it doesn't solve the problem fully.

Basically, the issue is that unless you hover the preview, you might not notice a difference between the variations. I'll give it a try but I wonder if there's a middle ground where we have both: the hover effect and the visible small label

@jasmussen
Copy link
Contributor

Basically, the issue is that unless you hover the preview, you might not notice a difference between the variations. I'll give it a try but I wonder if there's a middle ground where we have both: the hover effect and the visible small label

This feels like enough of a limitation of the card design itself that it feels worth addressing. Foreground and background colors feel solid enough, but perhaps the two dots show something other than text and link. The label is valuable and should definitely be visible at least on hover. But on its own it's not going to make things "scannable" or inviting, which for style variations is arguably the most important problem to solve.

@oandregal
Copy link
Member

I'll be needing some help here to make this new property translatable.

Unfortunately, this is one of those cases in which we need to update the code in addition to the i18n schema.

@swissspidy I've prepared an initial PR for the wp-cli at wp-cli/i18n-command#306 I'll follow up with the required changes for Gutenberg.

@youknowriad
Copy link
Contributor Author

@oandregal before committing these, I want to check with folks whether we want this to be called "name" or "title" or something else :).

@swissspidy
Copy link
Member

@oandregal Note that you need to update https://github.com/WordPress/gutenberg/blob/f9c2838a0b8be94fcf4e51b0a831d4629eaf24d7/lib/compat/wordpress-5.9/theme-i18n.json as well with the same changes.

Add a theme.json like file (same format as theme.json but different name potentially) to the styles folder of your theme

I see how using theme.json for theme styles can be confusing. It would be good to settle on the name first before updating WP-CLI. Because if other file names are supported as well, the string extraction needs to be aware of these file names.

@oandregal
Copy link
Member

@oandregal before committing these, I want to check with folks whether we want this to be called "name" or "title" or something else :).

I still need to prepare the tests for the wp-cli, so no worries, we can wait until this PR lands.

I'd also like confirmation about what we want the context to be (what's shown to translators). I went with "Name of the style variation" but thought I'd ask if we envision this field to be used for something else, in which case it could be worth using a more generic approach such as "Name of the style source", or something along those lines.

It would be good to settle on the name first before updating WP-CLI. Because if other file names are supported as well, the string extraction needs to be aware of these file names.

👍

@alexstine
Copy link
Contributor

@youknowriad I found the Styles button and it was expanded but that button does not manage focus. Once I arrive in the sidebar, what is the button I am looking for?

@youknowriad
Copy link
Contributor Author

@alexstine Inside the sidebar, the button should be labeled "Other styles" (that's actually a visible label inside it)

@alexstine
Copy link
Contributor

@youknowriad Still don't see it. When I make it to the "StylesBeta" sidebar, these are my options.

  1. More Global Styles Actions.
  2. Close global styles sidebar.
  3. Typography.
  4. Colors.
  5. Layout.
  6. Blocks.

Any thoughts?

@youknowriad
Copy link
Contributor Author

@alexstine Do you have a "styles" folder in your theme with some variations. (I'm mentioning this on the testing instructions)

Add a theme.json like file (same format as theme.json but different name potentially) to the styles folder of your theme

@jasmussen
Copy link
Contributor

This already feels better:
card

I feel like there are still some missing pieces, perhaps to the style variations which I got from here. But even with style variations that all have a white background (is that intentional @kjellr or do I have old files?) this already increases the diversity.

  • I suspect we can't show text-decoration styles until we're further with Consider a standardized way to modify hover/focus/active states for blocks #27075 is that right?
  • Can we also use the font-weight for Aa? Swiss as shown in the GIF above has a bolder heading style which is missing from the card.
  • I think the fade works. I think a slide would be even better, but this definitely seems fine to launch for now.
  • The titles are they derived from the filename, i.e. blue.json? If so can we text-transform to titlecase?
  • I'm seeing some issues with tabbing between variations, that's probably in trunk as well, but I have to press tab twice between style variations to focus the next one. Can we play the animation also on focus?

There are some metrics here and there that I can likely dive in and fix, but I think that can work fine separately to this PR so nothing that needs to block it. Which means this one feels close to landing!

@youknowriad
Copy link
Contributor Author

Can we also use the font-weight for Aa? Swiss as shown in the GIF above has a bolder heading style which is missing from the card.

Sure, for all "Aa"s or just the heading one (main one)

The titles are they derived from the filename, i.e. blue.json? If so can we text-transform to titlecase?

Ideally each variation defines a "name" property in the json, the filename is just a fallback

I'm seeing some issues with tabbing between variations, that's probably in trunk as well, but I have to press tab twice between style variations to focus the next one. Can we play the animation also on focus?

I'll try

@jasmussen
Copy link
Contributor

Sure, for all "Aa"s or just the heading one (main one)

For the main card one, and for the title shown on the hover.

Ideally each variation defines a "name" property in the json, the filename is just a fallback

Ah, perfect!

@youknowriad
Copy link
Contributor Author

@jasmussen I think I addressed all the points.

@jasmussen
Copy link
Contributor

This is already looking way better to me:
Screenshot 2022-03-23 at 14 19 49

Focus works great here 👌 — so well in fact, I feel it validates the hover idea.

The duplicated greens and pinks in the attached is because the variation duplicates the same color, so probably something to fix there.

I'd like to dive in and tweak some of the metrics of the second frame, but I need a break from the keyboard. Would you prefer I do this in a followup PR separately? I'd be happy to, and I'd also be happy to try this one as is, pending any thoughts from @kjellr and @critterverse.

@youknowriad
Copy link
Contributor Author

I'd like to dive in and tweak some of the metrics of the second frame, but I need a break from the keyboard. Would you prefer I do this in a followup PR separately?

I think a follow-up would be great mainly to unblock some related work in i18n. cc @oandregal

I'm still looking for confirmation that "name" is the best property name for the label, I don't know, "title" or "label" could be valid alternatives. cc @mtias @mcsf

@kjellr
Copy link
Contributor

kjellr commented Mar 23, 2022

Here's the current state of the Twenty Twenty-Two variations (WordPress/wordpress-develop#2440), tested against this PR:

styles

In general (and aside from the fonts not working yet... if someone has a sec to help look into that, I'd appreciate it!), it feels pretty good! The mint + pink color variants are showing the same circle swatch color twice, but they do define it twice at the moment — I'm probably going to go in and adjust that on the theme side anyway.

@critterverse
Copy link
Contributor

critterverse commented Mar 23, 2022

Awesome, this is working so much better! Thanks @youknowriad ❤️

I'd like to dive in and tweak some of the metrics of the second frame

This sounds great, @jasmussen. I'd also like to follow up with a simplified animation suggestion for transitioning between the two frames that could be addressed separately as well.

@youknowriad
Copy link
Contributor Author

@kjellr I can also filter duplicates in colors.

@youknowriad
Copy link
Contributor Author

@kjellr Actually, I just tried filtering duplicates and I ended up with just a unique color dot for both these variants which felt a bit weird as a result. So maybe duplicates are fine for now.

@kjellr
Copy link
Contributor

kjellr commented Mar 23, 2022

Actually, I just tried filtering duplicates and I ended up with just a unique color dot for both these variants which felt a bit weird as a result. So maybe duplicates are fine for now.

That's fine, we can always re-address later.

@critterverse
Copy link
Contributor

Hey all, I shared a revised version of the color fill animation approach in #39700. It includes the sliding color bars but reduces the complexity of the hover frame to only show the variation title as Heading text, which I think should help with the animation feeling too weighty.

dark

Copy link
Contributor

@ntsekouras ntsekouras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, thanks Riad! Let's land and iterate.

@oandregal
Copy link
Member

Status on translating the title key: the wp-cli i18n-command PR is ready wp-cli/i18n-command#306 but blocked by these PRs that update the i18n schema:

@beckej13820
Copy link

I really like the mockups where I can see the name without hovering.

I also really like the mockups that clearly show the majority of colors in the pallette, because I am imaging themes might want to have a variation of style in several colors. This example is a customizer theme, but Go had multiple font/style choices, and for each had multiple color palletes.
Screen Shot 2022-04-26 at 2 40 10 PM

If they were recreating the same sort of flexibility it might be there are 20 variations

Trendy Plum, Trendy Steel, Trendy Avocado, Trendy Champagne
Welcoming ______, Welcoming _____....

@critterverse
Copy link
Contributor

If they were recreating the same sort of flexibility it might be there are 20 variations

@beckej13820 Not exactly the same idea but I shared a design in #29388 (comment) recently that would introduce more flexibility for style variations by offering granular Global Styles saving options.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Global Styles Anything related to the broader Global Styles efforts, including Styles Engine and theme.json [Type] Enhancement A suggestion for improvement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Theme Variant "Other" Styles UI Proposal
9 participants