w3c / csswg-drafts

CSS Working Group Editor Drafts
https://drafts.csswg.org/
Other
4.46k stars 657 forks source link

[css-values-4][css-writing-modes-4] Revisit decision to use 永 instead of 水 as the ic unit #7577

Open ziyunfei opened 2 years ago

ziyunfei commented 2 years ago

Chrome just implemented the ic unit this week, when I shared this news in Chinese social media, some people are confused about the chosen character 水(water), especially those people who had the handwriting practice experience, they think 永(forever; eternal) is the right choice.

See this Twitter thread: https://twitter.com/intenttoship/status/1555274307735285760

tiye commented 2 years ago

quote https://en.wikipedia.org/wiki/Eight_Principles_of_Yong

It was traditionally believed that the frequent practice of these principles as a beginning calligrapher could ensure beauty in one's writing.

yisibl commented 2 years ago

See https://github.com/w3c/csswg-drafts/issues/2798

yisibl commented 2 years ago

If CSSWG agrees to this change, I can amend the relevant specification and WPT.

frivoal commented 2 years ago

See #2798

In particular, this comment https://github.com/w3c/csswg-drafts/issues/2798#issuecomment-398668398 says:

Writing Modes uses 水 as well (used when scaling down the tate-chu-yoko to 1em). If switching to 永, I kinda want to see two specs refer to the same character.

tabatkins commented 2 years ago

And note also in #2798 that the reason we stuck with 水 rather than switching to 永 is solely because it would have been annoying to update Writing Modes, and in practice the two should be roughly identical in font coverage anyway.

But if people keep getting confused about it, it's probably worth going thru the effort of switching the character.

ziyunfei commented 2 years ago

Filed bugs: https://bugzilla.mozilla.org/show_bug.cgi?id=1783937 https://crbug.com/1351509 https://bugs.webkit.org/show_bug.cgi?id=243746

VaJoy commented 2 years ago

Using is the better choice cuz it is a standard of Asian calligraphy.

I promise almost every devloper in China, Japan, Korea would be confused while using as the unit of ic so please switch to to avoid this disaster.

gongpeione commented 2 years ago

IMO using as the ic unit makes more sense in Chinese and also looks more professional.

myakura commented 2 years ago

Although I'm not strongly against about it, I don't think it's worth the change to the specs and implementations.

https://github.com/w3c/csswg-drafts/issues/7577#issuecomment-1209711033

and in practice the two should be roughly identical in font coverage anyway.

Speaking of font coverage, they are not the same in web fonts. I don't know how things are going on in #3135 , but if ic requires implementations to download the font, then 永 (U+6C38) has higher chance to cause extra font download compared to 水 (U+6C34):

Naeemo commented 2 years ago

IMO, using would be a more natural choice. I would be confused by and try to find out why, but not with . is the first thing to practice for properly Chinese handwriting cuz its structure, it's kind of common sense here.

yisibl commented 2 years ago

In fact, the is used in CSS Inline L3. It should also be modified to be consistent from the point of view of consistency of the specification.

The bounding box of 永 (U+6C38) can be used to find the ideographic character face edges. https://drafts.csswg.org/css-inline-3/#baseline-synthesis-fonts

foolip commented 2 years ago

Is the issue here the belief that 水 was picked by accident because someone conflated it with 永?

@fantasai disconfirmed that in https://twitter.com/fantasai/status/1555385335663759360, and I wonder if the same issue would be raised if the chosen character was instead 口 or something.

I'm not a member of the CSSWG, but the fact that 永 is a kind of reference character in calligraphy doesn't by itself make it a good choice for the ic unit. The kind of analysis that @myakura did in https://github.com/w3c/csswg-drafts/issues/7577#issuecomment-1210082393 seems like a better ground for this kind of decision.

yisibl commented 2 years ago

@myakura @foolip

I'm sorry, but I don't endorse the reasons related to font slicing in Google Web Fonts.

The same problem would exist in the ch unit, which should be proposed to Google Fonts to change to put the characters that are CSS units (0 or ) further ahead.

I think #3135 about downloading fonts is a separate issue, not related to the proposal of this issue.


I'll reproduce Dr. Ken Lunde's(小林剣) suggestion from Twitter: https://twitter.com/ken_lunde/status/1555736774436986880

The reasons why U+6C38 永 is a near-ideal example in this context are because this ideograph 1) includes all of the basic stroke types; 2) is included in the most basic character set for each East Asian region; and 3) is rendered the same regardless of the East Asian region.

tiye commented 2 years ago

@bnoctis to be accurate, this character is also used by some other Asian countries although they do speak Chinese in daily life.

azbo commented 2 years ago

Support rewriting to "永"

cxh194311 commented 2 years ago

Support rewriting to "永"

woeoio commented 2 years ago

The word "永", more in line with Chinese culture then "水"

vicdf commented 2 years ago

As a chinese, I think 永 is way more representative compare to 水 due to its structure, etc. so I hope it is the best to change that.

dufemeng commented 2 years ago

I agree with the above statement, support rewriting to "永"

aaron-ai commented 2 years ago

"永" is better.

wlbksy commented 2 years ago

When used in calligraphy, "水" does not make any sense. "永" is the right choice for it represent the basic skills of calligraphy, "Eight Principles of Yong" https://en.wikipedia.org/wiki/Eight_Principles_of_Yong. Almost every calligrapher knows this as beginner. It is the essential sound of "mama/papa" to babies who are learning how to speak.

hingbong commented 2 years ago

I think "永" is better, too.

linrf commented 2 years ago

I think "永" is better.

Rvtea commented 2 years ago

"永" is better.

volcanicll commented 2 years ago

Support rewriting to "永"

ziyunfei commented 2 years ago

Guys, please stop posting similar comments unless you have more informed thoughts. you can click the 👍🏻 button to vote on it.

DreamOneX commented 2 years ago

As a Chinese who has studied calligraphy, I know Eight Principles of Yong has extraordinary meaning. It is the basic skill of calligraphy. I believe every developer from China, Japan and Korea will support using instead of . If you know Chinese, even if you haven't learned calligraphy, You can also find that the character contains all eight Chinese strokes. So it can make more sense. What's more, as @bnoctis said, after all we are Chinese speakers, our culture should be respected and we should also decide how to render our characters. All in all, I support rewriting to . thanks.

bobwxc commented 2 years ago

In most cases, 永 is the first example character of traditional ShuFa Art. And it also be the simplest example character of much fonts. Like 'n' in many Latin fonts. It is a good traditional custom.

y122972 commented 2 years ago

is better.

weolar commented 2 years ago

"永" is better. it is most familiar character of traditional Chinese Calligraphy Art. Support rewriting to "永"

sword4869 commented 2 years ago

i agree to use 永, which is a great idea to adapt the font design for the culture behind the font.

ArthurMao commented 2 years ago

The Eight Principles of Yong (Chinese: 永字八法; pinyin: Yǒngzì Bā Fǎ; Japanese: 永字八法/えいじはっぽう, eiji happō; Korean: 영자팔법/永字八法, Yeongjapalbeop; Vietnamese: Vĩnh tự bát pháp) explain how to write eight common strokes in regular script which are found all in the one character, 永 (pinyin: yǒng, "forever", "permanence"). It was traditionally believed that the frequent practice of these principles as a beginning calligrapher could ensure beauty in one's writing.

yuan3721 commented 2 years ago

Support rewriting to "永"

BI1LQV commented 2 years ago

"永" is better for its meaning

1219521375 commented 2 years ago

As a Chinese,I think "永" is better.

SkyeYoung commented 2 years ago

As a Chinese, I think '永' is better.

Take an analogy that I'm not too sure is appropriate: the letter 'x' is used as the x-height in typography, but in fact 'v', 'w' and 'z' are similar in height, so why not say v-height, w-height? If a person says v-height or w-height, does it not feel any less normal to a native English speaker? And the '永' is exactly like the 'x'.

I know there is a claim that 'x' is really the only letter in all serif fonts that touches both the baseline and meanline. But the statement above comes from https://en.wikipedia.org/wiki/X-height.

In any case, at least for native speakers of CJK, the use of '水' instead of '永' would make them feel very strange.

Siricee commented 2 years ago

Although I'm not strongly against about it, I don't think it's worth the change to the specs and implementations.

#7577 (comment)

and in practice the two should be roughly identical in font coverage anyway.

Speaking of font coverage, they are not the same in web fonts. I don't know how things are going on in #3135 , but if ic requires implementations to download the font, then 永 (U+6C38) has higher chance to cause extra font download compared to 水 (U+6C34):

As a Chinese, the priority of bucket sorting is lower than the priority of meaning in culture. '永' contains all Chinese language strokes, rather than '水'. In Typography Design , '永' is always used most common.

Here are some references:

Designing with the Hanzi script – Keith Tam

pic

Can a Chinese font be analysed and criticised like a Western (alphabetical) one? - Quora

A good way to understand the varieties of strokes is by looking at the character 永 (yǒng), which contains the 8 most common strokes in the regular script. Together, they are known as the “Eight Principles of Yong.”

pic

Although the Eight Principles are a calligraphy concept, the terms for which are shared with typography. pic2

Just thinking in the ic unit , actually they have no difference, but '永' has more significent culture meanings in Chinese language. We hope Chinese culture won't be misunderstood at anytime.

Lastly, the use of '水' or '永', the choice should be made by at least a native speakers of CJK.

sparklerl commented 2 years ago

As a Chinese,I think "永" is better .

Matthewow commented 2 years ago

support

sunhaitao commented 2 years ago

I'm afraid that we need do some extra works to ensure '永' is as functional as '水' first.

the '㇔' in '永' is a stroke can be drawn in various forms to make a style. For example, it can be drawn like a '㇐' to create a more formal, historic, stable feeling (See https://dribbble.com/shots/4558601-/attachments/10464590?mode=media).

Since the 'ic' unit represents an advance measure, and an advance measure can be both width or height of a glyph (depending on the writing direction), whether '永' in various fonts always have representative heights is needed to be verified ('水' may be a safer bet here for its simpler structure).

Baoge2012 commented 2 years ago

"永" is a much more Chinese way

sunhaitao commented 2 years ago

but if every typeface follows the aforementioned principle

I'm afraid this cannot be assumed for the following reasons:

  1. In the history of computing, it is rare that many vendors all follow a specification strictly. People (and maybe all beings with general intelligence) just made mistakes here and there.

  2. Although translated as 'Eight Principles of Yong' on Wikipedia, '永字八法' is actually 8 mostly-used stroke-drawing techniques demonstrated with the 'forever' glyph. And it is mostly for the regular script (楷体). More ancient scripts such as the Clerical script (隶书) have their own rules. Of course, many (if not most) typefaces used today are based on the regular script for readability. But artistic fonts are different stories.

'永' is the good old choice to show strokes. But representing measurements is a new problem, picking another character is also okay. Since '水' is neither found dysfunctional nor associated with something unjust or distasteful, we are not in a hurry to abandon the current work. Let's resolve this cautiously.

nc7s commented 2 years ago

@sunhaitao I agree on your technical ground. However, I insist that such standards be discussed and formalized by native speakers of the language, not some random Google developer speaking another.

faceless2 commented 2 years ago

Please remember we are exclusively discussing the OpenType glyph advance here, not any other aspect of font metrics, not calligraphy or aesthetics. Specifically the values for these glyphs from the OpenType hmtx and vmtx tables.

In practice the advance will be the same for both glyphs, in both the horizontal and vertical directions.

CoelacanthusHex commented 2 years ago

In practice the advance will be the same for both glyphs, in both the horizontal and vertical directions.

Since they are the same in practice, why not choose the one that respects the tradition of the language more.

nc7s commented 2 years ago

Please remember we are exclusively discussing the OpenType glyph advance here, not any other aspect of font metrics, not calligraphy or aesthetics. Specifically the values for these glyphs from the OpenType hmtx and vmtx tables.

I suppose glyph advance is based on glyphs, which are the forming factor of a typeface, which respects traditions (calligraphy & aesthetics) because it evolved with them.

x-height is x-height, not a-height or c-height. May I call it o-height? Technically it has the same height as x.

EDIT: removed rant

sunhaitao commented 2 years ago

@bnoctis According to my understanding of the Chinese culture, 'where the heroes are from' does not matter' (英雄不问出处). Anyone with enough domain knowledge is eligible for making design decisions. In this particular problem, a typography expert studying Chinese as a foreign language may have more domain knowledge. Cultures have ambiguous parts that only native users of associated languages can handle well. But measuring a glyph is not that hard.

On the other hand, foreign users are also stakeholders in layouting characters. People do publish materials in their foreign languages (this page is an example). And mixing native and foreign characters in the same sentence is a valid use case (this page is also an example). Problems in such practices (some are hard to imagine for native users) also need to be addressed.

By the way, as far as I know, '水' is picked by @fantasai while working on writing modes, not a random Googler.

sunhaitao commented 2 years ago

@faceless2 You are right. Given that 'ch' only needs to be an approximation, any CJK characters in a font should be representative enough. There may be fonts that do not give each CJK character exactly the same measurement, but it is safe to assume that their sizes do not vary too much.

In that case, maybe we could just use the measurement of the first CJK character in the current font to avoid any confusion or download.

Using the measurement of ideographic space (全角空格, U+0300) is also a good choice. East Asians use it to arrange characters for quite a while.

Of course, just keep using the current work is also fine. It works, and it is real.

jtyjty99999 commented 2 years ago

I prefer '永' instead of '水'. Eight_Principles_of_Yong is the rule of Chinese Calligraphy. Therefore, rendering with this text will more comprehensively conform to the rendering of Chinese characters.

tiansh commented 2 years ago

Speaking of font coverage, they are not the same in web fonts. I don't know how things are going on in #3135 , but if ic requires implementations to download the font, then 永 (U+6C38) has higher chance to cause extra font download compared to 水 (U+6C34):

Web fonts for special using (brand name for example) won't include either one regardless what is chosen. As 永 is a common used character, any web fonts for general using could easily include it if they want. And whenever the specification switched into 永 and people get use of it, web fonts creators would/could/should change their fonts by including 永 in the most common "bucket". So that wont be a trouble here, IMO.