forked from cyclosm/cyclosm-cartocss-style
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fonts.mss
99 lines (80 loc) · 4.41 KB
/
fonts.mss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
* File from https://github.com/gravitystorm/openstreetmap-carto/blob/999fad8d99d4da0da866a7f2890a276d4246c859/fonts.mss.
*/
/*
About fonts:
Noto is a font family that wants to cover most of Unicode with a harmonic
design across various scripts. We use Noto for most text, with some support
for backward-compatibility and some fallback fonts.
By order:
1. Noto Sans is available for most scripts and it is used as a first choice.
Where available the UI version of the fonts – which provides tighter vertical
metrics – is used (except for the base font, where the UI version is deprecated
since Noto Phase III, and Sinhala where both versions are used for backwards
compatibility with Ubuntu 16.04). We intent to have all scripts of Noto in
our list except dead (historic) scripts of whom we assume that they are not
used in “name” tags in OSM. Most of the list is in alphabetical order,
but there are some exceptions.
- Noto Sans is before all other fonts
- The CJK fonts are manually ordered. The used CJK font covers all CJK
languages, but defaults to the japanese glyph style if various glyph
styles are available. (We have to default to one of JP, KR, SC, TC because
this carto style has no knowledge about what language the “names” tag
contains. As in Korea Han characters are not so widely used, it seems
better to default to either Chinese or Japanese. As Chinese exists in the
two variants SC/TC, it won’t be a uniform rendering anyway. So we default
to Japanese. However, this choice stays somewhat arbitrary and subjective.
See also https://github.com/gravitystorm/openstreetmap-carto/issues/2208)
- For the Syriac script, there exist Noto Sans Syriac Eastern,
Noto Sans Syriac Western Regular and Noto Sans Syriac Estrangela Regular.
As for CJK fonts, we have no knowledge about what language the “names” tag
contains. We choose Syriac Eastern because it seems to be the most
widespreaded script variant (Syriac Western is less common, and Syriac
Estrangela mostly of historic interest.)
2. Noto provides various variants of Arabic: Noto Kufi Arabic, Noto Naskh
Arabic, Noto Nastaliq Urdu and Noto Sans Arabic. Kufi and Urdu styles are not
widespread in use. Noto Sans Arabic (a Naskh-style low-contrast “Sans” font) and
Noto Naskh Arabic are the fonts with the greatest coverage and provide an UI
variant. This style uses Noto Sans Arabic UI because it’s consistent with the
other Sans fonts and legible. The Arabic fonts are placed behind Sans fonts
because they might re-define some commonly used signs like parenthesis or
quotation marks, and the arabic design should not overwrite the standard design.
3. Noto provides two variants of Emoji: Noto Color Emoji and Noto Emoji. The
colour variant is a SVG flavoured OpenType font that contains coloured emojis.
This is not useful in cartography, so we use the “normal” monochromatic
Noto Emoji.
4. The list still includes Noto Naskh Arabic UI for compatibility on systems
without Noto Sans Arabic UI.
5. The list still includes DejaVu for compatibility on systems without Noto.
6. Fallback fonts. Hanazono covers almost all CJK characters, even in Unicode
Plane 2. Unifont is a fallback of last resort with full coverage in Plane 0
(Unifont Medium), some coverage in Plane 1 (Unifont Upper Medium) and no
coverage in Plane 2. Unifont Medium Sample would cover the BMP PUA with
replacement characters, but cannot be used because Mapnik does not
support SBIT TTF.
*/
/*
A regular style.
*/
@sans: "Noto Sans Regular",
"Noto Sans Symbols Regular",
"Noto Sans Symbols2 Regular",
"Noto Emoji Regular",
"DejaVu Sans Book",
"HanaMinA Regular", "HanaMinB Regular",
"Unifont Medium", "Unifont Upper Medium";
/*
A bold style is available for almost all scripts. Bold text is heavier than
regular text and can be used for emphasis. Fallback is a regular style.
*/
@sans_bold: "Noto Sans Bold",
"Noto Sans Symbols Bold",
"DejaVu Sans Bold",
@sans;
/*
Italics are only available for the base font, not the other scripts.
For a considerable number of labels this style will make no difference to the regular style.
*/
@sans_italic: "Noto Sans Italic", @sans; // @sans for non-latin characters
@sans_bold_italic: "Noto Sans Bold Italic", @sans; // @sans for non-latin characters
@standard-font: @sans;