WordPress / gutenberg

The Block Editor project for WordPress and beyond. Plugin is available from the official repository.
https://wordpress.org/gutenberg/
Other
10.5k stars 4.19k forks source link

Global Styles: Add alignment support in global typography styles #48202

Open danielbachhuber opened 1 year ago

danielbachhuber commented 1 year ago

Before we land #48146, we'd like to first support alignment in global typography styles. Alignment support can include justification, as long as it also supports hyphenation.

To properly handle hyphenation, we'll need lang support on the block level at least, too: https://github.com/WordPress/gutenberg/issues/15349

Related https://github.com/WordPress/gutenberg/issues/27300, https://github.com/WordPress/gutenberg/issues/8450

Done is:

sejas commented 1 year ago

I can start investigating this issue next week 👌

jasmussen commented 1 year ago

A couple of notes on justified text:

In that light, here's a way way obsolete mockup of justified text in a global interface:

oldler-justified-mockup

The icons, colors, all of the above are off, so do not take this as a design. Purely as an example of one way this interface might be put together.

strarsis commented 1 year ago

Would this be also a good place for adding controls for text-align-last?

jasmussen commented 1 year ago

Potentially. I haven't used that one very much.

Thelmachido commented 1 year ago

Hi folks, thank you for working on this. Just making a note that this was requested in forums here: https://wordpress.org/support/topic/space-between-header-and-body-on-pages-drives-me-crazy/#post-16789630

ghost commented 1 year ago

Baby, I just want to add that I miss very very very much the Justify alignment. OMG.

I understand the necessary precaution...

Because of it, you guys could plan the necessary implementation steps.

It seems that there are more than one issues involved. First, to support the "justify" in theme.json? In a later issue, support justify in text-align component? In a later issue, support it the global styles interface (the current issue) and think about the SVG icon?

I was so happy when I saw https://github.com/WordPress/gutenberg/pull/48146 ... so fast it came, so fast it went 🤣

jasmussen commented 8 months ago

Per recent conversation, here's a refreshed version of how this could look:

Justified text
sejas commented 7 months ago

I unassigned me from this issue since we won't focus on this in the short time.

t-hamano commented 6 months ago

textAlign block support has been added in #59531. After that, we are first trying to add text alignment support at the block level.

Related issues/PRs:

richtabor commented 6 months ago

Why not put this within the Text and Headings views, rather than add another to this top-level typography? It could be hierarchal as well.

CleanShot 2024-04-24 at 17 51 35

jasmussen commented 6 months ago

Seems fine to do that. Figma if you want to tinker.

richtabor commented 6 months ago

I added an alternate to the Figma. What do you think?

Justified text alternate

Based on https://github.com/WordPress/gutenberg/pull/59531.

jasmussen commented 6 months ago

Looks good! Whether it's the row of 4 icons or a vertical stack with labels, I've less of a strong opinion on, happy to defer.

What I'd deem important is to show the yellow notice below the justified text option when selected, I'm assuming that's still present?

richtabor commented 6 months ago

What I'd deem important is to show the yellow notice below the justified text option when selected, I'm assuming that's still present?

Sure, I had missed that.

t-hamano commented 6 months ago

If all four of left, center, right, and justify are allowed, I think we can use the TextAlignmentControl component added in #60841 as is.

However, the original design only allows two types at the root level: left and justfiy.

Which options should be allowed?

jasmussen commented 6 months ago

Good point to clarify. I omitted center from the original designs because it seems borderline useless as a default layout for text, arguably even less legible than justified text. Though I suppose if it substantially eases implementation, and if the center option would carry a similar legibility warning as justified does, perhaps it might be fine, so as to unstick this?

richtabor commented 6 months ago

I say we include them all, even without legibility notices. Sure, it may not be ideal, but I can see it working in some cases. And I'm hesitant to have some controls available in some places, while not in others.

t-hamano commented 6 months ago

Thanks for the feedback!

As suggested in #60762, I am thinking of adding the text alignment UI at the block level first. If it ships successfully, I would like to come back to this issue.

jasmussen commented 6 months ago

I say we include them all, even without legibility notices. Sure, it may not be ideal, but I can see it working in some cases.

I would not omit the legibility notice, at least from the justified text one. It's a very common question why WordPress doesn't support justified text in the text alignment dropdown, and showing the legibility notice in context of the global control would provide the answer right there.