Side-by-Side Image Challenge

Drag and drop is known for being one of the most intuitive interaction patterns there is. One behavior that users might expect to find in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ is the ability to create side-by-side images by dragging and dropping an image next to an existing one.

Note: This behavior has previously been explored in GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ issue #13202 and perhaps elsewhere!

The Current Behavior

Right now in Gutenberg, you can drag an image on top of an existing Image blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience., which will upload the new image and replace the current one. The drop zone covers the full area of the block and is indicated by a blue overlay color with a CTA.

image-drag
gallery-drag

Image block and Gallery block with drop zone overlay shown at 75% opacity.

The drop zone looks exactly the same on the Gallery block, covering the full area of the block, but the behavior is slightly different there. Instead of replacing, the new image is added to the gallery.

The current overlay behavior works great for each of these singular interactions. The key design challenge is finding a way to offer both options so that a user can replace an image or add another image within a single drag motion.

Transforming an Image block into a Gallery block

indicator

The blue overlay color could be reserved for replacing an image, with a new treatment introduced for transforming the Image block into a Gallery block to achieve a side-by-side effect. I used a 4px vertical line to indicate the position of the new image — this is the same visual treatment used for the “move to” indicator (but I can also see a conceptual argument for using a 1px line like the sibling inserter).

snackbar-1

We could show a snack bar after the user completes the transform via drag and drop, as it’s not explicitly clear that this action will change the block type. A snack bar offers the opportunity to undo the transform, and could also be a way to call more attention to the new block type through the use of a block icon.

Adding and replacing images in the Gallery block

It would be nice to extend the same behavior to the Gallery block so that a user can seamlessly go from one image to two images, and from two images to three images, using the exact same interaction pattern. This could be a part of larger efforts to unify the Image block and Gallery block more closely.

Implementation

I imagine this could work by identifying separate drag zones within the area of the existing image for replacing/transforming but it would be helpful to play around with this in a PR to see what feels right.

Another option that would introduce slightly more friction to this interaction would be for the transform-related drop zones to only “unlock” after a long hover over the area. In this scenario, a quick drag and drop would always default to an image replacement with a longer hover opening up additional options (but I think the simpler interaction described above is closer to the expected behavior).

On GitHub

  • Use drag and drop to transform an Image block → Gallery block #32819
  • Unify drag and drop behavior across Image block and Gallery block #32820

Thoughts?

Please feel free to leave a comment below or drop a message in the #design channel on the Making WordPress SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/.. Looking forward to hearing your feedback, thanks for reading!

#blocks, #design, #gutenberg

A Walk Around… The Table Block

In this post I’d like to talk about the Table BlockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. and propose several improvements and enhancements. Many of these changes require implementing one important feature: multi-cell selection. Others, like improving the initial placeholder state, could be addressed independently.

If you want to check out all the designs mentioned in this post, here’s the Figma file that contains all the designs covered below, along with some explorations and references. I’ve also opened a tracking issue on GitHub to organize the work around this block.

I’ve centered my work around these five main areas:

Placeholder

The current placeholder state is simple: users can set the number of columns and rows they want their table to have.

But these two numbers don’t give a clear picture of the kind of table the user is about to create, and since we don’t have a quick way to add new columns or rows (more on that later), creating the right table from the start is really important.

To solve this problem, we could offer an automatic preview that reflects the information entered by the user so that they can immediately see what the shape of their table will be.

Here’s an example of how this interface could look like:

  • The table in the preview gets updated whenever the user adds or removes rows and columns.
  • The height of the preview window is fixed, so the input elements below won’t move.
  • If the user creates a large table, we can show an ellipsis implying that the table contains rows or columns that are not being shown.

Another idea based on this UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. is the possibility to resize the table using the preview interface itself: if the user hovers the cells and then clicks one of them, the table gets resized automatically.

Related

Multi-cell selection

This is the biggest change in the Table block and would allow creating more complex designs than the ones that are possible right now.

Adding this feature would require refactoring the block and use inner blocks, so that cell is a block of its own. There’s been some talk around this topic in this issue.

To illustrate how this feature could work, here’s how Google Docs and TinyMCE do multi-cell selection.

Google Docs

The nice thing about multi-cell selection in Google Docs is that it’s possible to select one single cell. However, it’s not possible to select the entire table in an easy way (except, obviously, by highlighting all the cells with the mouse cursor).

TinyMCE

In contrast, in the TinyMCE editor it’s possible to select the whole table by clicking on it. Strangely, you can’t select just one single cell.

I believe our tables should support these two basic use cases: single-cell selection and the highlighting of the whole table. That would make the styling process much easier.

Two other handy features we could offer would be: merging and splitting.

Merging

Some apps like Google Spreadsheets offer several types of merging: horizontal, vertical, or full merge, depending on the direction in which the cells get merged.

I think we could start by offering the full merge (which combines a group of cells into one single element), as shown in the example below.

image

Google Spreadsheets also offers the option of “unmerging” a previously merged group of cells, which is a way to reconstruct the previous structure of a table. This is an advanced use case that we don’t probably need to cover, at least initially.

Splitting

Microsoft PowerPoint also allows to customize the splitting of cells. In our case, we could offer two options for splitting: horizontal or vertical. The reason to offer two ways and not automatically divide rows horizontally and columns vertically is to support the case where a user just want to split a single cell. In that case, it makes sense to give them the option to pick the method they prefer.

image
Related

Right now is only possible to change the text and background colors of all the cells at the same time. If we had mulit-cell selection in place, users would be able to customize their tables in many different and interesting ways.

These are the sections I think we should include in the sidebar:

Let me review them:

Styles

This section could show four several common table styles. Instead of using gray to color the cells, we could use the default main color defined by the current theme (which means that those previews should be generated using code).

These styles set and combine basic elements like stripes, and the presence of headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes., and footer rows. In the case of the last one (‘Left column’), it also sets the background color of a group of cells.

Table settings

In this section, I would add a controller to modify the dimensions of the table, since the only way to do this at the moment is using the toolbar (and that requires two clicks to add or remove a column or row of cells), which makes the process of modifying the dimension of a table a bit tedious.

Besides this section, another handy way to add more rows to a table could just be pressing the tab key in the last cell, as other apps do. I would also allow using the Tab key to traverse the cells.

Border Settings

This section would allow users to change the border settings for each cell or if it’s selected, the whole table.

With the idea to allowing to style tables in many different ways, we could also offer a special control (similar to the padding one) that would allow setting the width of each of the selection borders independently.

Color settings

Instead of changing the color settings of the whole table, this section would only affect the selected cells. This section would also offer the possibility to create a zebra-striped table (important thing though: the user could still overwrite the stripe color setting the background color with the control above).

Typography

Nothing shocking or revolutionary here: we should allow changing the style of the text for each cell and the table caption.

Related

The toolbar

If we were to implement all these changes we would end up having at least 10 actions that could go in the toolbar. Instead of having one single option that gives access to all the available actions, we could group them by categoryCategory The 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging..

We could have three categories: insert, remove, and cell operations.

  • Insert would give access to all the additive operations: insert row before, insert row after, insert column before, and insert column after.
  • Delete would give access to all the destructive operations: delete row, delete column, and delete selected cells.
  • Cell operations would give access to merge, and split horizontally & vertically.

Icons

I’m also proposing to update several icons to make them faster to read and use the same kind of design language (i.e.: border radius, line widths, etc.) as other current icons. Here’s a first exploration:


Notice that, in the case of the four insert icons, the weight of the elements indicates the direction (before or after) in which the action will take place, while the current icons use the plus symbol instead. This is a delicate distinction that probably requires some careful consideration. Please, share your opinion and ideas in the comments of this post or in this GitHub issue.

And here’s the full set of icons (again, an initial exploration) that also include the Split, Merge, and Remove cells icons.

Related

I’ll continue working to improve this block. If you have any thoughts or feedback, please drop a comment below. Thank you!

#blocks, #design, #gutenberg

Video tutorial: designing and submitting block patterns for the new WordPress Pattern Directory

Some of you may have seen @kjellr‘s recent post about creating patterns for the new Pattern Directory, which will be in betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. and then launching later this year. The directory’s still a WIP (for example, front-end submission hasn’t been built yet), but the development team is hoping to launch it with a bunch of high quality, curated patterns already in place on the WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ user.

I put together a ~20m video about my process bringing designs into the editor and then submitting them to the GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ repo. If you’re interested in making patterns for the directory, or making patterns in general for your own usage, please give it a watch!

Design Team Meeting Notes: June 2, 2021

These are the weekly notes for the design meeting that happens on Wednesdays. You can read the full transcript on our Slack channel and find the meeting’s agenda here. You can join the SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel by following the instructions in our handbook.

Housekeeping

  • We have an open call for note takers and triage facilitators. These both are great ways to get involved for new contributors but everyone is welcome to help out. Let us know if you are interested in the comments.
  • Contributions to the Design Team is always welcomed. Please pingPing The act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” @estelaris or @chaion07 and they will guide you through.

Announcements

WordPress has turned 18
Last week we celebrated the 18th anniversary of WordPress’ launch, a day that we can fondly refer to as WordPress’ birthday.

Since our last birthday we developed our 40th release and now also support over 40% of the web. So it seems fitting that this year’s celebration should be a list of 40 milestones that have helped us get there.

Bug Scrub Schedule for 5.8
As we are at feature freeze for 5.8 release the next milestone is the BetaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1 which is set for June 8. I along with  @lukecarbis are leading scheduled bug-scrubs that usually happen twice a week. For the most part, they’re scheduled for Tuesdays and/or Wednesdays at 4:00 UTC for APAC time zones and 20:00 UTC for US /EU regions, though there are some adjustments to accommodate religious and national holidays. The next one is on June 8, Tuesday at 2000 UTC. Come join if you can as we look to address a few bugs and defects for 5.8 🎉

Proposal to tweak existing icons and add new ones
There is a proposal by @keoshi on the existing icons. The discussion goes back a couple of weeks over Slack that has been documented in the Meeting Notes. We would love to hear your thoughts, concerns, and suggestions on the above. If there are no major disagreements or changes to be done, the next step would be create a PR to submit all of these to the repo.

WordCamp Europe 2021
As we are just days away from WCEU 2021 which is set to take place between 7 and 9 June, we wanted to remind everyone to get their tickets before it runs out. Noting that 2 #design team members talking this year:

  1. @javierarce will present Using Figma in the Design Team Workshop on Monday, June 7 at 18.00 CEST
  2. @estelaris will be part of a panel discussion on How contributors make WordPress – Wednesday, June 9 at 16:00 CEST

CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. blog highlights

Discussion

@estelaris suggested that we add a link to the handbook that references the fact that Figma now provides a link to give view access to the WP library. This way we can remove the note about emailing invites. @karmatosed, @kellychoffman, and @melchoyce agreed. Estela will do the update.

Further reading

Initial Patterns for the WordPress.org Patterns Directory

After the Pattern Directory has launched, users will be able to add their own patterns to it directly. In the meantime though, the project needs a collection of high-quality, diverse, community-designed patterns to populate it with during development. These patterns will set the tone for quality in the repository, and will make the directory useful for folks upon its launch.

The Design team has already produced a small set of patterns to kick this off. If you’re using the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, you may have noticed a new set of bundled block patterns in the pattern inserter recently: 

These were designed by @beafialho, @melchoyce, and myself as iterations on the default set that shipped with WordPress 5.5. They have already been migrated into the upcoming Patterns Directory on WordPress.org for testing there.

This small set is just the beginning though! The three of us are continuing to design patterns to feed into the Pattern Directory, and we’d love your help. We encourage you to submit pattern candidates (in the form of mockups and/or blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. markup) using the “[Type] Pattern Submission” tag in the Pattern Directory’s GitHubGitHub GitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ repository. There’s an issue template already created to help you get started

In this early phase, the Design team will review each suggested pattern and work to identify a list of criteria for which types of patterns are good candidates for pre-submission to the directory.

Please share any questions or concerns in the comments below. I’m looking forward to growing the Pattern Directory, and can’t wait to see we all design together!

Redesign of WordPress.org/News

Jazz should be recognised as music of the people, based in a lot of accents and melodies. What is jazz but music that people danced to? Jazz has the dynamic thing.

Al Jarreau

The blog page of WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ has stayed the same for a very long time and it could benefit from a careful rethinking and visual attention to detail. There are things we can do to improve the reader’s experience, to make it less visually constrained, and introduce an improved design language. After a request from Matt Mullenweg, I’ve spent some time thinking through a possible redesign, and I’d like to share some directional ideas below.

Making It Jazzy

Some of WordPress’s visual materials have been influenced by jazz aesthetics, which immediately translated into a clear visual direction. Although subtly, I’d like to express the playfulness of jazz, as in the album artworks you can see above.

Imagery in the blog is often sparse, so I explored elements such as stroke shapes, typography, layout and colors, to achieve a timeless result.

Leaving Space for Content

The current layout and typographic styles lack space. Opening up the canvas, rethinking spacings, placements and line heights could make it feel less boxed and improve readability.

I have also explored variations between categories, while maintaining coherence within the same section of the website, taking content in consideration and playing with it.

Rethinking Typefaces

Open Sans is widely used in the current site, and while there’s nothing wrong with it, its quirkiness wasn’t propelling improvement or helping readability, so I suggest we replace it with Inter, an open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL. font, which I’m using for paragraphs and functional text. It works well for screens and reading and it has a timeless feel that fits universally with any type of content it’s used with.

EB Garamond, equally open source, is used in headings, bringing elegance and delicacy to the blog.

Continuously Iterating

Certain pieces are still in progress of refinement, such as the blog’s “home” page, text styles and the balance in the usage of paint strokes (some of the ones used here aren’t as polished). Colors are still being iterated on, but the vibrant blue seems to associate well with the evolving GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ language.

Higher Level Concept

I’ve also spent some time thinking about simplifying the nav bar and footer for the site, which ultimately contribute to its visual consistency. Beyond that, I have found potential in the concept of recreating different “languages” of jazz throughout the site, in a way that’s coherent and balanced enough that isn’t confusing or misleading for people.

A huge thank you to @pablohoneyhoney for the continuous help and guidance in these iterations. I’m very happy to share bits of this work in progress, which is all available in this Figma link, and will try to post updates as regularly as possible.

I hope you’re as excited as I am about this, and I can’t wait to know what you think in comments below!

Editorial postscript – The design above is early, but has already gone through multiple iterations. As with so many open source things, all feedback is welcome and anything that can be changed will be. 🙂 ~josepha

Design Team Meeting Agenda for June 02, 2021

The Weekly Chat for Make WordPress Global Design will take place on Wednesday, June 02, 2021, 18:00 UTC in the #design channel of the WordPress Slack. You can join the SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel by following the instructions in our handbook.

Here’s the list of Agenda items:

  1. Announcements
  2. CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. Blog Highlights
  3. Did you read these?
  4. Open floor

This Meeting is held in the #design channel in the Making WordPress Slack Workspace.Leave a comment if you would like something reviewed, discussed, help or something added to the agenda.

#agenda, #design-agenda, #meeting-agenda

Proposal to tweak existing icons and add new ones

A week ago I presented a quick proposal to folks on SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. to add a few new icons and tweak some of the existing ones. The initial proposal was captured in last week’s meeting notes, but I’ve been working on said icons since and wanted to cristalize the final group of icons on this post.

All of these icons have been added to the Proposals page on the WordPress Components Figma file.

Tweaking existing icons

The suggestion is to make a slight tweak to icons that have human representations, replacing the solid dot (generally reserved for interface elements) for a more open, outlined shape. I personally find this change humanizes the icons a lot, and makes them much more consistent with themselves and rest of the library.

Changes:

  • The solid dot for the heads turns into an outlined shape.
  • Icons affected: people and block-post-author.

Adding new icons

The goal with these is to extend the icon library, and do so respecting the foundational philosophy and icon architecture. The more comprehensive the coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. icon library is, the more useful it becomes to blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience./theme/pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party authors. And the more it becomes a common good, the more cohesive the WordPress experience will be, and more people are willing to contribute back to it.

Additions:

  • bug/no-bug – useful in technical contexts such as issues, bug reports, fixes, changelogs, etc.
  • security – using the shield metaphor to convey protection against existing threats, applies to site health and plugins in general.
  • add-card – a generic element to add new elements beyond just the block editor.
  • key – to be paired with the lock icons, or for plugins that support licenses.

Worth repeating that the idea is to add icons that can be used by anyone, in diverse and distinct contexts, and serve multiple purposes.

Feedback

Would love to hear your thoughts, concerns, and suggestions on the above. If there are no major disagreements or changes to be done, the next step would be create a PR to submit all of these to the repo.

Show and Tell Meeting 26 May 2021

As is the last Wednesday of the month, we will have a Show & Tell Meeting. This is a video meeting using Zoom where contributors have the opportunity to share their work and ask for feedback from the team.

The link to the Zoom Meeting will be posted on the Slack channel and the meeting will be recorded for those who cannot attend. A summary will also be posted in lieu of meeting notes. You can also check out the summary post for the month of April.

If you would like to share your work, show up to the call and raise your hand or let us know in the comments.

#meeting, #show-and-tell

X-post: Experiment: A Public Channel for All Team Reps

X-comment from +make.wordpress.org/updates: Comment on Experiment: A Public Channel for All Team Reps