microsoft / fluentui

Fluent UI web represents a collection of utilities, React components, and web components for building web applications.
https://react.fluentui.dev
Other
18.42k stars 2.72k forks source link

Default Asian Font should be set in a different manner. #8172

Closed w5yang closed 3 years ago

w5yang commented 5 years ago

The Chinese and Japanese Font should be set in a different manner. Using "Microsoft Yahei" and "YuGothic" as prior font makes the "Segoe UI" unable to function as Default Western Font. Original Font Family:

Japanese | ja-JP | YuGothic, 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka, 'Segoe UI', Tahoma, Arial, sans-serif Korean | ko-KR | 'Malgun Gothic', Gulim, 'Segoe UI', Tahoma, Arial, sans-serif Chinese (simplified) | ch-ZHS | 'Microsoft Yahei', Verdana, Simsun, 'Segoe UI', Tahoma, Arial, sans-serif Chinese (traditional) | ch-ZHT | 'Microsoft Jhenghei', Pmingliu, 'Segoe UI', Tahoma, Arial, sans-serif

Suggested Font Family: Japanese | ja-JP | 'Segoe UI', Tahoma, Arial, YuGothic, 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka, sans-serif Korean | ko-KR | 'Segoe UI', Tahoma, Arial, 'Malgun Gothic', Gulim, sans-serif Chinese (simplified) | ch-ZHS | 'Segoe UI', Tahoma, Arial, 'Microsoft Yahei', Verdana, Simsun, sans-serif Chinese (traditional) | ch-ZHT | 'Segoe UI', Tahoma, Arial, 'Microsoft Jhenghei', Pmingliu, sans-serif

aftab-hassan commented 5 years ago

@Markionium The issue asks for Segoe UI to be moved up as the default Western font. Would like to get your thoughts on this. Is this something we would like to do?

@ichiQhachi4 thank you for reporting.

cliffkoh commented 5 years ago

cc @natalieethell @dzearing

dzearing commented 5 years ago

@Jahnp, annd possibly @philipzloh this code hasn't been touched in a year afaik.

in fonts.ts:

export namespace LocalizedFontFamilies {
  export const Arabic = `'${LocalizedFontNames.Arabic}'`;
  export const ChineseSimplified = `'Microsoft Yahei UI', Verdana, Simsun`;
  export const ChineseTraditional = `'Microsoft Jhenghei UI', Pmingliu`;
  export const Cyrillic = `'${LocalizedFontNames.Cyrillic}'`;
  export const EastEuropean = `'${LocalizedFontNames.EastEuropean}'`;
  export const Greek = `'${LocalizedFontNames.Greek}'`;
  export const Hebrew = `'${LocalizedFontNames.Hebrew}'`;
  export const Hindi = `'Nirmala UI'`;
  export const Japanese = `'Yu Gothic UI', 'Meiryo UI', Meiryo, 'MS Pgothic', Osaka`;
  export const Korean = `'Malgun Gothic', Gulim`;
  export const Selawik = `'${LocalizedFontNames.Selawik}'`;
  export const Thai = `'Leelawadee UI Web', 'Kmer UI'`;
  export const Vietnamese = `'${LocalizedFontNames.Vietnamese}'`;
  export const WestEuropean = `'${LocalizedFontNames.WestEuropean}'`;
}

It's entirely possible to modify these, but these were taken from fabric-core AGES ago.

Recommendations?

Jahnp commented 5 years ago

Sorry for the delay here, and thanks for reporting, @ichiQhachi4 .

Your recommendation sounds reasonable, but I'll be honest, I'm not an expert on best practices for the Asian font stacks. The stacks we have today were recommended by the MS Typography team years ago and incorporated into Fabric Core, as @dzearing points out. I'll check with them to see if this is a change they believe we should be making. I don't want to make it lightly since this would affect all Microsoft products using Fabric.

Jahnp commented 5 years ago

@ichiQhachi4 , I got this response from my typography colleague (emphasis mine):

  1. All these fonts have Western characters (what we call Latin) and they are derived from Segoe UI. In many cases, the glyphs are scaled to match the east Asian ideographs more appropriately than Segoe UI itself. The exception is Yu Gothic for Japanese which has other Latins designed to work well with the Japanese Kana and Katakana.
  2. These Latins are also designed to align when English and East Asian glyphs are inline together. East Asian writing prefers a low centered Latin v. baseline alignment In the image below, you can see the difference in when using Segoe UI latins v. latins from the east Asian font, Microsoft Yahei. image

So this would seem to suggest we should keep the font stacks as-is. Is there a particular bug or issue you're seeing with the current font stacks we should know about?

w5yang commented 5 years ago

@Jahnp But, there still is a problem, if using italic in these scripts, the latin part is oblique instead of italic.

Jahnp commented 5 years ago

@ichiQhachi4 I see, thanks for that. I'm not too familiar with East Asian typography, but had been led to understand that italics--even for Latins--were generally not used. If that's not the case then we should do the work to find the right solution, e.g. one that doesn't regress non-Italic characters. We may need to do some prototyping to find the right approach as I'm not convinced that simply promoting Segoe UI is the right fix.

Jahnp commented 5 years ago

I'm going to go ahead and move this to the backlog for now. I'll try to see if we have cycles to investigate in the coming weeks. @ichiQhachi4 , just checking, is there a particular urgency to this in your scenario?

w5yang commented 5 years ago

No

msft-fluent-ui-bot commented 3 years ago

Because this issue has not had activity for over 150 days, we're automatically closing it for house-keeping purposes.

Still require assistance? Please, create a new issue with up-to date details.