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
Copy file name to clipboardExpand all lines: README.md
+67-9Lines changed: 67 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,10 +13,11 @@ Letters on a grid is how we see our code. Why not make those letters better?
13
13
14
14
## Overview
15
15
16
-
Monaspace is available as a variable-axis font and a static build. You can install them both side-by-side; their family names are distinct. For example:
16
+
Monaspace is available in three distinct variations. You can install them both side-by-side; their family names are distinct. For example:
17
17
18
-
-`Monaspace _____`: the static family
18
+
-`Monaspace _____`: the static family.
19
19
-`Monaspace _____ Var` or `VF`: the variable family
20
+
-`Monaspace _____ Frozen`: the "frozen" TTF family. These fonts enable all of the typographical features in Monaspace by default. They are intended to be used in environments where you might not be able to configure stylistic sets or character variants, like XCode or IntelliJ IDEs. See more about how the frozen fonts work below.
20
21
21
22
The variable fonts have one file per family (Neon, Argon, etc.). Modern and convenient!
22
23
@@ -32,10 +33,27 @@ Texture healing is enabled when the `calt` font feature setting is turned on in
32
33
33
34
You can read more about how it works on the [Monaspace website](http://monaspace.githubnext.com), and learn how it is implemented in the [documentation](https://github.com/githubnext/monaspace/blob/main/docs/Texture%20Healing.md).
34
35
36
+
## Nerd Fonts
37
+
38
+
As of Monaspace 1.2, the static font builds (both OTF and WOFF/WOFF2) include [Nerd Fonts](https://www.nerdfonts.com/)!
39
+
40
+
Monaspace gives a lot of consideration to horizontal and vertical metrics of a font, and Nerd Fonts are thousands of icons which don't necessarily respect those considerations. Monaspace makes a best-effort attempt to optically align the size and placement of the icons so that they feel compatible with the other Monaspace glyphs.
41
+
42
+
There is such a broad variety of environments and terminals and often solving for one breaks another! Some Nerd Fonts glyphs may not render correctly in every environment.
43
+
44
+
> [!NOTE]
45
+
> Monaspace uses the [Nerd Fonts implementation from Cascadia Code](https://github.com/microsoft/cascadia-code/tree/main/sources/nerdfonts/full/processed) as our starting point. Each icon was resized to fit the max advance width of the given Monaspace font, and centered vertically between the baseline and cap height of Monaspace's vertical metrics.
46
+
47
+
35
48
## Coding Ligatures
36
49
37
50
> [!WARNING]
38
-
> Ligature handling has changed significantly in Monaspace v1.1 and v1.101. If you're upgrading, see the [release notes for guidance on how to alter your editor settings](https://github.com/githubnext/monaspace/releases/tag/v1.100).
51
+
> Ligature handling has changed significantly in Monaspace point releases.
52
+
> If you're upgrading, check the release notes to learn what changes you might need to make to your editor configuration:
The `liga` font feature enables customized spacing of repeating characters, like `///` or `||`. It is designed to avoid activating inside longer sequences like `////`.
41
59
@@ -55,12 +73,39 @@ There are eight groups of coding ligatures, separated into stylistic sets. You m
55
73
56
74
## Character Variants
57
75
58
-
Specific characters have variants that you can optionally enable:
76
+
Specific characters have variants that you can optionally enable using the `cvNN` opentype feature:
*`cv30`: Enable the older asterisk as shipped in Monaspace 1.0, which was vertically aligned closer to the top of the space.
61
-
*`cv60`: forces the `<=` pair to render in a fashion that matches `=>` instead of swapping for `≤`.
62
-
*`cv61`: enables the optional closed square ligature for `[]`. This can be distracting when authoring arrays in many editors, because they automatically insert the closing bracket, which immediately produces the closed square ligature upon typing the open bracket.
90
+
#### cv30-cv59: symbol variants
91
+
-`cv30`: `*` vertically aligned closer to the top of the space, similar to how the asterisk was in Monaspace 1.0
92
+
-`cv31`: `*` 6-pointed asterisk
93
+
-`cv32`: `≥``≤` angled lower line
63
94
95
+
#### cv60-cv79: optional ligatures
96
+
-`cv60`: forces the `<=` pair to render in a fashion that matches `=>` instead of swapping for `≤`.
97
+
-`cv61`: enables the optional closed square ligature for `[]`. This can be distracting when authoring arrays in many editors, because they automatically insert the closing bracket, which immediately produces the closed square ligature upon typing the open bracket.
98
+
-`cv62`: `@_` ligature
99
+
100
+
101
+
### cv80-cv99: reserved for future use
102
+
- none (yet!)
103
+
104
+
## Special Characters Galore
105
+
106
+
In addition to the ligatures, character variants, and Nerd Fonts, Monaspace includes a wealth of characters.
@@ -108,12 +153,18 @@ All files with a `.woff` or `.woff2` suffix are intended for use on the web. You
108
153
109
154
As with the desktop fonts, they are available in variable and static versions.
110
155
156
+
There are no "frozen" webfonts. You can control Opentype features on the web using the [`font-feature-settings`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings) CSS property.
157
+
111
158
## Editors
112
159
113
160
### Visual Studio Code
114
161
115
162
> [!WARNING]
116
-
> Ligature handling has changed significantly in Monaspace v1.1. If you're upgrading from Monaspace v1.0, see the release notes ([v1.100](https://github.com/githubnext/monaspace/releases/tag/v1.100), [v1.101](https://github.com/githubnext/monaspace/releases/tag/v1.101)) for guidance on how to alter your editor settings.
163
+
> Ligature handling has changed significantly in Monaspace point releases.
164
+
> If you're upgrading, check the release notes to learn what changes you might need to make to your editor configuration:
Specific character variants are also enabled using the [`font-feature-settings`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-feature-settings) syntax. To enable slashed zeroes (with `cv01`) and six-pointed asterisks (with `cv31`), you might use the following settings:
Note that some character variants have several possible values. For any variants that are either on or off, setting them to `1` should enable them, and omitting the variant (or setting them to `0`) will disable them.
199
+
142
200
## Contribution
143
201
144
202
There's no formal contribution guide yet! If you're interested in contributing to the typefaces, you should read the [Texture Healing](https://github.com/githubnext/monaspace/blob/main/docs/Texture%20Healing.md) guide, as it explains how to produce the necessary alternate glyphs.
0 commit comments