Background/Goal
Wikimedia products are available in more than 300 languages. To define our Text Styles we need to find a typeface that works for different language characters to be able to create our components in both LTR and RTL (Arabic, Hebrew) variants without having to create a Text Styles for each language.
User stories
- As a system designer I need to have text styles that allow me to create LTR-RTL component variants.
- As a designer, I need to have text styles that work with different languages.
Considerations
Language characters to consider:
- Arabic (to create our RTL component variants)
- Hebrew
- Armenian
- Georgian
- Chinese
- Japanese
- Burmese (largest letter boxes of all)
- Thai
- Korean
Development considerations
- System fonts such as Helvetica are available for different languages (Latin, Arabic, etc.)
- Those same fonts in Figma are not available for all languages
Acceptance criteria (or Done)
- Find a font that works for different languages.
- Find a Serif font (for Headings). Selected typeface: Source Serif Pro
- Find a Sans Serif font (for bodies and titles). Selected typeface: Inter
- Find a Monospace font (for code snippets). Selected typeface: Fira Code
- Create our Figma text styles available for both LTR-RTL component variants
Notes
As a result of this task, the final stack of design typefaces (Source Serif Pro, Inter and Fira Code) has been documented as part of Codex's Font tokens guidelines.
Here's the initial proposal, collecting the selection criteria for the chosen fonts. And an overview of typefaces' availability per platform on Figma, which supported the selection of fonts that would make Codex design components available and editable across operative systems, beyond internationalization.
There were other criteria (maintaining a neutral look, keeping our design library accessible across platforms) that influenced the selection of the stack. The combination of all requirements, mixed with Figma limitations, left us with a convenient set of typefaces that are, yet, not fully responsive to i18n. We'll have to rely on Figma's usage of Noto Sans as a fallback to display the scripts that our selected typefaces can't cover. This will be documented in our Typography guidelines as part of T331612: Document internationalization limitations of Figma font selection in Typography guidelines.