blob: 451441d0399ea13e6330445c61bda6d6b8e055c0 [file] [log] [blame]
<!--
|==============================================================================
| OVERVIEW
| The font configuration files specify the local fonts available to Cobalt.
| They come in two flavors:
| 1. A required configuration file that Cobalt provides; it is loaded first
| and specifies the superset of all fonts that can be included within the
| Cobalt font package.
| 2. An optional configuration file that porters provide; it is loaded second
| and specifies the system fonts available for use.
|
| There are two types of font families that the configurations can define:
| named families and fallback families.
|==============================================================================
| NAMED FAMILIES
| Named families are families that can be retrieved by name during font
| matching. Providing a family with the optional "name" attribute makes it a
| named family.
|
| Additionally, the alias tag can be used when more than one name needs to be
| mapped to the same same family. The alias's "name" attribute specifies an
| alternate name for the family and its "to" attribute specifies the specific
| family that it maps to. There is no limit to the number of aliases that can
| map to the same family. However, it is important to note that duplicate names
| are not allowed between aliases and families; they must all be unique.
|
| As an example, see the alias mapping "fantasy" to "serif" below. Because of
| the alias, whenever the font-family "fantasy" is encountered, the "serif"
| family is returned.
|
| System fonts shouldn't duplicate any family, alias, or font names contained
| within Cobalt's font configuration, unless the corresponding font files are
| stripped from Cobalt's font package.
|
| For example: if any of Cobalt's "sans-serif" font files are included in the
| selected Cobalt font package, then the system font configuration cannot
| contain a family named "sans-serif"; however, if Cobalt's "sans-serif" font
| files are entirely stripped from the package, then the system may provide its
| own "sans-serif" family without issues.
|==============================================================================
| FALLBACK FAMILIES
| Fallback families are used when none of the named families within a
| "font-family" property are found to support a character. When this occurs,
| Cobalt searches the fallback families for a font that supports the character.
|
| Families are included as fallback families if one of two conditions are met:
| 1. They do not have a "name" attribute.
| 2. They have a "fallback_priority" attribute.
| This allows named families to also be fallback families when they are
| explicitly given a fallback priority.
|
| When the optional family attribute "fallback_priority" is included, then its
| value, which is an integer, dictates the fallback priority of the family.
| When it is not present, then the family is given the default priority of 0.
|
| Fallback families are chosen based on a match: full BCP-47 language tag
| including script, then just language with no script, and then all fonts are
| considered regardless of language. Within each of these, the highest priority
| family that satisfies the constraints and supports the character is chosen.
| If more than one family has the same fallback priority, then order of
| appearance within the xml document is the final tiebreaker.
|
| Cobalt families are loaded before system families and, as a result, always
| win the order of appearance fallback tiebreaker with system families.
| However, Cobalt fallback families all have the default fallback priority of
| 0; if it is desired that a system family be chosen before a Cobalt family
| during fallback, then this can be accomplished by giving it a priority
| greater than 0.
|
| The optional family attribute "pages" indicates which character pages are
| contained within the family. It is used with character fallback to allow the
| system to quickly determine that a character cannot appear in a font without
| requiring the full character map to be loaded into memory. Character pages
| are zero-indexed, and each page contains 256 characters, so character 1000
| would be contained within page 3.
|
| For system families, it is safer not including "pages". When "pages" is
| included, the correct family may potentially be skipped if there is an error
| in the "pages" value. When "pages" is not included the correct fallback
| family is always selected. The cost of not including "pages" is that more
| full character maps will likely be loaded, which is a one-time performance
| hit per family, and results in a small increase in total memory usage.
|==============================================================================
| FONT ATTRIBUTES
| The optional font attributes "weight" and "style" are used to specify the
| weight and style that will be used during font matching within a family.
| "weight" must be a multiple of 100, between 100 and 900 inclusive; it
| defaults to 400 when not defined.
| "style" must have a value of either "normal" or "italic"; it defaults to
| "normal" when not defined.
|
| The optional font attributes "font_name" and "postscript_name" are used to
| allow the font to be matched during local src lookup with @font-face rules.
| https://www.w3.org/TR/css-fonts-3/#descdef-src
|
| The optional font attribute "disable_synthetic_bolding" prevents the font
| from being synthetically bolded. By default synthetic bolding is done when
| there is no bold font available and a bold weight (>500) is specified.
|==============================================================================
-->
<familyset version="1">
<!-- first family is default -->
<family name="sans-serif">
<font weight="100" style="normal" font_name="Roboto Thin" postscript_name="Roboto-Thin">Roboto-Thin.ttf</font>
<font weight="100" style="italic" font_name="Roboto Thin Italic" postscript_name="Roboto-Thin-Italic">Roboto-ThinItalic.ttf</font>
<font weight="300" style="normal" font_name="Roboto Light" postscript_name="Roboto-Light">Roboto-Light.ttf</font>
<font weight="300" style="italic" font_name="Roboto Light Italic" postscript_name="Roboto-Light-Italic">Roboto-LightItalic.ttf</font>
<font weight="400" style="normal" font_name="Roboto Regular" postscript_name="Roboto-Regular">Roboto-Regular.ttf</font>
<font weight="400" style="italic" font_name="Roboto Regular Italic" postscript_name="Roboto-Italic">Roboto-Italic.ttf</font>
<font weight="500" style="normal" font_name="Roboto Medium" postscript_name="Roboto-Medium">Roboto-Medium.ttf</font>
<font weight="500" style="italic" font_name="Roboto Medium Italic" postscript_name="Roboto-Medium-Italic">Roboto-MediumItalic.ttf</font>
<font weight="700" style="normal" font_name="Roboto Bold" postscript_name="Roboto-Bold">Roboto-Bold.ttf</font>
<font weight="700" style="italic" font_name="Roboto Bold Italic" postscript_name="Roboto-BoldItalic">Roboto-BoldItalic.ttf</font>
<font weight="900" style="normal" font_name="Roboto Black" postscript_name="Roboto-Black">Roboto-Black.ttf</font>
<font weight="900" style="italic" font_name="Roboto Black Italic" postscript_name="Roboto-Black-Italic">Roboto-BlackItalic.ttf</font>
</family>
<!-- Note that aliases must come after the fonts they reference. -->
<alias name="roboto" to="sans-serif" />
<!-- This is the default font when Roboto is unavailable. -->
<family pages="0">
<font weight="400" style="normal">Roboto-Regular-Subsetted.ttf</font>
</family>
<family name="sans-serif-condensed">
<font weight="300" style="normal" font_name="Roboto Condensed Light" postscript_name="Roboto-Condensed-Light">RobotoCondensed-Light.ttf</font>
<font weight="300" style="italic" font_name="Roboto Condensed Light Italic" postscript_name="Roboto-Condensed-Light-Italic">RobotoCondensed-LightItalic.ttf</font>
<font weight="400" style="normal" font_name="Roboto Condensed Regular" postscript_name="Roboto-Condensed-Regular">RobotoCondensed-Regular.ttf</font>
<font weight="400" style="italic" font_name="Roboto Condensed Regular Italic" postscript_name="Roboto-Condensed-Regular-Italic">RobotoCondensed-Italic.ttf</font>
<font weight="700" style="normal" font_name="Roboto Condensed Bold" postscript_name="Roboto-Condensed-Bold">RobotoCondensed-Bold.ttf</font>
<font weight="700" style="italic" font_name="Roboto Condensed Bold Italic" postscript_name="Roboto-Condensed-Bold-Italic">RobotoCondensed-BoldItalic.ttf</font>
</family>
<family name="serif">
<font weight="400" style="normal" font_name="Noto Serif" postscript_name="NotoSerif">NotoSerif-Regular.ttf</font>
<font weight="400" style="italic" font_name="Noto Serif Italic" postscript_name="NotoSerif-Italic">NotoSerif-Italic.ttf</font>
<font weight="700" style="normal" font_name="Noto Serif Bold" postscript_name="NotoSerif-Bold">NotoSerif-Bold.ttf</font>
<font weight="700" style="italic" font_name="Noto Serif Bold Italic" postscript_name="NotoSerif-BoldItalic">NotoSerif-BoldItalic.ttf</font>
</family>
<alias name="fantasy" to="serif" />
<family name="monospace">
<font weight="400" style="normal" font_name="Droid Sans Mono" postscript_name="DroidSansMono">DroidSansMono.ttf</font>
</family>
<alias name="sans-serif-monospace" to="monospace" />
<family name="serif-monospace">
<font weight="400" style="normal" font_name="Cutive Mono" postscript_name="CutiveMono-Regular">CutiveMono.ttf</font>
</family>
<family name="casual">
<font weight="400" style="normal" font_name="Coming Soon" postscript_name="ComingSoon">ComingSoon.ttf</font>
</family>
<family name="cursive">
<font weight="400" style="normal" font_name="Dancing Script" postscript_name="DancingScript">DancingScript-Regular.ttf</font>
<font weight="700" style="normal" font_name="Dancing Script Bold" postscript_name="DancingScript-Bold">DancingScript-Bold.ttf</font>
</family>
<family name="sans-serif-smallcaps">
<font weight="400" style="normal" font_name="Carrois Gothic SC" postscript_name="CarroisGothicSC-Regular">CarroisGothicSC-Regular.ttf</font>
</family>
<!-- fallback fonts -->
<!-- "Noto Naskh Arabic UI" is given a fallback priority so that, in spite
of having a name, it will still be included as a fallback font.
-->
<family fallback_priority="0" name="Noto Naskh Arabic UI">
<font weight="400" style="normal">NotoNaskhArabicUI-Regular.ttf</font>
<font weight="400" style="normal">NotoNaskhUI-Regular.ttf</font>
<font weight="700" style="normal">NotoNaskhArabicUI-Bold.ttf</font>
<font weight="700" style="normal">NotoNaskhUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansEthiopic-Regular.ttf</font>
<font weight="700" style="normal">NotoSansEthiopic-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansHebrew-Regular.ttf</font>
<font weight="700" style="normal">NotoSansHebrew-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansThaiUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansThaiUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansArmenian-Regular.ttf</font>
<font weight="700" style="normal">NotoSansArmenian-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansGeorgian-Regular.ttf</font>
<font weight="700" style="normal">NotoSansGeorgian-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansDevanagariUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansDevanagariUI-Bold.ttf</font>
</family>
<!-- Gujarati should come after Devanagari -->
<family>
<font weight="400" style="normal">NotoSansGujaratiUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansGujaratiUI-Bold.ttf</font>
</family>
<!-- Gurmukhi should come after Devanagari -->
<family>
<font weight="400" style="normal">NotoSansGurmukhiUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansGurmukhiUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansTamilUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansTamilUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansMalayalamUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansMalayalamUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansBengaliUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansBengaliUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansTeluguUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansTeluguUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansKannadaUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansKannadaUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansOriyaUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansOriyaUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansSinhala-Regular.ttf</font>
<font weight="700" style="normal">NotoSansSinhala-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansKhmerUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansKhmerUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansLaoUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansLaoUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansMyanmarUI-Regular.ttf</font>
<font weight="700" style="normal">NotoSansMyanmarUI-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansThaana-Regular.ttf</font>
<font weight="700" style="normal">NotoSansThaana-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansCham-Regular.ttf</font>
<font weight="700" style="normal">NotoSansCham-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansBalinese-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansBamum-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansBatak-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansBuginese-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansBuhid-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansCanadianAboriginal-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansCherokee-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansCoptic-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansGlagolitic-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansHanunoo-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansJavanese-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansKayahLi-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansLepcha-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansLimbu-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansLisu-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansMandaic-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansMeeteiMayek-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansNewTaiLue-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansNKo-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansOlChiki-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansRejang-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansSaurashtra-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansSundanese-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansSylotiNagri-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansSyriacEstrangela-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansTagbanwa-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansTaiTham-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansTaiViet-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansTibetan-Regular.ttf</font>
<font weight="700" style="normal">NotoSansTibetan-Bold.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansTifinagh-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansVai-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansYi-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">Lohit-Odia.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted.ttf</font>
</family>
<family lang="zh-Hans">
<font weight="400" style="normal" index="2">NotoSansCJK-Regular.ttc</font>
</family>
<family lang="zh-Hans">
<font weight="400" style="normal">NotoSansSC-Regular.otf</font>
<font weight="400" style="normal">NotoSansHans-Regular.otf</font>
</family>
<family lang="zh-Hant">
<font weight="400" style="normal" index="3">NotoSansCJK-Regular.ttc</font>
</family>
<family lang="zh-Hant">
<font weight="400" style="normal">NotoSansTC-Regular.otf</font>
<font weight="400" style="normal">NotoSansHant-Regular.otf</font>
</family>
<family lang="ja">
<font weight="400" style="normal" index="0">NotoSansCJK-Regular.ttc</font>
</family>
<family lang="ja">
<font weight="400" style="normal">NotoSansJP-Regular.otf</font>
</family>
<family lang="ko">
<font weight="400" style="normal" index="1">NotoSansCJK-Regular.ttc</font>
</family>
<family lang="ko">
<font weight="400" style="normal">NotoSansKR-Regular.otf</font>
</family>
<family>
<font weight="400" style="normal">NanumGothic.ttf</font>
</family>
<!--
Pages are included for NotoEmoji-Regular because it is part of the
Cobalt font package. Font files that come from Android do not include
pages; this protects from subtle bugs that could be caused by Android
modifying the characters that a font supports.
-->
<family pages="0,32-33,35-39,41,43,48,50,254,496-502,4068,4072">
<font weight="400" style="normal">NotoEmoji-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansSymbols-Regular-Subsetted2.ttf</font>
</family>
<!--
Synthetic bolding is explicitly disabled for DroidSansFallback. The
quality of its synthetically bolded glyphs are not good enough to meet
Cobalt's standards.
-->
<family>
<font weight="400" style="normal" disable_synthetic_bolding="true">DroidSansFallback.ttf</font>
</family>
<family lang="ja">
<font weight="400" style="normal">MTLmr3m.ttf</font>
</family>
<!--
Tai Le and Mongolian are intentionally kept last, to make sure they don't override
the East Asian punctuation for Chinese.
-->
<family>
<font weight="400" style="normal">NotoSansTaiLe-Regular.ttf</font>
</family>
<family>
<font weight="400" style="normal">NotoSansMongolian-Regular.ttf</font>
</family>
</familyset>