You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
> This font was upgraded in July 2021 to expand its language coverage. It now supports Greek and Cyrillic.
56
-
-**We only accept****`.en_us`****extension**, but you can definitely add a translation to the description when the font primarily targets an audience reading a non-latin script.
57
-
- If the primary script of your font is not Latin, we strongly recommend you also provide a translation of the text using the actual main script. **This localised text must be in the same html snippet as the English text.**
56
+
-**We only accept****`.en_us`****extension**, but you can definitely add a translation to the description when the font primarily targets an audience reading a non-Latin script.
57
+
- If the primary script of your font is not Latin, we strongly recommend you also provide a translation of the text using the actual main script. **This localized text must be in the same HTML snippet as the English text.**
58
58
59
59
### Format text with the font family
60
60
@@ -80,12 +80,12 @@ There are two options to include videos in the Article file: `MP4` with a max fi
80
80
- For the `MP4` video inclusion, it must follow this format:
You can see these cases as reference: <a href="https://github.com/google/fonts/blob/main/ofl/danfo/article/ARTICLE.en_us.html">Danfo</a>, <a href="https://github.com/google/fonts/blob/main/ofl/savate/article/ARTICLE.en_us.html">Savate</a>
91
91
@@ -110,16 +110,16 @@ There are two options to include videos in the Article file: `MP4` with a max fi
110
110
111
111
## Examples
112
112
113
-
### Without localised text
113
+
### Without localized text
114
114
115
115
See [Space+Grotesk#about](https://fonts.google.com/specimen/Space+Grotesk?query=Space+Grotesk#about) provided by [DESCRIPTION.en_us.html](https://github.com/floriankarsten/space-grotesk/blob/master/DESCRIPTION.en_us.html) as an example: it gives plenty of links (mini-website, original authors, referenced font published in GF), and follows all requirements.
116
116
117
117
118
-
### With localised text
118
+
### With localized text
119
119
120
120
See [Zen+Antique#about](https://fonts.google.com/specimen/Zen+Antique#about) as an example, provided by this file [DESCRIPTION.en_us.html](https://github.com/google/fonts/blob/main/ofl/zenantique/DESCRIPTION.en_us.html).
121
121
122
-
**Html snippet**
122
+
**HTML snippet**
123
123
124
124
``` code
125
125
<p>Zen Antique features two kinds of Antique Japanese with Kanji.
Copy file name to clipboardExpand all lines: gf-guide/authors.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@
10
10
🦤 Authors and contributors are people or industries participating into a project either because they paid for it, they employed people who created and produced it, or because they are the people who made it.
11
11
12
12
<ul>
13
-
<li> The list of authors generally includes the creators and all the possible copyright holders (such as the company employing the actual creators). This may differ according to the copyright laws of the author’s country; better to inform yourself if the project was commissioned by an instiution or a company.</li>
13
+
<li> The list of authors generally includes the creators and all the possible copyright holders (such as the company employing the actual creators). This may differ according to the copyright laws of the author’s country; better to inform yourself if the project was commissioned by an institution or a company.</li>
14
14
<li> The list of contributors generally includes everyone who participated in the project to a large degree: producers, engineers, developers etc. (including non–copyright-holders). </li>
Copy file name to clipboardExpand all lines: gf-guide/axis-registry.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -72,7 +72,7 @@ However, this option is strongly discouraged and should be the last case scenari
72
72
Derived from case 1.2. If a registered axis matches the function and name but not the range values of the incoming axis, then the following could be applied.
73
73
74
74
- The axis range can be increased if a family requires wider range values.
75
-
- The type of value can’t be changed (e.g. boolean to ranges.)
75
+
- The type of value can’t be changed (e.g. Boolean to ranges.)
76
76
- If the default value of the new font does not match the registered axis default it can be overridden on the family `METADATA.pb` file, it must not be modified in the axis registry. Refer to the `default_value` in the *Axis Requirements* section of this document.
77
77
78
78
@@ -104,12 +104,12 @@ The `tag` is used to specify an axis in font-variation-settings, CSS API request
104
104
105
105
-#### Defining the type of axis and range values wisely
106
106
As with the name definition, the axis' type of value should be reusable. It should both serve the particular needs or uses of the project submitting the axis and try to anticipate the possible ways it could be used for other projects (See [Type of axis](https://googlefonts.github.io/gf-guide/axis-registry.html#types-of-axis))
107
-
- Defining an axis as a boolean might not be valid for further font project needs, as is happening now with Wonky axis.
107
+
- Defining an axis as a Boolean might not be valid for further font project needs, as is happening now with Wonky axis.
108
108
- Ranges that are overly narrow or too wide would leave either insufficient room for the inclusion of other steps or too much to create meaningless intermediate steps. As an example, YEAR axis original range was including only the period covered by the original project (1979-2050). The range was redefined to a broad scope that could support other projects using the axis (-4000 — 4000).
109
109
- The following values must be included
110
110
-**`min_value`** The lower bound of the axis. Inclusive.
111
111
-**`max_value`** The upper bound of the axis. Inclusive.
112
-
-**`default_value`** Default position of the aixs.
112
+
-**`default_value`** Default position of the axis.
113
113
The default value should work as a reference. It is possible to override it in the family `METADATA.pb` file so that the axes keep their reusable purpose. Please refer to the <ahref="https://googlefonts.github.io/gf-guide/metadata.html#registry_default_overrides"target=_blank>registry_default_overrides</a> entry under the Metadata file section for details on this process.
114
114
-**`precision`** Describes the specificity at which an axis position can be specified.
115
115
For example, 0 means values must be specified as whole numbers while -1 means values can be as precise as one decimal place. A percentage axis going from 0 -- 100 with a precision value `0` allows one hundred accessible intermediate positions, while a value `-1` would determine one thousand positions 0.0 -- 100.0.
@@ -120,7 +120,7 @@ For server implementation reasons, new custom axis registries require to include
120
120
-#### The `fallback_only` field affects the way the type tester surfaces the axis control.
121
121
It determines whether only the fallback positions should be used.
122
122
-`false` value is used for a continuous range axis displaying a slider to reach all the intermediate points
123
-
-`true` value would be used in cases like `Italic`boolean axis to display an "on/off" toggle, or `Cursive`, a pseudo boolean which was registered with three fallbacks positions, and so it uses radio buttons to give access to those positions. However, as stated in the *Type of Axis* section, binary and pseudo-boolean axes are expected to be avoided or rather exceptions.
123
+
-`true` value would be used in cases like `Italic`Boolean axis to display an "on/off" toggle, or `Cursive`, a pseudo Boolean which was registered with three fallbacks positions, and so it uses radio buttons to give access to those positions. However, as stated in the *Type of Axis* section, binary and pseudo-Boolean axes are expected to be avoided or rather exceptions.
@@ -150,13 +150,13 @@ Commonly percent (0..100) or “per mille of em” (0..1,000). Within ranges, tw
150
150
The default is usually always the same, e.g. 400 wght, 100 width, 0 mono.
151
151
For new expressive axes, the default range for these is likely to be a percent range 0..100, and probably with a 0 precision value (meaning no decimal places). The default might be 0, 50 or 100 depending on if the axis is adding something that usually isn't used, something that usually is used but can be turned up or down, or something usually used that can be removed. Width is unusual as a relative percent range, as it has 100 as default and goes up and down from there.
152
152
153
-
-**Binary, pseudo boolean** (0, 1 but with a range 0.00..1.00)
154
-
Few binary axes have been registered as pseudo boolean behavior with off and on positions but with two or three decimal places allowing a range. The difference with a percent (0 to 100) range would be semantical, related to the amplitude of variation that an axis expresses. Going from 0 to 1 with decimals could be interpreted as how much of the completeness of a single unity/entity it represents. In contrast, the percentage understanding implies the possibility of defining many stops that suggest different concepts within the range.
153
+
-**Binary, pseudo Boolean** (0, 1 but with a range 0.00..1.00)
154
+
Few binary axes have been registered as pseudo Boolean behavior with off and on positions but with two or three decimal places allowing a range. The difference with a percent (0 to 100) range would be semantic, related to the amplitude of variation that an axis expresses. Going from 0 to 1 with decimals could be interpreted as how much of the completeness of a single unity/entity it represents. In contrast, the percentage understanding implies the possibility of defining many stops that suggest different concepts within the range.
155
155
<br><br>
156
-
<ahref="https://fonts.google.com/knowledge/glossary/fill_axis"target="_blank">Fill</a> is a good example of this axis where the numbers indicate proportion filled, from 0 (no treatment) to 1 (completely filled). Another pseudo boolean case <ahref="https://fonts.google.com/knowledge/glossary/cursive_axis"target="_blank">Cursive</a>, an axis with the same binary definition of on and off but with an intermediate point "auto" at 0.5 that would add a third behavior option allowing it to change automatically according to another axis that conditions it.
156
+
<ahref="https://fonts.google.com/knowledge/glossary/fill_axis"target="_blank">Fill</a> is a good example of this axis where the numbers indicate proportion filled, from 0 (no treatment) to 1 (completely filled). Another pseudo Boolean case <ahref="https://fonts.google.com/knowledge/glossary/cursive_axis"target="_blank">Cursive</a>, an axis with the same binary definition of on and off but with an intermediate point "auto" at 0.5 that would add a third behavior option allowing it to change automatically according to another axis that conditions it.
157
157
158
158
159
-
Going forwards, we would like to see the registry more consistent. Most of the upcoming axes are likely to be Relative ones with a percent range since users are more accustomed to thinking about things in terms of percentages (particularly for technical stuff) and more comfortable with integers than decimals. Hence, **pseudo-boolean axes are expected to be avoided or rather exceptions**.
159
+
Going forwards, we would like to see the registry more consistent. Most of the upcoming axes are likely to be Relative ones with a percent range since users are more accustomed to thinking about things in terms of percentages (particularly for technical stuff) and more comfortable with integers than decimals. Hence, **pseudo-Boolean axes are expected to be avoided or rather exceptions**.
160
160
161
161
162
162
#### Absolute range axes
@@ -179,7 +179,7 @@ Absolute axes, by their nature, have no meaningful per registry/library default
179
179
- An expected case of use from the user’s point of view. It would be a “Why do we need this” section, reasoning on why or how the users might use it. This explanation would help to discern the validity of the axis itself and its definitions such as the ranges, a concern that has arisen when reviewing new axes (e.g. discussing Year, HEXP/ TRACK).
180
180
<br>
181
181
This information will also help to create the additional educational content required (detailed below.)
182
-
- An image (gif or video) showing the effect of the axis in the font.
182
+
- An image (GIF or video) showing the effect of the axis in the font.
183
183
- The reviewing process (discussion and decisions) of the proposed axis and its metadata fields should happen on the issue before creating the PR for the axis inclusion. Do not create a PR simultaneously as the proposal issue to avoid having the discussion take place in two different places making the process slower and harder to follow and conclude.
184
184
185
185
@@ -210,13 +210,13 @@ Therefore, additional educational information should be created to communicate m
210
210
211
211
## Foreseeable scenarios
212
212
213
-
Over time, following the AVAR 2 table development, it is expected type designers will combine the axes in many ways to create synthetic ones and make, for example, the OpenType features as variation axes.
213
+
Over time, following the avar2 table development, it is expected type designers will combine the axes in many ways to create synthetic ones and make, for example, the OpenType features as variation axes.
214
214
215
215
This would allow for the user to choose things like the size or thickness of features like Old Style Figures or Small Caps. This approach would also reduce the file size as the data for these axes does not exist; they are composed of the combination of other axes. Roboto Flex is 1.8 Mb, but Roboto Flex with avar2 Is approximately 300 Kb, an 80% file size savings.
216
216
217
217
Eventually, the registry of those synthetic axes should follow the same protocol for their inclusion.
218
218
219
-
Similarly, eventually, *Stylistic Sets* could become a variation axis since for them to interact with another axis, they had to be an axis on its own. That is the case of the Wonky axis, which is an axis controlling glyph substitutions, but being it an axis it can interact with the Optical Size axis to activate it at discresion.
219
+
Similarly, eventually, *Stylistic Sets* could become a variation axis since for them to interact with another axis, they had to be an axis of their own. That is the case for the Wonky axis, which is an axis controlling glyph substitutions, but being it an axis it can interact with the Optical Size axis to activate it at its discretion.
220
220
221
221
222
222
<!-- Glossary (to-do)
@@ -229,7 +229,7 @@ Knowledge Content Editor -->
229
229
Some fonts provide named positions on a custom axis. For example, the Element Shape in Handjet defines different shapes at each integer value along the axis (Triangle, Square, Lozengue, etc) and Kablammo’s design is centered around four named positions on a custom axis.
230
230
<!-- Without named positions, Kablammo’s design center "gets lost". Ideally, the named positions would be available to the fonts.google.com Type Tester as a dropdown. It may also make sense to use the named positions when creating a download zip. -->
231
231
232
-
Named positions are similar to, but different than, fallback positions. Fallback positions were originally defined for the legacy axes, width and weight, to cover the axis values that matched the pre-VF world. Google Fonts creates static instances at each of the fallback positions and delivers them when a requestor does not support VFs. For example, when wght=451 is requested by a non-VF client, Google Fonts could deliver weight 500.
232
+
Named positions are similar to, but different than, fallback positions. Fallback positions were originally defined for the legacy axes, width and weight, to cover the axis values that matched the pre-VF world. Google Fonts creates static instances at each of the fallback positions and delivers them when a requester does not support VFs. For example, when wght=451 is requested by a non-VF client, Google Fonts could deliver weight 500.
233
233
234
234
Additionally, fallback positions are defined on the axis and not on the font with the expectation that all fonts that support an axis will want the same fallback positions (very reasonable for legacy support).
235
235
@@ -254,4 +254,4 @@ These are some links where you could find more detailed information about this C
Copy file name to clipboardExpand all lines: gf-guide/build.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,7 +156,7 @@ Using a `yaml` file with more detailed instructions is a preferred option to hav
156
156
gftools builder config.yaml
157
157
```
158
158
159
-
### Config file for simple font
159
+
### Config file for a simple font
160
160
161
161
For Example: [JetBrains Mono](https://github.com/JetBrains/JetBrainsMono/blob/master/sources/config.yaml)
162
162
@@ -184,7 +184,7 @@ buildOTF: false
184
184
185
185
→ Note that the `ital` axis shouldn’t be in the source files if the Roman is separated for from the Italic. Although, the axis order is here to describe the entire design space of the family, so the `ital` should be mentioned to properly set up the style linking between the two files, as well as a complete `STAT` table.
186
186
187
-
### Config file for complex font
187
+
### Config file for a complex font
188
188
189
189
For example: [Texturina](https://github.com/Omnibus-Type/Texturina/blob/master/sources/config.yaml), [Montserrat](https://github.com/googlefonts/Montserrat/blob/master/sources/config.yml), [Roboto Serif](https://github.com/googlefonts/roboto-serif/blob/main/sources/config.yml).
0 commit comments