== Purpose
This task defines a consistent pattern for font-family variable names in Less files that have been started with [[ https://phabricator.wikimedia.org/source/wikimedia-ui-base/browse/master/wikimedia-ui-base.less | WikimediaUI Base ]].
Vector, Minerva skins use this naming convention already, with a few inconsistencies: [[ https://codesearch.wmflabs.org/search/?q=%40font-family-&i=nope&files=&repos= | codesearch ]].
== Changes
Renamed variable:
1. `@font-family-heading-main` -> `@font-family-heading`
The rename has no effect: this variable is redeclared by its sole user: [[ https://codesearch.wmflabs.org/search/?q=%40font-family-heading-main&i=nope&files=&repos= | codesearch ]].
Renamed system font stack definitions, following the pattern of `@font-family-system-sans` ([[ https://phabricator.wikimedia.org/source/wikimedia-ui-base/browse/master/wikimedia-ui-base.less$201 | line 201 ]]):
2. `@font-family-serif` -> `@font-family-system-serif`
3. `@font-family-monospace` -> `@font-family-system-monospace`
The renames have no effect: the variables with the old name are defined with (defaulted to) the renamed variables. Users of these variables: [[ https://codesearch.wmflabs.org/search/?q=%40font-family-serif&i=nope&files=&repos= | -serif ]], [[ https://codesearch.wmflabs.org/search/?q=%40font-family-monospace&i=nope&files=&repos= | -monospace ]]..
Skins, extensions using these definitions can redefine `@font-family-serif`, etc. by extending or replacing `@font-family-system-serif`, etc.
Previously only replacing `@font-family-serif` was possible, extending it was not.
== Result, summary
```
@font-family-system-sans // WikimediaUI Base sans-serif font stack
@font-family-system-serif // WikimediaUI Base serif font stack
@font-family-system-monospace // WikimediaUI Base monospace font stack
// The 'system' part in these names signals these fonts are typically installed by the operating system.
@font-family-sans // Skin's / extension's sans-serif font stack
@font-family-serif // Skin's / extension's serif font stack
@font-family-monospace // Skin's / extension's monospace font stack
// These variables can be redefined by skins and extensions, extending upon the system stack, or replacing it.
// The default values are the respective `-system-` font-stacks.
@font-family-sans--fallback: sans-serif;
@font-family-serif--fallback: serif;
@font-family-monospace--fallback: monospace, monospace;
// Monospace fix: http://code.iamkate.com/html-and-css/fixing-browsers-broken-monospace-font-handling/
@font-family-base // Font stack for content body
@font-family-heading // Font stack for headings (h1-h6)
```
== Documentation
The font stack definitions - each individual font - are commented with the system where it's expected to be available and the reason to include or exclude it.
== Questions
* Any comments about the renames?
* Should the font stack definitions be moved into a separate file? What file name to choose?