==== Proposal
Extend the monospaced font-stack to cater to contributors who have installed one of the following modern typefaces designed for source code, some of which have specific programming ligatures.
This is a nice addition for professionals and has no effect on regular users.
* [[ https://github.com/tonsky/FiraCode#projects-using-fira-code | 'Fira Code' ]] - Webfont, monospaced font with programming ligatures.
* [[ https://source-foundry.github.io/Hack/font-specimen.html | 'Hack' ]] - Webfont, a typeface designed for source code - large x-height + wide aperture + low contrast + custom zero.
* [[ https://en.wikipedia.org/wiki/Source_Code_Pro | 'Source Code Pro' ]] - Webfont from Adobe, "has been designed to work well in coding environments".
* [[ https://en.wikipedia.org/wiki/Inconsolata | 'Inconsolata' ]] - Favored for its legibility with small font-size.
==== Current status
Declaration in WikimediaUI: [[ https://phabricator.wikimedia.org/source/wikimedia-ui-base/browse/master/wikimedia-ui-base.less | wikimedia-ui-base.less ]] line 205
core.git [[ https://github.com/wikimedia/mediawiki/blob/master/resources/lib/ooui/wikimedia-ui-base.less#L205 | /resources/lib/ooui/wikimedia-ui-base.less ]]
```
@font-family-monospace: 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
@font-family-monospace--fallback: monospace, monospace; // See T176636
```
Minerva:
```
// Provide better operating system-specific monospace stack, see T209915.
@font-family-monospace: 'Menlo', 'Consolas', 'Liberation Mono', 'Courier New', monospace;
@font-family-monospace--fallback: monospace, monospace; // See T176636
```
Timeless:
```
@fonts-mono: 'Menlo', 'Consolas', 'Monaco', 'Noto Mono', 'Nimbus Mono L', monospace;
```
Material:
```
@md-ui-typography-roboto-mono: 'Roboto Mono', 'Courier New', Courier, 'Lucida Sans Typewriter', 'Lucida Typewriter', monospace;
```
The rest uses the system default.
==== Proposed declaration
Previously (sample): https://gerrit.wikimedia.org/r/c/mediawiki/core/+/570597/12/resources/src/mediawiki.less/wikimedia-ui-fonts.less#72
```
// Consolas: Windows; Menlo, Monaco: Mac; Noto Mono: ?; Nimbus Mono L: GNU+Linux; Inconsolata: generic; Ubuntu Mono: GNU+Linux; Courier New: Windows
@font-family-system-monospace: 'Menlo', 'Monaco', 'Noto Mono', 'Liberation Mono', 'Nimbus Mono L', 'Consolas', 'Inconsolata', 'Ubuntu Mono', 'Courier New', monospace;
@font-family-monospace: 'Fira Code', 'Hack', 'Source Code Pro', @font-family-system-monospace;
```
The rename of these variables to `@ff-mono` and `@ff-system-mono` are NOT part of this proposal.
==== Prior art
https://design.wikimedia.org/style-guide/visual-style_typography.html#typefaces
{T209915}
{T209562}
{T176636}
{T221043}
==== Questions
1. Any issues with the 4 fonts that are the primary focus of this task? 'Fira Code', 'Hack', 'Source Code Pro', 'Inconsolata'
1. Any issues with including 'Monaco', 'Noto Mono', 'Nimbus Mono L' from Timeless?
1. Any issues with the order of preference for the added fonts?
* The reason for 'Inconsolata' being after 'Consolas' is the small font metrics, similar to 'Ubuntu Mono'.
1. Should the fonts from "Material" skin be included? 'Roboto Mono', 'Lucida Sans Typewriter', 'Lucida Typewriter'